Подготовка одного развёртывания

В этом разделе описана подготовка одного развёртывания с нуля. Обязательно пройдите подготовку к развёртываниям в разделе Подготовка к развёртываниям.

При деплое OpenStack с Ceph необходимо сначала развернуть Ceph!

Выберите одно из развёртываний в секции Deployments.

┌─────────────────────────────────── Configure OpenStack Installation ───────────────────────────────────┐
│Menu                                                                 Description                        │
│Roles/Nodes and Networks                                             Manage roles, baremetal nodes and  █
│Virtual IPs                                                          their networks, IPs and images     ░
│Passwords                                                                                               ░
│Endpoint Data                                                                                           ░
│Service settings                                                                                        ░
│Deployment                                                                                              ░
│Check cloud deployment                                                                                  ░
│Prepare cloud                                                                                           ░
│Cloud Admin Actions                                                                                     ░
│                                                                                                        ░
│                                                                                                        ░
│                                                                                  < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

На экране отображается Меню развёртывания, в котором все настройки влияют только на выбранное развёртывание.

Роли/Узлы и Сети ролей

Перейдите во вкладку Roles/Nodes and Networks.

┌────────────────────────────────────── Deployment roles and nodes ──────────────────────────────────────┐
│========================================================================================================│
│Roles: select role to edit                                                                              █
│Name                                     Count     Image                                                ░
│Controller                               0         /var/lib/ironic/images/overcloud.x86_64.qcow2        ░
│Compute                                  0         /var/lib/ironic/images/overcloud.x86_64.qcow2        ░
│                                                                                                        ░
│========================================================================================================░
│Nodes: select node to edit                                                                              ░
│Name                                Hostname                                      Managed by Ironic     ░
│========================================================================================================░
│                                                                                                        ░
│                                                                                                        ░
│                                                                                                        ░
│     < Save/Ctrl+U >            < Add/Ctrl+A >          < Delete/Ctrl+D >         < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Сверху отображается сводная таблица настроек для каждой из ролей, участвующих в развёртывании.

Ниже отображается сводная таблица заведённых в развёртывание узлов. Сначала она пустая.

Развёртывание типа OpenStack требует обязательные роли:

  • Controller - узлы контроллеры
  • ComputeInstanceHA - узлы виртуализации

Развёртывание типа Ceph требует только роль BareCeph, в которой нет сервисов. Так как само развёртывание Ceph системы происходит за пределами консоли при помощи инструмента ceph-ansible.

Настройка роли

Выберите в таблице роль и нажмите Enter

┌────────────────────────────────────────── Role/Node settings ──────────────────────────────────────────┐
│Role            Controller                                                                              │
│                                                                                                        █
│========================================================================================================░
│Settings                                            Network plan template preview                       ░
│========================================================================================================░
│Image           [overcloud.x86_64.qcow2            ]  dns_servers: {{ ctlplane_dns_nameservers }}       ░
│Networks                                              domain: {{ dns_search_domains }}                  ░
│  external      [✓]                                   addresses:                                        ░
│  internal_api  [✓]                                   - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet░
│  storage       [✓]                                 _cidr }}                                            ░
│Network Plan    [single_nic_vlans/single_nic_vlans.]  routes: {{ ctlplane_host_routes }}                ░
│Default Route via [external                        ]  members:                                          ░
│DNS servers                                           - type: interface                                 ░
│Bond options                                            name: nic1                                      ░
│                                                        mtu: {{ min_viable_mtu }}                       ░
│                                                        # force the MAC address of the bridge to this in░
│                                                    terface                                             ░
│                                                        primary: true                                   ░
│                                                    {% for network in role_networks %}                  ░
│                                                      - type: vlan                                      ░
│                                                        mtu: {{ lookup('vars', networks_lower[network] ~░
│                                                     '_mtu') }}                                         ░
│                                                        vlan_id: {{ lookup('vars', networks_lower[networ░
│                                                    k] ~ '_vlan_id') }}                                 ░
│                                                        addresses:                                      ░
│                                                        - ip_netmask:                                   ░
│                                                            {{ lookup('vars', networks_lower[network] ~ ░
│                                                    '_ip') }}/{{ lookup('vars', networks_lower[network] ░
│                                                    ~ '_cidr') }}                                       ░
│                                                        routes: {{ lookup('vars', networks_lower[network░
│                                                    ] ~ '_host_routes') }}                              ░
│                                                    {% endfor %}                                        ░
│                                                                                                        ░
│     < Save/Ctrl+U >                                                              < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Измените настройки роли, если это необходимо.

  • Image - образ операционной системы для узлов данной роли
  • Networks - сети, которые используются на узлах данной роли. Сети соответствуют тем, что были созданы ранее.
  • Network Plan - сетевой план для узлов данной роли. Для более подробной информации прочитайте пункт Сетевые планы
  • Default Route via - сеть, чей IP-адрес шлюза будет использоваться как основной шлюз для сети на узле.
  • DNS servers - DNS сервера для узлов данной роли
  • Bond options - опции для агрегации интерфейсов. В развёртываниях типа Ceph значение параметра должно быть равно mode=active-backup, типа OpenStack - bond_mode=active-backup. Так как в Ceph используется агрегация ядра Linux, в OpenStack - агрегация Ovs.

