VK Private Cloud logo
Помощь
Обновлена 17 июля 2026 г. в 15:55

Ручной запуск инсталлятора

Установите компоненты Платформы в следующем порядке:

  1. Base
  2. Ceph
  3. Main
  4. IAM
  5. Core
  6. IaaS
  7. PaaS

Base

Установка

Чтобы установить Base, выполните команду:

${ANSIBLE_DIR}/tools/box.sh deploy    -b    ${ANSIBLE_DIR}    -i ${INVENTORY_DIR}/vkcloud.yml    -s base

Проверка

Чтобы проверить результат установки Base:

  1. Подключитесь к любому серверу кроме Deploy, например, к контроллеру:

    ssh cpn003
  2. Проверьте синхронизацию времени:

    chronyc sources
    Пример ожидаемого результата
    210 Number of sources = 1  MS Name/IP address         Stratum Poll Reach LastRx Last sample  ===============================================================================  ^* 10.31.0.22                    3   8   377   130   -241us[ -264us] +/-   23ms
  3. Проверьте установку сервиса Consul:

    consul catalog services
    Пример ожидаемого результата
    dashboard-metrics-scraper-kubernetes-dashboard  elk  haproxy  kube-dns-kube-system  kube-dns-upstream-kube-system  kube-state-metrics-kube-system  kubernetes-dashboard-headless-kubernetes-dashboard  kubernetes-dashboard-kubernetes-dashboard  kubernetes-default  trove-rabbit-persistent
  4. Подключитесь к любому Controlplane-серверу:

    ssh cpn003
  5. Проверьте статус Public HAProxy:

    systemctl status public_haproxy.service
    Пример ожидаемого результата
    public_haproxy.service - HAProxy Load Balancer   ...   Active: active (running) since Mon 2022-10-24 11:17:29 MSK; 1 day 7h ago   ...
  6. Проверьте статус Private HAProxy:

    systemctl status private_haproxy.service
    Пример ожидаемого результата
    private_haproxy.service - HAProxy Load Balancer    ...    Active: active (running)    ...
  7. Подключитесь к RS-серверу:

    ssh rs1
  8. Проверьте статус сервиса bird:

    systemctl status bird
    Пример ожидаемого результата
    bird.service - BIRD Internet Routing Daemon    Loaded: loaded (/usr/lib/systemd/system/bird.service; enabled; vendor preset: disabled)    Active: active (running)    ...
  9. Проверьте работу сервиса маршрутизации Bird:

    sudo birdcl show route
    Пример ожидаемого результата
    BIRD 1.6.4 ready.  10.16.8.192/26     via 10.30.3.11 on eth0 [calico_c1 2022-10-24] * (100) [AS65433i]  ...
  10. Подключитесь к Controlplane-серверу, который является куб-мастером:

    ssh cpn003
  11. Проверьте конфигурационный файл Kubernetes:

    kubectl config view
    Пример ожидаемого результата
    apiVersion: v1  clusters: null  contexts: null  current-context: ""  kind: Config  preferences: {}  users: null
  12. Выведите все поды Kubernetes:

    kubectl get pods
    Пример ожидаемого результата
    NAME                                   READY   STATUS    RESTARTS   AGE  consul-sync-catalog-7f48466df6-rk44n   1/1     Running   0          32h
  13. Подключитесь к Logging или Monitoring серверу:

    ssh lm001
  14. Проверьте контейнеры OpenSearch

    sudo docker ps --format {{.Names}}
    Пример ожидаемого результата
    opensearch_dashboardsopensearch
  15. Проверьте статус сервиса Kafka на подключенном сервере:

    systemctl status kafka-<ИМЯ_СЕРВЕРА>
    Пример ожидаемого результата
    kafka-lm001.service - Apache Kafka server kafka-lm001   ...   Active: active (running)   ...
  16. Выведете список групп читателей в Kafka:

    /srv/kafka/kafka-<ИМЯ_СЕРВЕРА>/kafka_2.13-2.6.0/bin/kafka-consumer-groups.sh --bootstrap-server <АДРЕС_MANAGEMENT_СЕТИ>:9092 --list
    Пример ожидаемого результата
    logstash_kube_main  logstash_haproxy  logstash_linux_system  logstash_libvirtd  logstash_iam  logstash_dmesg  logstash_openstack_main
  17. Проверьте статус сервиса logstash:

    systemctl status logstash-<ИМЯ_СЕРВЕРА>
    Пример ожидаемого результата
    logstash-lm001.service - Logstash node logstash-lm001    ...    Active: active (running)    ...
  18. Проверьте статус сервиса logstash:

    curl -XGET 'localhost:9600/?pretty'
    Пример ожидаемого результата
    {    "host" : "lm001",    "version" : "7.8.0",    "http_address" : "127.0.0.1:9600",    "id" : "6f7f9146-f22e-41b5-bb91-b2697d5fb4a1",    "name" : "lm001",    "ephemeral_id" : "134f3b62-0da9-4aba-8307-8dfe1b60158c",    "status" : "green",    "snapshot" : false,    "pipeline" : {      "workers" : 2,      "batch_size" : 125,      "batch_delay" : 50    },    "build_date" : "2020-06-14T21:31:02+00:00",    "build_sha" : "eb0e63abb332df668328ba540cea0f4dc7b5c892",    "build_snapshot" : false  }
  19. Подключитесь к любому Controlplane-серверу:

    ssh cpn003
  20. Проверьте сервис ZooKeeper:

    echo ruok | nc localhost 2181
    Пример ожидаемого результата
    imok

