Подготовка и установка одного развёртывания
Запустите DeckCrew TUI с узла развёртывания.
Меню развёртывания
В главном меню в разделе Deployments отображается список созданных экземпляров развёртываний.
При чистом старте - таблица будет пустая. Нажмите кнопку Add, чтобы добавить новое развёртывание.
В появившемся окне выберите один из заранее заданных типов развёртывания: OpenStack или Ceph.
Затем введите имя развёртывания. Имя будет использоваться как часть hostname физических узлов.
На данном этапе при создании развёртывания создаются только шаблоны для настройки развёртываемого облака. Никаких изменений с физическими машинами не происходит.
На главном экране dctui в секции Deployments появятся созданные вами развёртывания для настройки.
┌───────────────────────────────────────── [Moncloud] DeckCrew ──────────────────────────────────────────┐
│Common Description │
│Baremetal nodes Manage baremetal nodes IPMI login/password/address p█
│Network interfaces order arameters, PXE-ports and roles ░
│Server root disk ░
│Baremetal ports ░
│Networks settings ░
│Network plans ░
│──────────────────────────────────────────────────── < Refresh/Ctrl+R > ░
│Deployments Manage selected deployment: configure services, netw░
│test ork plans and start deployment ░
│ ░
│ ░
│ < Add/Ctrl+A > < Delete/Ctrl+D > < Quit/Ctrl+X > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Выберите нужное вам развёртывание и нажмите Enter. Так вы перейдёте в Меню развёртывания, в котором все настройки влияют только на выбранное развёртывание.
┌─────────────────────────────────── Configure OpenStack Installation ───────────────────────────────────┐
│Menu Description │
│Network Plans Manage private network plans for s █
│Roles/Nodes and Networks ervers ░
│Virtual IPs ░
│Passwords ░
│Endpoint Data ░
│Service settings ░
│Deployment ░
│Prepare cloud ░
│Cloud Admin Actions ░
│ ░
│ ░
│ < Cancel/Ctrl+C > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Сетевые планы
Вкладка Network Plans позволяет управлять приватными сетевыми планами и дублирует вкладку Network Plans в разделе Настройка сетей.
Роли/Узлы и Сети ролей
Перейдите во вкладку 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 > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Сверху отображается сводная таблица настроек для каждой из ролей, участвующих в развёртывании.
Ниже отображается сводная таблица заведённых в развёртывание узлов. Сначала она пустая.
Настройка роли
Выберите в таблице роль и нажмите 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 ──────────────────────────────────────────┐
│Baremetal Node [ ]====================================================│
│Role [ ]Network plan template preview █
│ ====================================================░
│ ░
│==================================================== ░
│Settings ░
│==================================================== ░
│Image [✓] use default from role ░
│Networks and... [✓] 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 > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Основные настройки:
Baremetal Node - имя физического узла, созданного заранее в меню Baremetal Nodes.
Role - роль узла в развёртывании.
По умолчанию настройки в разделе Settings используют настройки роли. Можно снять галку для специальных настроек отличных от настроек ролей
Виртуальные IP-адреса
Примечание: Этот раздел можно пропустить, если развёртывание типа Ceph или не нужно настраивать SSL или фиксировать виртуальный 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. Вы увидите ранее сгенерированные пароли для вашего развёртывания.
┌─────────────────────────────────────── 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 > < Clear/Ctrl+D > < Cancel/Ctrl+C > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Можно поменять любой из паролей, перейдя в поле пароля и нажав кнопку Clear.
Примечание
Пароли избыточны и генерятся для всех возможных сервисов. Состав сервисов зависит от типа развёртывания, ролей и дополнительных настроек пользователя.
Настройка точек подключения для сервисов облака
Примечание
Этот раздел можно пропустить, по умолчанию используются подключения по доменным именам и без SSL/TLS.
Перейдите во вкладку 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 █
│Amano [ ] ░
│AosSharedStorage [ ] ░
│Barbican [ ] ░
│BareRole [ ] ░
│Bonding [ ] ░
│CephExternal [✓] ░
│CinderCephBackend [✓] ░
│CinderIscsiBackend [ ] ░
│CinderSanlockBackend [ ] ░
│CustomDomain [✓] ░
│Designate [ ] ░
│DnsServers [✓] ░
│ExtraFirewallRules [ ] ░
│FederationOpenidc [ ] ░
│GlanceCephBackend [✓] ░
│GlanceCinderBackend [ ] ░
│GlanceFileBackend [ ] ░
│GlanceNfsBackend [ ] ░
│Ironic [ ] ░
│IronicInspector [ ] ░
│KeystoneLdapBackend [ ] ░
│KeystoneSecurityCompliance [ ] ░
│NetboxScanner [ ] ░
│NovaAggregates [ ] ░
│NovaCephBackend [ ] ░
│NovaHwMachineType [ ] ░
│NovaNfsBackend [ ] ░
│NtpServers [✓] ░
│Octavia [ ] ░
│SshFirewallAllowAll [ ] ░
│SwiftExternal [ ] ░
│Tls [ ] ░
│TlsCustomCa [ ] ░
│ ░
│ < Advanced/Ctrl+A > < Cancel/Ctrl+C > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Обязательно настройте NtpServers и DnsServers.
Дополнительные настройки:
Amano - использовать инструмент Amano вместо OVN для настройки сетей в облаке.
AosSharedStorage - использовать общий сторадж для модулей AOS CloudManager и Agent: это помогает создать дополнительную проверку доступности узлов вычисления при эвакуации.
BareRole - отметить, если используется роль Bare для развёртывания
CephExternal - подключить внешний 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.
CinderIscsiBackend - добавить Iscsi как бэкенд для сервиса Cinder.
CinderLVMPhysicalVolumes- указать физические тома для LVM, необходим, еслиCinderLVMLoopDeviceSizeравен нулю.CinderLVMLoopDeviceSize- указать размер loop устройства для LVM, необходим, еслиCinderLVMPhysicalVolumesне указан.
CinderSanlockBackend - добавить Sanlock как бэкенд для сервиса Cinder
CustomDomain - назначить имя домена для API развёртываемого облака
Designate - добавить сервис Designate для управления DNS записями
NeutronDnsDomain- указать домен для сервиса NeutronDesignatePoolZoneDomain- указать домен для пула зон Designate
DnsServers - изменить DNS сервера для развёртываемого облака. По умолчанию используется DNS из настроек узла развёртывания.
ExtraFirewallRules - добавить дополнительные правила для файрвола.
FederationOpenidc - использовать OpenID Connect для сервиса Keystone
GlanceCephBackend - использовать Ceph сервер как бэкенд для сервиса Glance
GlanceCinderBackend - использовать Cinder сервер как бэкенд для сервиса Glance
GlanceFileBackend - использовать файловое хранилище как бэкенд для сервиса Glance
GlanceNfsBackend - использовать Nfs сервер как бэкенд для сервиса Glance
Ironic, IronicInspector - добавить в развёртываемое облако сервис Ironic и IronicInspector
KeysoneLdapBackend - использовать готовый LDAP сервер для сервиса Keystone. Для этого вам также понадобится использовать несколько доменов для авторизации в сервисе Skyline.
KeystoneSecurityCompliance - использовать дополнительные настройки безопасности для сервиса Keystone
NetboxScanner - добавить сервис активного сбора метрик для физических узлов облака.
NtpServers - изменить NTP сервера для развёртываемого облака. По умолчанию используется NTP из настроек узла развёртывания.
Octavia - добавить сервис Octavia для балансировки нагрузки
OctaviaAmphoraImageFilename- указать путь к образу для создания виртуальных устройств. Можно использовать образOctaviaGenerateCerts- автоматически сгенерировать сертификаты для сервиса Octavia.OctaviaCaKey,OctaviaCaCert- указать пути к ключу и сертификату для сервиса Octavia. Опционально, еслиOctaviaGenerateCertsравен true.Octavia[Network|Subnet]*параметры используются для создания сетиlb-mgmt-netи подсети для сервиса Octavia.
StandaloneMonitoring - перенести мониторинг с узлов управления на отдельный узел
SwiftExternal - использовать Ceph Rgw как бэкенд для сервиса Swift
Tls - использовать SSL/TLS для публичных сервисов API с указанием вашего сертификата
SSLCertificate- содержимое сертификатаSSLKey- содержимое ключа
TlsCustomCa - использовать самоподписанный сертификат для публичных сервисов API
CAMap- впишите сертификат CA в формате yaml со следующим содержимым:ca.crt: content: | <YOU CA HERE>
Tram - добавить сервис Tram для сбора телеметрии трафика виртуальных машин.
Чтобы добавить или удалить опцию, выберите нужную и нажмите Enter. Например,
┌───────────────────────────────────────── Configure OpenStack Installation ─────────────────────────────┐
│Enabled [✓] │
│AmanoDisableVeth [ ] █
│AmanoMigrateFromOVN [ ] ░
│AmanoUseDdosTimeoutForArp [✓] ░
│NovaForceConfigDrive [✓] ░
│NeutronMechanismDrivers amano ░
│NeutronServicePlugins router,qos ░
│NeutronNetworkType - geneve ░
│ - vxlan ░
│ - vlan ░
│ - geneve_ipsec ░
│ - gre ░
│ - gre_ipsec ░
│ ░
│NeutronTypeDrivers - geneve ░
│ - vxlan ░
│ - vlan ░
│ - flat ░
│ - geneve_ipsec ░
│ - gre ░
│ - gre_ipsec ░
│ ░
│ < Save/Ctrl+U > < Cancel/Ctrl+C > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Первым пунктом всегда будет Enabled обозначающий добавление этой опции в развёртывание. Остальные пункты различаются между опциями и настраиваются внутри.
Добавьте или снимите галку Enabled и нажмите кнопку Save.
Запуск развёртывания
Перейдите во вкладку Deployment.
┌────────────────────────────────────────── Deployment process ──────────────────────────────────────────┐
│ < Refresh/Ctrl+R > │
│ █
│Stack status ░
│ last_action: Validate Templates ░
│ status: DEPLOY_SUCCESS ░
│ ░
│Debug mode ░
│ [ ] No launch. Generate deployment script only ░
│ ░
│Pick deployment action ░
│ (•) Prepare Networks ░
│ ( ) Prepare Virtual IPs ░
│ ( ) Provision Nodes ░
│ ( ) Update Known Hosts ░
│ ( ) Validate Templates ░
│ ( ) Deploy Services ░
│ ░
│ [ ] Activate danger section ░
│ (•) Update Partition ░
│ ( ) Delete Nodes ░
│ ( ) Delete Deployment ░
│ ░
│Set extra settings for deployment action ░
│ ░
│--------------------------------------------------------------------------------------------------------░
│Logs ░
│ ░
│ < Start/Ctrl+A > < Stop/Ctrl+D > < Cancel/Ctrl+C > │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Сверху отображается статус развёртывания.
Развёртывание состоит из нескольких стадий:
Prepare Networks, или Подготовка сети - на этом этапе создаются сети, настроенные ранее.
Prepare Virtual IPs, или Подготовка виртуальных IP-адресов - на этом этапе создаются виртуальные IP-адреса, настроенные ранее.
Provision Nodes, или Подготовка узлов - на этом этапе при помощи Ironic разворачиваются операционные сети на узлы с управлением через BMC и настраиваются сети для всех узлов.
Update Known Hosts, или Обновление известных хостов - на этом этапе обновляется файл .ssh/known_hosts на узле развёртывания.
Validate Templates, или Проверка шаблонов - на этом этапе проверяются настройки шаблонов (этот этап может быть опущен).
Deploy Services, или Развёртывание сервисов - на этом этапе разворачиваются сервисы OpenStack или Ceph на узлах.
Запустите по порядку все Deployment actions на экране по порядку, дождавшись окончания предыдущего. В случае любых проблем и ошибок на каждом этапе необходимо исправить ошибки и запустить развёртывание заново.
Также можно использовать Debug режим, при котором команда для запуска развёртывания не выполняется, а сохраняется в /tmp/dc-deploy-name.
После создания сервера статус физического узла меняется с available на active в списке физических серверов.