Добавление узла

Для добавления узла в развёртывание нажмите кнопку Add и выберите Node во всплывающем окне.

┌────────────────────────────────────────── Role/Node settings ──────────────────────────────────────────┐
│Manage by Ironic [✓] unset for manually deployed node                                                   │
│Baremetal Node   [                                 ]                                                    █
│Role             [                                 ]                                                    ░
│                                                                                                        ░
│                                                                                                        ░
│========================================================================================================░
│Settings                                            Network plan template preview                       ░
│========================================================================================================░
│Image                   [✓] use default from role                                                       ░
│Networks and Fixed IPs  [✓] use default from role                                                       ░
│Network Plan            [✓] use default from role                                                       ░
│Default Route via       [✓] use default from role                                                       ░
│DNS servers             [✓] use default from role                                                       ░
│Bond options            [✓] use default from role                                                       ░
│                                                                                                        ░
│                                                                                                        ░
│     < Save/Ctrl+U >                                                              < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Основные настройки:

  • Managed by Ironic - управление узлом через Ironic. Этот пункт подразумевает, что узел пустой и при деплое будет использован сервисом Ironic, для развёртывания операционной системе на этом узле. Если предполагается использовать уже развёрнутый узел, перейдите в Использование заранее настроенных узлов
  • Baremetal Node - имя физического узла, созданного заранее в меню Baremetal Nodes.
  • Role - роль узла в развёртывании.

По умолчанию настройки в разделе Settings используют настройки роли. Можно снять галку для специальных настроек отличных от настроек ролей

Использование заранее настроенных узлов

Снимите галку с Manage by Ironic

┌────────────────────────────────────────── Role/Node settings ──────────────────────────────────────────┐
│Manage by Ironic [ ] unset for manually deployed    WARNING: if you disable Ironic management, ensure:  │
│Display Name                                        - tripleo-admin user is created                     █
│Role             [                                 ]- tripleo-admin has undercloud ssh key in .ssh/autho░
│                                                    rized_keys                                          ░
│                                                    - tripleo-admin has sudo rights with no password    ░
│========================================================================================================░
│Settings                                            Network plan template preview                       ░
│========================================================================================================░
│Image              [✓] use default from role                                                            ░
│Networks and...    [ ] use default from role                                                            ░
│  external -->     [ ]                                                                                  ░
│  internal_api --> [ ]                                                                                  ░
│  storage -->      [ ]                                                                                  ░
│Fixed IP                                                                                                ░
│  external -->                                                                                          ░
│  internal_api -->                                                                                      ░
│  storage -->                                                                                           ░
│  ctlplane -->                                                                                          ░
│Network Plan       [✓] use default from role                                                            ░
│Default Route via  [✓] use default from role                                                            ░
│DNS servers        [✓] use default from role                                                            ░
│Bond options       [✓] use default from role                                                            ░
│                                                                                                        ░
│                                                                                                        ░
│     < Save/Ctrl+U >                                                              < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Справа появится подсказка для настройки узла. Необходимо

  • создать пользователя tripleo-admin
  • добавить ключ пользователя stack с узла развёртывания .ssh/id_rsa на добавляемый узел в файл .ssh/authorized_keys для пользователя tripleo-admin
  • добавить права sudo без пароля для пользователя tripleo-admin

Укажите имя узла в поле Display Name и выберите роль узла в поле Role.

Обязательно укажите используемые сети, и IP-адреса выделенные в каждой сети для этого узла.

Сетевые планы

Сетевые планы фиксируют число используемых интерфейсов, настройки адресов или DHCP для каждого из интерфейсов, VLAN’ы и на каких интерфейсах настраиваются VLAN’ы. Необходимо предварительно определить схему настройки сети для всех узлов одной роли, используя знания о количестве интерфейсов на каждом узле одной роли.