Ceph

Установка

Чтобы установить Ceph, выполните команду:

${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s ceph --ceph-cfg-path ${CEPH_CFG_PATH}    --ceph-path ${CEPH_ANSIBLE_PATH}

Проверка

Чтобы проверить результат установки Ceph:

  1. Зайдите на storage-ноду:

    ssh cph1
  2. Проверьте поднятые контейнеры:

    sudo docker ps
    Пример ожидаемого результата
    CONTAINER ID        IMAGE                                                    COMMAND                  CREATED             STATUS              PORTS               NAMES769822d0870b        deploy001.local:5553/ceph/daemon:latest-octopus-zabbix   "/usr/bin/ceph-crash"    45 minutes ago      Up 45 minutes                           ceph-crash-csn001b8b0687444b1        deploy001.local:5553/ceph/daemon:latest-octopus-zabbix   "/opt/ceph-container…"   46 minutes ago      Up 46 minutes                           ceph-mds-csn0013e264bbc1bcf        deploy001.local:5553/ceph/daemon:latest-octopus-zabbix   "/opt/ceph-container…"   47 minutes ago      Up 47 minutes                           ceph-osd-0a677c29f69ee        deploy001.local:5553/ceph/daemon:latest-octopus-zabbix   "/opt/ceph-container…"   47 minutes ago      Up 47 minutes                           ceph-mgr-csn00128ecf2ad802f        deploy001.local:5553/ceph/daemon:latest-octopus-zabbix   "/opt/ceph-container…"   48 minutes ago      Up 48 minutes                           ceph-mon-csn001
  3. Проверьте состояние Ceph:

    sudo docker exec -it ceph-mon-csn001 ceph -s
    Пример ожидаемого результата
    cluster:id:     5456e034-c7a6-4a7d-af66-1e95be8e50b1health: HEALTH_OK(muted: POOL_NO_REDUNDANCY)  services:    mon: 1 daemons, quorum csn001 (age 50m)    mgr: csn001(active, since 47m)    mds: cephfs:1 {0=csn001=up:active}    osd: 1 osds: 1 up (since 48m), 1 in (since 48m)  data:    pools:   7 pools, 193 pgs    objects: 22 objects, 2.8 KiB    usage:   1.0 GiB used, 299 GiB / 300 GiB avail    pgs:     193 active+clean

Main

Установка

Чтобы установить Main, выполните команду:

${ANSIBLE_DIR}/tools/box.sh deploy    -b    ${ANSIBLE_DIR}    -i ${INVENTORY_DIR}/vkcloud.yml    -s main

Проверка

Чтобы проверить результат установки Main:

  1. Зайдите на Controlplane-сервер, являющийся куб-мастером:

    ssh cpn003
  2. Проверьте сервис Memcached.

    1. Получите список подов сервиса memcached:

      kubectl -n memcached-vkcloud get pods -o wide
    2. Из полученного списка выберите IP-адрес любого пода и получите по нему статистику сервиса memcached:

      echo stats | nc <ВЫБРАННЫЙ_IP_АДРЕС> 11211
      Пример ожидаемого результата
      CSTAT pid 1  STAT uptime 46852  STAT time 1666767662  STAT version 1.4.39  STAT libevent 2.0.21-stable  STAT pointer_size 64
  3. Проверьте БД.

    1. Получите список всех БД:

      systemctl | grep mariadb
    2. Подключитесь к БД:

      sudo mysql -S /srv/mysql/nova/socket/nova.sock -u root
      Пример ожидаемого результата
      Welcome to the MariaDB monitor.  Commands end with ; or \g.  Your MariaDB connection id is 12896  Server version: 10.2.43-MariaDB-log MariaDB Server  Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  MariaDB [(none)]>
    3. Проверьте статус прокси-сервера БД:

      systemctl status proxysql
      Пример ожидаемого результата
      proxysql.service - High Performance Advanced Proxy for MySQL    Loaded: loaded (/etc/systemd/system/proxysql.service; enabled; vendor preset: disabled)    Active: active (running) since Tue 2022-10-25 21:38:37 MSK; 12h ago
  4. Проверьте сервис очередей RabbitMQ.

    1. Проверьте количество готовых подов (столбец READY):

      kubectl -n rabbitmq get statefulset
      Пример ожидаемого результата
      NAME                  READY   AGE  rabbitmq-ceilometer   3/3     12h  rabbitmq-celery       3/3     12h  rabbitmq-cinder       3/3     12h  rabbitmq-gb           3/3     12h  rabbitmq-heat         3/3     12h  rabbitmq-katana       3/3     12h  rabbitmq-magnum       3/3     12h  rabbitmq-manila       3/3     12h  rabbitmq-neutron      3/3     12h  rabbitmq-nova         3/3     12h
    2. Получите полный список подов RabbitMQ:

      kubectl -n rabbitmq get pods
      Пример ожидаемого результата
      NAME                    READY   STATUS    RESTARTS   AGE  rabbitmq-ceilometer-0   1/1     Running   0          12h  rabbitmq-ceilometer-1   1/1     Running   0          12h  rabbitmq-ceilometer-2   1/1     Running   0          12h  rabbitmq-celery-0       1/1     Running   0          12h  rabbitmq-celery-1       1/1     Running   0          12h  rabbitmq-celery-2       1/1     Running   0          12h  rabbitmq-cinder-0       1/1     Running   0          12h  rabbitmq-cinder-1       1/1     Running   0          12h  ...
    3. Из полученного списка выберите один из подов и получите по нему статистику:

      kubectl -n rabbitmq exec -it <НАЗВАНИЕ_ПОДА> rabbitmqctl cluster_status
      Пример ожидаемого результата
      RABBITMQ_ERLANG_COOKIE env variable support is deprecated and will be REMOVED in a future version. Use the $HOME/.erlang.cookie file or the --erlang-cookie switch instead.  Cluster status of node rabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kube ...  Basics  Cluster name: rabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kube  Disk Nodes  rabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kube  rabbit@rabbitmq-neutron-1.rabbitmq-neutron.rabbitmq.svc.kube  rabbit@rabbitmq-neutron-2.rabbitmq-neutron.rabbitmq.svc.kube  Running Nodes  rabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kube  rabbit@rabbitmq-neutron-1.rabbitmq-neutron.rabbitmq.svc.kube  rabbit@rabbitmq-neutron-2.rabbitmq-neutron.rabbitmq.svc.kube  ...
  5. Проверьте сервис RABBIT_PERSISTENT:

    sudo docker exec rabbit_persistent rabbitmqctl cluster_status
    Пример ожидаемого результата
    Cluster status of node rabbit@cpn003 ...  Basics  Cluster name: trove_rabbit_persistent  Disk Nodes  rabbit@cpn001  rabbit@cpn002  rabbit@cpn003  Running Nodes  rabbit@cpn001  rabbit@cpn002  rabbit@cpn003
  6. Проверьте статус хранилища ETCD:

    etcdctl --endpoints=localhost:22379 --write-out=table endpoint status
    Пример ожидаемого результата
    +-----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+|    ENDPOINT     |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |+-----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+| localhost:22379 | 4c4ac234a21a8a2b |   3.4.7 |   20 kB |     false |      false |        54 |      27905 |              27905 |        |+-----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
  7. Проверьте сервис мониторинга Zabbix.

    1. Подключитесь к узлу мониторинга:

      ssh lm001
    2. Проверьте состояние сервера Zabbix:

      systemctl status zabbix-server
      Пример ожидаемого результата
      zabbix-server.service - Zabbix Server    Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)    Active: active (running)

