Подготовка одного развёртывания¶
В этом разделе описана подготовка одного развёртывания с нуля. Обязательно пройдите подготовку к развёртываниям в разделе Подготовка к развёртываниям.
При деплое 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:3300CinderCephBackend - использовать 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¶
- В настройках для развёртывания зайти во вкладку
Endpoint Data. - Под заголовком
TLSнажать кнопку< use >. - Далее нажать кнопку
< Generate Map/Ctrl+A >. - Далее зайти во вкладку
Service Settings. - Добавить свойство
EnableTls - Заполнить значения для сертификата и ключа.
- Если сертификат планируется самоподписанный, то добавить свойство
InjectTrustAnchorи заполнить root сертификат.