Схема сети определяется через условные обозначения интерфейсов как nic1, nic2 и т.д. Порядок интерфейсов для каждого из узлов задавался ранее в разделе Network interfaces order.

Если сетей для роли больше чем число используемых интерфейсов, зафиксированное для данной роли, то использование VLAN неизбежно. В этом случае для настройки VLAN в развёртываниях типа Ceph используются VLAN ядра Linux, в развёртываниях типа OpenStack используется OVS бридж.

После определения сетевого плана - выйдете из консоли и зайдите в папку шаблонов вашего развёртывания.

cd /usr/share/ansible/roles/tripleo_network_config/templates/

Исследуйте заранее спроектированные планы. Указанные в шаблонах планы являются настройками инструмента os-net-config. Для детального понимания используйте документацию инструмента

Выберите один из заданных сетевых планов или создайте новый в той же папке

Звтем вернитесь в dctui в настройки роли и выберете для каждой роли свой сетевой план.

Виртуальные IP-адреса

Виртуальные IP-адреса используются в OpenStack для балансировки нагрузки на узлы управления в облаке.

Перейдите во вкладку Virtual IPs и нажмите кнопку Add.

┌─────────────────────────────────────────── Modify VIP Data ────────────────────────────────────────────┐
│Network:    [external                                                                                  ]│
│DNS Name:                                                                                               █
│IP Address:                                                                                             ░
│                                                                                                        ░
│                                                                                                        ░
│                                                                                                        ░
│     < Save/Ctrl+U >                                                              < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Выберите сеть для виртуального адреса и опционально укажите DNS имя и IP-адрес.

  • DNS имя используется только если присутствует Designate.
  • IP-адрес является фиксированным для виртуального адреса.

Нажмите кнопку Save.

┌──────────────────────────────────────────── VIPs All Data ─────────────────────────────────────────────┐
│Network                           DNS Name                          IP Addr                             │
│external                                                                                                █
│                                                                                                        ░
│                                                                                                        ░
│     < Save/Ctrl+U >            < Add/Ctrl+A >          < Delete/Ctrl+D >         < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

При необходимости выберите сеть и нажмите Enter, чтобы изменить параметры.

Затем снова нажмите кнопку Save, чтобы сохранить настроенные изменения в файл. На этом этапе порты не создаются. Чтобы применить настройки к развёртыванию, перейдите во вкладку Deployment.

Если развёртывание типа:

  • Ceph, то создание виртуальных адресов не нужно.
  • OpenStack, то необходимы виртуальные адреса для сетей External, InternalApi и опционально для других сетей.

Пароли

Перейдите во вкладку Passwords и нажмите кнопку Generate.

┌─────────────────────────────────────── Cloud Services Passwords ───────────────────────────────────────┐
│AdminPassword                    yhvt7AYXeW5hr                                                          │
│AodhPassword                     Omc3DQWjXj9jTeH2R84mbf3eo                                              █
│AosAmqpPassword                  TXAJbl8rHw6HPkzQIvTvul823                                              ░
│AosDatabasePassword              ad4fEflzbmVPba2T3dmpWCbrt                                              ░
│AosPassword                      I6535DwYQGhSCosNPxBZO62BE                                              ░
│BarbicanPassword                 OR6AQJijcwreMBIPQNuTFLfp4                                              ░
│BarbicanSimpleCryptoKek          8JuOIpj7AVed3fAOxDTfy01pw4T0WGQPscBAIEyyPcQ=                           ░
│CeilometerMeteringSecret         oiSnBrtQVppFFSNNj0a4kSeFG                                              ░
│CeilometerPassword               NjUQnlqYjPvGp4fAqkUYsABYt                                              ░
│CephClientKey                    AQBJgR9nAAAAABAAo4n64FE70BlG0oh7sKJ1OQ==                               ░
│CephClusterFSID                  6c1874bd-8164-481c-8c6e-9ee08920def1                                   ░
│CephDashboardAdminPassword       OOZCxXagzh2lTufBuqEFZsrQ2                                              ░
│...                                                                                                     ░
│RedisPassword                    uziPg5Phcs8T7s2tcNPObnfy6                                              ░
│RpcPassword                      GMBKDa8CdNIN9YxloDdNaaU1Y                                              ░
│SkylineDBPassword                Z4kU2ryflNWyQjhV5ElyAhfYY                                              ░
│SkylineOSPassword                895O5xQ6wc3v8PdRRLNAmWThP                                              ░
│SkylineSecretKey                 ZXJOPbCYnlNBHAcJnG0Ssb8TFp4JCzC5                                       ░
│SnmpdReadonlyUserPassword        2HaDICOH2kPf6huUQYKllUBc                                               ░
│SwiftHashSuffix                  a7i0L0ZsrSxQfBHssONkMIuq9                                              ░
│SwiftPassword                    RRG84d5RQ5jV9k7KA4ilyRGZL                                              █
│     < Save/Ctrl+U >         < Generate/Ctrl+A >         < Clear/Ctrl+D >         < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Это окно имеет смысл только для развёртываний типа OpenStack. При развёртывании Ceph этот этап можно пропустить.