IAM

Установка

Чтобы установить IAM, выполните команду:

${ANSIBLE_DIR}/tools/box.sh deploy    -b    ${ANSIBLE_DIR}    -i ${INVENTORY_DIR}/vkcloud.yml    -s iam

Проверка

Чтобы проверить результат установки IAM:

  1. Получите пароль из переменной vault_keycloak_password, которая задана в файле ${INVENTORY_DIR}/vkcloud/group_vars/vkcloud/vault.yml.

  2. Подключитесь к Controlplane-серверу, который является куб-мастером:

    ssh cpn003
  3. Подключитесь к поду KeyCloak:

    kubectl -n keycloak-vkcloud exec vk-keycloak-0 bash -it/opt/jboss/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin
  4. Введите пароль из переменной vault_keycloak_password.

  5. Получите данные о состоянии сервера:

    /opt/jboss/keycloak/bin/kcadm.sh get serverinfo
    Пример ожидаемого результата
    ...    SEND_VERIFY_EMAIL", "SEND_VERIFY_EMAIL_ERROR", "TOKEN_EXCHANGE", "TOKEN_EXCHANGE_ERROR", "UNREGISTER_NODE", "UNREGISTER_NODE_ERROR", "UPDATE_CONSENT", "UPDATE_CONSENT_ERROR", "UPDATE_EMAIL", "UPDATE_EMAIL_ERROR", "UPDATE_PASSWORD", "UPDATE_PASSWORD_ERROR", "UPDATE_PROFILE", "UPDATE_PROFILE_ERROR", "UPDATE_TOTP", "UPDATE_TOTP_ERROR", "USER_INFO_REQUEST", "USER_INFO_REQUEST_ERROR", "VALIDATE_ACCESS_TOKEN", "VALIDATE_ACCESS_TOKEN_ERROR", "VERIFY_EMAIL", "VERIFY_EMAIL_ERROR" ],        "resourceType" : [ "AUTHENTICATOR_CONFIG", "AUTHORIZATION_POLICY", "AUTHORIZATION_RESOURCE", "AUTHORIZATION_RESOURCE_SERVER", "AUTHORIZATION_SCOPE", "AUTH_EXECUTION", "AUTH_EXECUTION_FLOW", "AUTH_FLOW", "CLIENT", "CLIENT_INITIAL_ACCESS_MODEL", "CLIENT_ROLE", "CLIENT_ROLE_MAPPING", "CLIENT_SCOPE", "CLIENT_SCOPE_MAPPING", "CLUSTER_NODE", "COMPONENT", "CUSTOM", "GROUP", "GROUP_MEMBERSHIP", "IDENTITY_PROVIDER", "IDENTITY_PROVIDER_MAPPER", "PROTOCOL_MAPPER", "REALM", "REALM_ROLE", "REALM_ROLE_MAPPING", "REALM_SCOPE_MAPPING", "REQUIRED_ACTION", "USER", "USER_FEDERATION_MAPPER", "USER_FEDERATION_PROVIDER", "USER_LOGIN_FAILURE", "USER_SESSION" ]      }    }
  6. Подключитесь к Controlplane-серверу, который является куб-мастером:

    ssh cpn003
  7. Проверьте статусы сервисов IAM:

    1. Breeze:

      echo 'box.info.status' | sudo tarantoolctl eval breeze_03
      Пример ожидаемого результата
      connected to unix/:/var/run/tarantool/breeze_03.control  ---  - running  ...
    2. Apex_Breeze:

      echo 'box.info.status' | sudo tarantoolctl eval apex_breeze_03
      Пример ожидаемого результата
      connected to unix/:/var/run/tarantool/apex_breeze_03.control  ---  - running  ...
    3. Dusk:

      echo 'box.info.status' | sudo tarantoolctl eval dusk_03
      Пример ожидаемого результата
      connected to unix/:/var/run/tarantool/dusk_03.control  ---  - running  ...
  8. Просмотрите пользователей:

    echo 'box.space.users:select()' | sudo tarantoolctl eval breeze_03
    Пример ожидаемого результата
    connected to unix/:/var/run/tarantool/breeze_03.control  ---  - - ['52e5f673a24f4462994cb73df84d0a57', 2746600586, 'superadmin', 'users', 1666779781.7184,      1666779781.7184, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},      true]    - ['a35e510fcbc340ceaf5e8811566e8066', 2300553501, 'odmin@vk.team', 'users', 1666779781.7129,      1666779781.7129, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},      true]    - ['ea1efb5835fa427288b5df1a0e2a9427', 2829308088, 'proj2@vk.team', 'users', 1666779781.716,      1666779781.716, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},      true]    - ['ef158c5586b447f492e05263dce30ff7', 2177923669, 'proj1@vk.team', 'users', 1666779781.7149,      1666779781.7149, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},      true]    - ['f77518ef345c4cd7b3690af4ca6a4edb', 1432812437, 'iam', 'users', 1666779857.4096,      1666779857.4096, true, '', 0, {'phone': true, 'email': true}, {}, null]  ...

