После установки и интеграции службы Automation Config также необходимо установить, запустить и зарегистрировать службу Salt Minion на всех узлах, управление которыми будет осуществляться с помощью Automation Config. Для развертывания службы Salt Minion на узлах можно использовать облачные шаблоны VMware Aria Automation или установить эту службу с использованием Secure Shell (SSH).
Система Salt и ее связь с Automation Config
Automation Config выполняется в системе Salt, которая представляет собой платформу удаленного выполнения на основе Python с открытым исходным кодом и используется для следующих задач.
- Управление конфигурацией
- Автоматизация
- Подготовка
- Оркестрация
Salt — это технология, лежащая в основе базовых функциональных возможностей Automation Config. Automation Config улучшает и расширяет Salt, предоставляя дополнительные возможности и функции, которые повышают удобство использования.
В Salt используется модель «контроллер-клиент», в рамках которой контроллер отправляет команды клиенту, а клиент эти команды выполняет. В экосистеме Salt роль контроллера играет сервер, на котором выполняется служба Salt Master. Он отправляет команды на один или несколько служебных серверов Salt, являющихся узлами, на которых выполняется служба Salt Minion и которые назначены данному главному серверу.
Систему Salt также можно представить в виде модели «издатель-подписчик». Главный сервер публикует задания, которые требуется выполнить, а служебные серверы подписаны на такие задания. Когда определенное задание применяется к такому служебному серверу, он выполняет это задание. Когда служебный сервер завершает выполнение задания, он отправляет возвращаемые данные задания обратно на главный сервер.
Служебные серверы — это узлы, на которых выполняется служба salt-minion. Данная служба прослушивает команды с главного сервера Salt и выполняет запрашиваемые задачи. Служебные серверы можно развертывать из облачных шаблонов VMware Aria Automation.
Прежде чем начать использование Automation Config для управления конфигурацией, необходимо установить службу Salt Minion на всех узлах, которыми требуется управлять. Кроме того, необходимо зарегистрировать служебные серверы путем отправки и принятия их ключей в Automation Config.
Перед началом работы
- Установите и настройте систему Automation Config, а затем интегрируйте ее с VMware Aria Automation.
- Узлы, которыми управляет Automation Config, должны иметь доступ к главному узлу Salt и находиться в той же сети, что и точка интеграции Automation Config, а также сам этот главный узел.
- Компьютеры vSphere, развернутые в частной сети, должны быть способны устанавливать соединение с интеграцией Automation Config и главным узлом Salt.
Установка службы Salt Minion через SSH
Процесс установки службы Salt Minion с помощью SSH зависит от операционной системы, используемой на этих узлах.
- Дополнительные сведения об установке службы Salt Minion в RedHat Linux или CentOS см. в разделе Обязательные зависимости Automation Config.
- Сведения для других операционных систем см. на сайте http://repo.saltstack.com/.
- Чтобы настроить каждый служебный сервер для связи с главным сервером, создайте файл
master.conf
в каталоге/etc/salt/minion.d
. В этом файле укажите IP-адрес главного сервера. Например,master: 192.0.2.1
. - Запустите службу Minion.
sudo systemctl enable salt-minion
sudo systemctl start salt-minion
- Повторите предыдущие шаги для всех оставшихся узлов.
Настроив эти файлы Minion так, чтобы они указывали на главный сервер Salt, примите ключи служебных серверов в службе Automation Config в рабочей области «Ключи служебных серверов».
Установка службы Salt Minion с помощью облачных шаблонов VMware Aria Automation
Чтобы развернуть службу Salt Minion с использованием облачных шаблонов, необходимо иметь доступ к cloud-init (Linux) или Cloudbase-init (Windows), а также хорошо знать их особенности. Для добавления служебных серверов Salt к главному серверу Salt, настроенному для интеграции Automation Config, виртуальная машина в облачном шаблоне должна поддерживать cloud-init (Linux) или Cloudbase-init (Windows).
Процедура развертывания службы Salt Minion с помощью облачных шаблонов описана в следующих разделах.
Добавление служебных серверов к главному серверу Salt, настроенному для VMware Aria Automation
При установке службы Automation Config задается IP-адрес главного сервера Salt. Этот IP-адрес используется в качестве свойства masterAddress при развертывании служебных серверов из облачного шаблона VMware Aria Automation.
Установка и развертывание служебных серверов выполняются с помощью сценариев cloud-init или Cloudbase-init в облачном шаблоне или развертывании VMware Aria Automation. Кроме того, можно использовать сопоставление образов, которое представляет сценарий настройки облака, использующий любой из этих форматов. Чтобы было можно добавлять служебные серверы Salt для главного сервера Salt,связанного с интеграцией Automation Config в VMware Aria Automation, целевой компьютер должен поддерживать cloud-init (Linux) или Cloudbase-init (Windows). Сценарий настройки облачной среды VMware Aria Automation поддерживает оба формата.
Настройка ресурса компьютера выполняется в облачном шаблоне со значениями minionId и cloudConfig. Затем работа продолжается с группой свойств SaltStackConfiguration. Группа свойств SaltStackConfiguration создается во время установки и настройки службы Automation Config в VMware Aria Suite Lifecycle. Она содержит свойства masterAddress и masterFingerprint.
Значение minionId должно совпадать со значением, указанным для параметра /salt/minion_id
компьютера в разделе cloudConfig
кода облачного шаблона.
- Образ VMware Aria Automation, вызываемый из кода облачного шаблона
- Сценарий настройки облачной среды, вызываемый из кода облачного шаблона
- Содержимое сценария настройки облачной среды, которое добавляется непосредственно в код облачного шаблона
Примечание. При развертывании облачного шаблона, содержащего служебные серверы Salt, если развертывание не отображается в Automation Assembler, его можно отобразить с помощью службы Automation Service Broker.
Пример — развертывание на основе Linux и cloud-init
resources: Salt-Minion: type: Cloud.Machine properties: image: Ubuntu-18 flavor: medium constraints: - tag: 'env:vsphere' cloudConfig: | #cloud-config hostname: ${input.saltminionhostname} users: - name: ${input.user} sudo: ['ALL=(ALL) NOPASSWD:ALL'] groups: sudo shell: /bin/bash runcmd: - PASS=${input.password} - USER=${input.user} - echo $USER:$PASS | /usr/sbin/chpasswd - sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config - service ssh reload - curl -L https://bootstrap.saltstack.com -o install_salt.sh - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress}
Пример — развертывание на основе Windows и Cloudbase-init
formatVersion: 1 inputs: {} resources: WindowsVM-Minion: type: Cloud.vSphere.Machine properties: image: win2016 flavor: medium customizationSpec: Windows minionId: '${resource.WindowsVM-Minion.resourceName}' networks: - network: '${resource.wpnet.id}' name: '${wpnet.name}' assignPublicIpAddress: true cloudConfig: | #ps1_sysnative [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -OutFile C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe -Uri https://repo.saltstack.com/windows/Salt-Minion-3002.2-Py3-AMD64-Setup.exe Start-Process -Wait -FilePath "C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe" -ArgumentList "/S" -PassThru ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master: salt", "master: ${propgroup.SaltStackConfiguration.masterAddress}") | Set-Content -Path C:\salt\conf\minion ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master_finger: ''", "master_finger: '${propgroup.SaltStackConfiguration.masterFingerPrint}'") | Set-Content -Path C:\salt\conf\minion Set-Content -Path C:\salt\conf\minion_id -Value '${resource.WindowsVM-Minion.resourceName}' C:\salt\salt-call.bat service.restart salt-minion wpnet: type: Cloud.Network properties: name: wpnet networkType: existing
Настройка команд PowerShell
Команды PowerShell настраиваются в разделе cloudConfig
облачных шаблонов.
- Установите службу Salt Minion на ВМ Windows.
- Обновите значение имени главного сервера Salt в конфигурации служебного сервера.
- Обновите значение отпечатка пальца главного сервера Salt в конфигурации служебного сервера.
- Установите значение
minion_id
для имени ресурса ВМ, которое будет использоваться для принятия служебного сервера главным сервером Salt. - Перезапустите служебный сервер.
Дополнительные сведения о развертывании служебных серверов Salt
Описание дополнительных методов использования интегрированной службы Automation Config для развертывания служебных серверов Salt из облачного шаблона VMware Aria Automation см. в разделе Assembler и секретные элементы ABX Secret (и как их использовать для установки агентов служебных серверов Automation Config).
Дополнительные общие сведения об определении и развертывании шаблонов Automation Assembler (особенно для тех, кто хорошо знаком с Config, но недавно работает с Aria Automation) см. в разделе Проектирование развертываний Assembler.