Здесь обратите внимание на поля:

  • AdminPassword - это пароль для пользователя admin в развёртываемом облаке
  • CephClientKey, CephClusterFSID - значения обязательные для связи сервисов OpenStack с Ceph.

Остальные пароли можно сгенерить случайным образом.

Настройка точек подключения для сервисов облака

Перейдите во вкладку Endpoint Data.

┌──────────────────────────────────────── Endpoint Data and Map ─────────────────────────────────────────┐
│  port: 8989                                        AdminNetwork                                        │
│Mysql:                                               < use >                                            █
│  Internal:                                          < remove >                                         ░
│    net_param: Mysql                                TLS                                                 ░
│  port: 3306                                         < use >                                            ░
│  protocol: mysql+pymysql                            < remove >                                         ░
│Neutron:                                            DNS                                                 ░
│  Admin:                                             < use >                                            ░
│    net_param: NeutronApi                            < remove >                                         ░
│  Internal:                                                                                             ░
│    net_param: NeutronApi                            AdminNetwork is option to use or remove Ctlplane ne░
│  Public:                                            twork from endpoints as Admin Endpoint             ░
│    host: CLOUDNAME                                                                                     ░
│    net_param: Public                                Endpoint Data is used to generate Endpoint Map for ░
│  port: 9696                                         cloud and not used while deployment.               ░
│Nova:                                                You can update and save data multiple times.       ░
│  Admin:                                             Eventually you should generate Endpoint Map before ░
│    net_param: NovaApi                               deployment.                                        ░
│    uri_suffixes:                                                                                       ░
│      '': /v2.1                                                                                         ░
│  Internal:                                                                                             ░
│    net_param: NovaApi                                                                                  ░
│    uri_suffixes:                                                                                       ░
│      '': /v2.1                                                                                         ░
│  Public:                                                                                               ░
│    host: CLOUDNAME                                                                                     ░
│    net_param: Public                                                                                   ░
│    uri_suffixes:                                                                                       ░
│      '': /v2.1                                                                                         ░
│     < Save/Ctrl+U >       < Generate Map/Ctrl+A >  < Delete Changes/Ctrl+D >     < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Здесь отображаются основные сети для различного типа подключения к сервисам.

Формат подключения:

ServiceName:
  Admin:
    net_param: ServiceNet
  Internal: 
    net_param: ServiceNet
  Public:
    host: CLOUDNAME
    net_param: Public

Где host: CLOUDNAME определяет подключение по доменному имени виртуального адреса.

Чтобы убрать или добавить какую либо настройку, используйте кнопки use и remove.

  • AdminNetwork - использовать ctlplane вместо internal_api для подключения к сервису
  • TLS - использовать SSL/TLS для подключения к сервису
  • DNS - использовать доменное имя для подключения к сервису

Настройки сервисов облака

Перейдите во вкладку Service settings.

┌─────────────────────────────────── Configure OpenStack Installation ───────────────────────────────────┐
│Enabled Functions and there settings                                                                    │
│Function                                Enabled                                                         █
│AosModules                              [✓]                                                             ░
│BareRole                                [ ]                                                             ░
│CephExternal                            [ ]                                                             ░
│CinderCephBackend                       [ ]                                                             ░
│ComputeInstanceha                       [ ]                                                             ░
│CustomDomain                            [ ]                                                             ░
│DnsServers                              [✓]                                                             ░
│EnableTls                               [ ]                                                             ░
│ExtraFirewallRules                      [ ]                                                             ░
│FederationOpenidc                       [ ]                                                             ░
│GlanceCephBackend                       [ ]                                                             ░
│GlanceCinderBackend                     [ ]                                                             ░
│GlanceFileBackend                       [✓]                                                             ░
│GlanceNfsBackend                        [ ]                                                             ░
│InjectTrustAnchorHiera                  [ ]                                                             ░
│Ironic                                  [ ]                                                             ░
│IronicInspector                         [ ]                                                             ░
│KeystoneLdapBackend                     [ ]                                                             ░
│KeystoneSecurityCompliance              [ ]                                                             ░
│Michman                                 [✓]                                                             ░
│NeutronDvr                              [✓]                                                             ░
│NtpServers                              [✓]                                                             ░
│SwiftExternal                           [ ]                                                             ░
│                             < Advanced/Ctrl+A >                                  < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Необходимо внимательно пройти по всем пунктам в этом окне, указать только используемые опции. Те опции, что используются, необходимо обязательно настроить внутри своими параметрами!