Core

Установка

Чтобы установить Core, выполните команду:

${ANSIBLE_DIR}/tools/box.sh deploy    -b    ${ANSIBLE_DIR}    -i ${INVENTORY_DIR}/vkcloud.yml    -s core

Проверка

Чтобы проверить результат установки Core:

  1. Подключитесь к Controlplane-серверу, на котором находится bash-скрипт openrc.sh:

    ssh cpn001
  2. Переключитесь на пользователя root и выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:

    sudo -i. openrc.sh
  3. Проверьте наличие пользователей:

    openstack user list
    Пример ожидаемого результата
    +----------------------------------+-----------+| ID                               | Name      |+----------------------------------+-----------+| 25d691a195684e6c875edeb940e4f329 | neutron   || 30ec3d69d40747018054e68f64ce9ee6 | nova      || 4da084ae9e7844e5891e98438fb22797 | cinder    || 4ff1cfa3ef7442ce91991df67c7c14ff | barbican  || 70638cc02a7a4269835f1abf00c4bd50 | glance    || ba8b626432a54530b80436d661d7db86 | katana    || cfbbe7cce2ff4e839c1b7b4374de21ca | admin     || f151ca96325c47bebfbc5f36048bd858 | placement |+----------------------------------+-----------+
  4. Проверьте создание токена для пользователя admin:

    openstack token issue
    Пример ожидаемого результата
    +------------+-------------------------------------------+| Field      | Value                                     |+------------+-------------------------------------------+| expires    | 2022-10-28T15:54:18+0000                  || id         | gAAAAA.....r-                             ||            | w5s......zOne3Jdjto                       || project_id | e01b26b84caa463f9c1691720fba5d53          || user_id    | cfbbe7cce2ff4e839c1b7b4374de21ca          |+------------+-------------------------------------------+
  5. Создайте тестовый секрет:

    openstack secret store
    Пример ожидаемого результата
    +---------------+-------------------------------------------------------------------------------------------------+| Field         | Value                                                                                           |+---------------+-------------------------------------------------------------------------------------------------+| Secret href   | https://overcloud.private.infra.devmail.ru:9311/v1/secrets/f6082920-abfd-4773-a311-fb8338859cec || Name          | None                                                                                            || Created       | 2022-10-28 14:58:16+00:00                                                                       || Status        | ACTIVE                                                                                          || Content types | None                                                                                            || Algorithm     | aes                                                                                             || Bit length    | 256                                                                                             || Secret type   | opaque                                                                                          || Mode          | cbc                                                                                             || Expiration    | None                                                                                            |+---------------+-------------------------------------------------------------------------------------------------+
  6. Проверьте, что список CA-сертификатов не пустой:

    openstack ca list
    Пример ожидаемого результата
    +---------------------+-----------+--------------------+----------------+----------------+--------+---------------------+--------------+----------------+| CA href             | Name      | Description        | Created        | Updated        | Status | Plugin Name         | Plugin CA ID | Expiration     |+---------------------+-----------+--------------------+----------------+----------------+--------+---------------------+--------------+----------------+| https://overcloud.p | Simple CA | Certificate        | 2022-10-27     | 2022-10-28     | ACTIVE | barbican.plugin.sim | Simple CA    | 2022-10-29     || rivate.infra.devmai |           | Authority - Simple | 06:35:08+00:00 | 16:14:16+00:00 |        | ple_certificate_man |              | 16:14:16+00:00 || l.ru:9311/v1/cas    |           | CA                 |                |                |        | ager.SimpleCertific |              |                || /424acbaa-6b8e-46af |           |                    |                |                |        | atePlugin           |              |                || -b633-7235d88d0c31  |           |                    |                |                |        |                     |              |                |+---------------------+-----------+--------------------+----------------+----------------+--------+---------------------+--------------+----------------+
  7. Проверьте, что список типов диска не пустой:

    openstack volume type list
    Пример ожидаемого результата
    +--------------------------------------+------+-----------+| ID                                   | Name | Is Public |+--------------------------------------+------+-----------+| e8ef1421-f258-4dad-b9b2-5f921140974f | ceph | True      |+--------------------------------------+------+-----------+
  8. Проверьте что список правил QoS для сети не пустой:

    openstack volume qos list
    Пример ожидаемого результата
    +--------------------------------------+------+----------+--------------+---------------------------------------------------------------------+| ID                                   | Name | Consumer | Associations | Properties                                                          |+--------------------------------------+------+----------+--------------+---------------------------------------------------------------------+| d6573c1b-1238-479c-9e9d-45e4917ce5c3 | ceph | both     | ceph         | cache_mode='none', read_iops_sec_per_gb='30',                       ||                                      |      |          |              | read_iops_sec_per_gb_max='16000', read_iops_sec_per_gb_min='1000',  ||                                      |      |          |              | write_iops_sec_per_gb='15', write_iops_sec_per_gb_max='8000',       ||                                      |      |          |              | write_iops_sec_per_gb_min='500'                                     |+--------------------------------------+------+----------+--------------+---------------------------------------------------------------------+
  9. Подключитесь к Deploy-ноде:

    ssh deploy
  10. Получите пароль для Katana:

    grep katana inventory/vkcloud/group_vars/vkcloud/vault.yml
    Пример ожидаемого результата
    ...    password: <PASSWORD> # It's password used for access to katana (web) - "katana/{{ vault_katana.openstack.password }}"
  11. Подключитесь к Controlplane-серверу, который является куб-мастером:

    ssh cpn003
  12. Получите IP-адрес Katana

    kubectl -n sre-vkcloud get endpoints | grep nginx
    Пример ожидаемого результата
    katana-nginx-headless               10.220.1.20:80,10.220.1.84:80   33h
  13. Запросите у сервиса Katana статус:

    curl -u katana:dd02c15e52ab74d79a40 10.220.1.20/status
    Пример ожидаемого результата
    {"status": true}
  14. Подключитесь к Controlplane-серверу, на котором находится bash-скрипт openrc.sh:

    ssh cpn001
  15. Переключитесь на пользователя root и выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:

    sudo -i. openrc.sh
  16. Проверьте наличие гипервизоров:

    openstack hypervisor list
    Пример ожидаемого результата
    +----+---------------------+-----------------+------------+-------+| ID | Hypervisor Hostname | Hypervisor Type | Host IP    | State |+----+---------------------+-----------------+------------+-------+|  2 | kcn002              | QEMU            | 10.30.3.15 | down  ||  5 | kcn001              | QEMU            | 10.30.3.14 | down  |+----+---------------------+-----------------+------------+-------+
  17. Проверьте, что список агрегаторов сети не пустой:

    openstack aggregate list
    Пример ожидаемого результата
    +----+------+-------------------+| ID | Name | Availability Zone |+----+------+-------------------+|  2 | AZ1  | AZ1               |+----+------+-------------------+
  18. Подключитесь к Controlplane-серверу, на котором находится bash-скрипт openrc.sh:

    ssh cpn001
  19. Переключитесь на пользователя root и выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:

    sudo -i. openrc.sh
  20. Выведете список всех сетей. Команда должна вывести пустой список:

    openstack network list
  21. Создайте сеть:

    openstack network create net-test
    Пример ожидаемого результата
    +---------------------------+--------------------------------------+| Field                     | Value                                |+---------------------------+--------------------------------------+| admin_state_up            | UP                                   || availability_zone_hints   |                                      || availability_zones        |                                      || created_at                | 2022-10-28T18:17:46Z                 || description               |                                      || dns_domain                | None                                 || id                        | fe9dc7f1-08ec-4a46-98c0-04047f6c4f21 || ipv4_address_scope        | None                                 || ipv6_address_scope        | None                                 || is_default                | None                                 || mtu                       | 1400                                 || name                      | net-test                             || port_security_enabled     | True                                 || project_id                | e01b26b84caa463f9c1691720fba5d53     || provider:network_type     | vxlan                                || provider:physical_network | None                                 || provider:segmentation_id  | 9                                    || qos_policy_id             | None                                 || revision_number           | 4                                    || router:external           | Internal                             || segments                  | None                                 || shared                    | False                                || status                    | ACTIVE                               || subnets                   |                                      || updated_at                | 2022-10-28T18:17:46Z                 |+---------------------------+--------------------------------------+
  22. Выведете список всех сетей. Команда должна вывести список, где будет присутствовать ранее созданная сеть:

    openstack network list
    Пример ожидаемого результата
    +--------------------------------------+----------+---------+| ID                                   | Name     | Subnets |+--------------------------------------+----------+---------+| fe9dc7f1-08ec-4a46-98c0-04047f6c4f21 | net-test |         |+--------------------------------------+----------+---------+
  23. Удалите ранее созданную сеть. Команда должна отработать без ошибок:

    openstack network delete net-test
    Пример ожидаемого результата
    +--------------------------------------+----------+---------+| ID                                   | Name     | Subnets |+--------------------------------------+----------+---------+| fe9dc7f1-08ec-4a46-98c0-04047f6c4f21 | net-test |         |+--------------------------------------+----------+---------+
  24. Выведете список всех сетей. Команда должна вывести список, где не будет присутствовать ранее созданная сеть:

    openstack network list
  25. Выведете список всех образов:

    openstack image list
  26. Создайте тестовый образ:

    openstack image create image-test
    Пример ожидаемого результата
    +------------------+------------------------------------------------------+| Field            | Value                                                |+------------------+------------------------------------------------------+| checksum         | None                                                 || container_format | bare                                                 || created_at       | 2022-10-28T18:21:11Z                                 || disk_format      | raw                                                  || file             | /v2/images/4d3afeba-e7e2-4a08-9190-e3dac8ac5352/file || id               | 4d3afeba-e7e2-4a08-9190-e3dac8ac5352                 || min_disk         | 0                                                    || min_ram          | 0                                                    || name             | image-test                                           || owner            | e01b26b84caa463f9c1691720fba5d53                     || properties       | locations='[]'                                       || protected        | False                                                || schema           | /v2/schemas/image                                    || size             | None                                                 || status           | queued                                               || tags             |                                                      || updated_at       | 2022-10-28T18:21:11Z                                 || virtual_size     | None                                                 || visibility       | shared                                               |+------------------+------------------------------------------------------+
  27. Выведете список всех образов. В списке должен присутствовать ранее созданный образ:

    openstack image list
    Пример ожидаемого результата
    +--------------------------------------+------------+--------+| ID                                   | Name       | Status |+--------------------------------------+------------+--------+| 4d3afeba-e7e2-4a08-9190-e3dac8ac5352 | image-test | queued |+--------------------------------------+------------+--------+
  28. Удалите ранее созданный образ. Команда должна отработать без ошибок:

    openstack image delete image-test
  29. Выведите список всех образов. В списке не должно быть ранее созданного образа:

    openstack image list

IaaS

Установка

Чтобы установить IaaS, выполните команду:

${ANSIBLE_DIR}/tools/box.sh deploy    -b    ${ANSIBLE_DIR}    -i ${INVENTORY_DIR}/vkcloud.yml    -s iaas

Проверка

Чтобы проверить результат установки IaaS:

  1. Подключитесь к Controlplane-серверу, на котором находится bash-скрипт openrc.sh:

    ssh cpn001
  2. Переключитесь на пользователя root и выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:

    sudo -i. openrc.sh
  3. Проверьте список сервисов Manila:

    manila service-list
    Пример ожидаемого результата
    +----+------------------+-------------+------+---------+-------+----------------------------+| Id | Binary           | Host        | Zone | Status  | State | Updated_at                 |+----+------------------+-------------+------+---------+-------+----------------------------+| 3  | manila-scheduler | cpn001      | AZ1  | enabled | up    | 2022-10-29T10:31:03.000000 || 6  | manila-scheduler | cpn003      | AZ1  | enabled | up    | 2022-10-29T10:31:12.000000 || 9  | manila-scheduler | cpn002      | AZ1  | enabled | up    | 2022-10-29T10:31:03.000000 || 12 | manila-share     | cpn001@ceph | AZ1  | enabled | up    | 2022-10-29T10:31:08.000000 || 15 | manila-share     | cpn003@ceph | AZ1  | enabled | up    | 2022-10-29T10:31:06.000000 || 18 | manila-share     | cpn002@ceph | AZ1  | enabled | up    | 2022-10-29T10:31:04.000000 |+----+------------------+-------------+------+---------+-------+----------------------------+
  4. Проверьте доступные пулы для выделения ресурсов на создание хранилища:

    manila pool-list
    Пример ожидаемого результата
    +------------------+--------+---------+------+| Name             | Host   | Backend | Pool |+------------------+--------+---------+------+| cpn001@ceph#ceph | cpn001 | ceph    | ceph || cpn002@ceph#ceph | cpn002 | ceph    | ceph || cpn003@ceph#ceph | cpn003 | ceph    | ceph |+------------------+--------+---------+------+
  5. Проверьте все дополнительные конфигурации:

    manila extra-specs-list
    Пример ожидаемого результата
    +--------------------------------------+--------------------+-------------------------------------------+| ID                                   | Name               | all_extra_specs                           |+--------------------------------------+--------------------+-------------------------------------------+| b1aa5e73-ff63-4d07-8c02-1d4d0d3ad74f | default_share_type | create_share_from_snapshot_support : True ||                                      |                    | snapshot_support : True                   ||                                      |                    | driver_handles_share_servers : True       |+--------------------------------------+--------------------+-------------------------------------------+
  6. Проверьте все доступные зоны:

    openstack loadbalancer availabilityzone list
    Пример ожидаемого результата
    +------+--------------------------------------+---------+| name | availability_zone_profile_id         | enabled |+------+--------------------------------------+---------+| AZ1  | 7fe03e65-ccec-4211-b387-339cd0d018d6 | True    |+------+--------------------------------------+---------+
  7. Проверьте список балансировщиков нагрузки:

    openstack loadbalancer provider list
    Пример ожидаемого результата
    +---------+-------------------------------------------------+| name    | description                                     |+---------+-------------------------------------------------+| amphora | The Octavia Amphora driver.                     || octavia | Deprecated alias of the Octavia Amphora driver. |+---------+-------------------------------------------------+
  8. Подключитесь к Controlplane-серверу, который является куб-мастером:

    ssh cpn003
  9. Получите адрес Front:

    frontIP=$(kubectl get -n mcs-front-vkcloud pods -l=app.kubernetes.io/instance=mcs -o=custom-columns='IP:.status.podIP' --no-headers | head -n 1)echo $frontIP
    Пример ожидаемого результата
    10.220.1.26
  10. Выполните запрос на Front, чтобы убедиться, что он отвечает на запросы:

    curl $frontIP/app
    Пример ожидаемого результата
    <!doctype html><html lang="ru"><head><title>Личный кабинет VK Cloud</title><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="robots" c  ontent="noindex,nofollow"/><meta name="viewport" content="width=1280"/><meta name="format-detection" content="email=no"/><meta name="theme-color" content="#ffffff"/><meta na  me="msapplication-TileColor" content="#060540"/><meta name="description" content="Полный доступ ко всем облачным сервисам: Виртуальные серверы, S3 - совместимое хранилище, б  азы данных, кластеры Kubernetes, большие данные, ML."/><meta name="keywords" content="s3,hotbox,icebox,backup,архив,infra,openstack,cloud,storge,облако,b2b"/><link rel="shor  tcut icon" type="image/x-icon" href="/private/static/6ce1562b/favicon.ico" data-react-helmet="true"/><link rel="icon" type="image/png" sizes="32x32" href="/private/static/6c  e1562b/favicon-32x32.png" data-react-helmet="true"/><link rel="icon" type="image/png" sizes="16x16" href="/private/static/6ce1562b/favicon-16x16.png" data-react-helmet="true  ...
  11. Подключитесь к Controlplane-серверу, который является куб-мастером:

    ssh cpn003
  12. Получите адрес price-api и выведите его:

    PRICE_API=$(sudo netstat -tln | grep -m1 3112 | awk '{print $4}')echo $PRICE_API
    Пример ожидаемого результата
    10.30.4.5:3112
  13. Получите ответ с доступными api-эндпоинтами, чтобы убедиться, что биллинг отвечает на запросы:

    curl $PRICE_API/v1/
    Пример ожидаемого результата
    ["resource_types", "units", "calculators", "rules", "plans"]
  14. Подключитесь к Controlplane-серверу, на котором установлена служба scrooge-billing:

    ssh cpn001
  15. Зафиксируйте время последнего запуска биллинга:

    systemctl status scrooge-billing
    Пример ожидаемого результата
    scrooge-billing.service - Scrooge Billing script    ...    Active: inactive (dead) since Mon 2022-10-31 09:04:33 MSK; 1min 26s ago
  16. Запустите пересчет биллинга:

    systemctl start scrooge-billing

    Запуск должен отработать без ошибок.

  17. Проверьте измененное время запуска биллинга:

    systemctl status scrooge-billing
    Пример ожидаемого результата
    scrooge-billing.service - Scrooge Billing script    ...    Active: inactive (dead) since Mon 2022-10-31 09:06:10 MSK; 1s ago