Все опции, кроме BareRole, имеют смысл только при развёртывании типа OpenStack!

  • AosModules - использовать модули AOS для развёртывания облака: CloudManager, RsServer, Journal, Monitor, OtpSender, Agent

  • BareRole - отметить, если используется роль Bare для развёртывания

  • CephExternal - обязателен при использовании Ceph, необходимо настроить все параметры внутри и подготовить Ceph;

    CephExternalMonHost заполняется в формате списка IP-адресов через запятую.

    Например, 10.10.10.1:3300,10.10.10.2:3300,10.10.10.3:3300,10.10.10.4:3300

  • CinderCephBackend - использовать Ceph как бекенд для сервиса Cinder

  • ComputeInstanceha - обязателен для развёртывания типа OpenStack с 3-мя и более контроллерами;

  • CustomDomain - назначить имя домена для API развёртываемого облака

  • DnsServers - изменить DNS сервера для развёртываемого облака. По умолчанию используется DNS из настроек узла развёртывания.

  • EnableTls - использовать SSL/TLS для публичных сервисов API.

  • ExtraFirewallRules - добавить дополнительные правила для файрвола.

  • FederationOpenidc - использовать OpenID Connect для сервиса Keystone

  • GlanceCephBackend - использовать Ceph сервер как бекенд для сервиса Glance

  • GlanceCinderBackend - использовать Cinder сервер как бекенд для сервиса Glance

  • GlanceFileBackend - использовать файловое хранилище как бекенд для сервиса Glance

  • GlanceNfsBackend - использовать Nfs сервер как бекенд для сервиса Glance

  • InjectTrustAnchorHiera - использовать самоподписанный сертификат для публичных сервисов API

  • Ironic, IronicInspector - добавить в развёртываемое облако сервис Ironic и IronicInspector

  • KeysoneLdapBackend - использовать готовый LDAP сервер для сервиса Keystone. Для этого вам также понадобится использовать несколько доменов для авторизации в сервисе Skyline.

  • KeystoneSecurityCompliance - использовать дополнительные настройки безопасности для сервиса Keystone

  • Michman - указывается для развёртывания инструмента Michman.

  • NeutronDvr - использовать распределённую виртуализацию для сервиса Neutron

  • NtpServers - изменить NTP сервера для развёртываемого облака. По умолчанию используется NTP из настроек узла развёртывания.

  • SwiftExternal - использовать Ceph Rgw как бекенд для сервиса Swift

Чтобы добавить или удалить опцию, выберите нужную, и нажмите Enter. Например,

┌─────────────────────────────────── Configure OpenStack Installation ───────────────────────────────────┐
│Enabled        [✓]                                                                                      │
│MichmanEnabled [✓]                                                                                      █
│                                                                                                        ░
│                                                                                                        ░
│     < Save/Ctrl+U >                                                              < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Первым пунктом всегда будет Enabled обозначающий добавление этой опции в развёртывание. Остальные пункты различаются между опциями и настраиваются внутри.

Добавьте или снимите галку Enabled и нажмите кнопку Save.

При определении бекендов сервисов необходимо учитывать, что для Glance и Nova может быть выбран только один. Для сервиса Cinder может использоваться несколько разных бекендов.

Добавление SSL/TLS для публичных сервисов API

  1. В настройках для развёртывания зайти во вкладку Endpoint Data.
  2. Под заголовком TLS нажать кнопку < use >.
  3. Далее нажать кнопку < Generate Map/Ctrl+A >.
  4. Далее зайти во вкладку Service Settings.
  5. Добавить свойство EnableTls
  6. Заполнить значения для сертификата и ключа.
  7. Если сертификат планируется самоподписанный, то добавить свойство InjectTrustAnchor и заполнить root сертификат.

Инструкция по добавлению SSL/TLS