PaaS

Установка

Чтобы установить PaaS, выполните команду:

${ANSIBLE_DIR}/tools/box.sh deploy    -b    ${ANSIBLE_DIR}    -i ${INVENTORY_DIR}/vkcloud.yml    -s paas

Проверка

Чтобы проверить результат установки PaaS:

  1. Подключитесь к Controlplane-серверу, на котором находится bash-скрипт openrc.sh:

    ssh cpn001
  2. Переключитесь на пользователя root и выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:

    sudo -i. openrc.sh
  3. Получите список эндпоинтов Trove:

    openstack endpoint list --service trove --interface internal
  4. Убедитесь, что полученный эндпоинт отвечает на запросы:

    curl <ЭНДПОИНТ_TROVE>
    Пример ожидаемого результата
    {"versions": [{"id": "v1.0", "status": "CURRENT", "updated": "2012-08-01T00:00:00Z", "links": [{"rel": "self", "href": "http://internal.private.infra.devmail.ru:8779/v1.0/"}]}]}
  5. Подключитесь к Controlplane-серверу, который является куб-мастером:

    ssh cpn003
  6. Выполните команду для проверки сервиса Karboii:

    kubectl -n paas-vkcloud get pods -o wide | grep karboii
    Пример ожидаемого результата
    karboii-karti-api-dbd7c8b9f-4r27f                            1/1     Running   0          11h     10.220.1.233   cpn003   <none>           <none>  karboii-karti-api-dbd7c8b9f-jff74                            1/1     Running   0          11h     10.220.1.38    cpn002   <none>           <none>  ...
  7. Подключитесь к Controlplane-серверу, на котором находится bash-скрипт openrc.sh:

    ssh cpn001
  8. Переключитесь на пользователя root и выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:

    sudo -i. openrc.sh
  9. Убедитесь что список кластеров Magnum не пустой:

    magnum cluster-template-list
    Пример ожидаемого результата
    +--------------------------------------+-------------------------------------------+| uuid                                 | name                                      |+--------------------------------------+-------------------------------------------+| 5405db84-5e79-4058-8951-afd734ea97b7 | Kubernetes-almalinux-v1.22.6-mcs.external |+--------------------------------------+-------------------------------------------+
  10. Убедитесь, что список сервисов Magnum не пустой:

    magnum service-list
    Пример ожидаемого результата
    +----+--------------+-----------------+-------+----------+-----------------+---------------------------+---------------------------+| id | host         | binary          | state | disabled | disabled_reason | created_at                | updated_at                |+----+--------------+-----------------+-------+----------+-----------------+---------------------------+---------------------------+| 2  | 10.220.1.45  | magnum-periodic | up    |          | -               | 2022-10-30T21:06:07+00:00 | 2022-10-31T20:50:10+00:00 || 5  | 10.220.1.236 | magnum-periodic | up    |          | -               | 2022-10-30T21:06:34+00:00 | 2022-10-31T20:50:23+00:00 |+----+--------------+-----------------+-------+----------+-----------------+---------------------------+---------------------------+
  11. Проверьте статистику Magnum:

    magnum stats-list
    Пример ожидаемого результата
    +----------+-------+| Property | Value |+----------+-------+| clusters | 0     || nodes    | 0     |+----------+-------+
  12. Проверьте списки образов, так как одной из функций роли postdeploy является загрузка образов:

    openstack image list
    Пример ожидаемого результата
    +--------------------------------------+---------------------------------------------------+--------+| ID                                   | Name                                              | Status |+--------------------------------------+---------------------------------------------------+--------+| a2922ba5-e78d-4f0b-9503-cd28ee8ee40e | Almalinux-8-v1.22.6-mcs.8-private-magnum-03082022 | active || 95ab409e-e1b0-4791-97ba-ea5ff2cc5a43 | CentOS-7.9-22082022                               | active || d23b6c48-0e19-4465-b7a2-9d5b93df9cdb | CentOS-7.9-Marketplace-Basic                      | active || adc1d014-450b-4d62-8c1e-47d71382ae10 | Clickhouse-20--1.12.19--2022-02-22_01-14-44       | active || 09c9fe67-4a6d-41b0-b2d9-d28f15c02ef4 | MongoDB-v4dot0--1.12.21--2022-03-18_10-15-48      | active || 9d020809-db21-4e66-9739-b78b2e716886 | MySQL-v5dot7--1.12.14--2021-11-25_06-42-20        | active || 380235f7-5504-40a1-8f0a-09afd9c240aa | PostgreSQL-12--1.12.23--2022-04-20_10-57-50       | active || f485c6f5-3687-46b2-ab31-c1e77ed2e603 | Redis-5--1.12.12--2021-11-10_05-47-15             | active || 14251f6a-7b1f-46de-bc0f-fcc033e7b52f | Ubuntu-22.04-202208                               | active || b0a08bae-8da5-4940-9c34-28965aa7537e | amphora-x64-haproxy-202110110805.gitf2ca0ca2      | active || cf9dd0ab-1067-4085-bcb2-57d043ab478c | cirros-0.5.1-x86_64                               | active || 0aaaaacd-9cd1-4540-bf77-0ef8d9cef855 | manila-service-image-20220426                     | active |+--------------------------------------+---------------------------------------------------+--------+