Cloud Assembly поддерживает интеграцию с Puppet Enterprise, Ansible Open Source и Ansible Tower, позволяя управлять конфигурациями развертываний и дрейфом конфигураций.
Интеграция Puppet
Для интеграции управления конфигурацией на основе Puppet необходимо установить допустимый экземпляр Puppet Enterprise в общедоступном или частном облаке с рабочей нагрузкой vSphere. Между этой внешней системой и экземпляром Cloud Assembly необходимо установить соединение. После этого можно предоставить Cloud Assemblyдоступ к управлению конфигурацией Puppet путем его добавления в соответствующие схемы элементов.
Поставщик Puppet для службы схем элементов Cloud Assembly устанавливает, настраивает и запускает агент Puppet на развернутом вычислительном ресурсе. Поставщик Puppet поддерживает подключения по протоколу SSH и WinRM со следующими предварительными условиями.
- Подключения по SSH:
- В качестве пользователя должен быть указан либо привилегированный пользователь, либо пользователь с разрешениями sudo для выполнения команд в режиме NOPASSWD.
- Деактивируйте requiretty для заданного пользователя.
- В вычислительном ресурсе развертывания должна быть доступна служба cURL.
- Подключения по WinRM:
- в вычислительном ресурсе развертывания должен быть доступен инструмент PowerShell 2.0.
- Настройте шаблон Windows, как описано в документации по vRealize Orchestrator.
Администратор DevOps отвечает за управление подключениями к Puppet Master и применение ролей Puppet или правил настройки к определенным развертываниям. После развертывания виртуальные машины, в которых настроена поддержка управления конфигурацией, регистрируются с помощью назначенного сервера Puppet Master.
При развертывании виртуальных машин пользователи могут добавлять или удалять Puppet Master как внешнюю систему или обновлять проекты, назначенные серверу Puppet Master. Наконец, соответствующие пользователи могут отменять регистрацию развернутых виртуальных машин в Puppet Master после вывода их из эксплуатации.
Интеграция Ansible Open Source
При настройке интеграции Ansible установите Ansible Open Source в соответствии с инструкциями по установке Ansible. Дополнительные сведения об установке см. в документации по Ansible.
[defaults] host_key_checking = False localhost_warning = False [paramiko_connection] record_host_keys = False [ssh_connection] #ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s ssh_args = -o UserKnownHostsFile=/dev/null
Для предотвращения ошибок при проверке ключей узла задайте для параметров host_key_checking
и record_host_keys
значение False, а также добавьте дополнительный параметр UserKnownHostsFile=/dev/null
, заданный в ssh_args
. Кроме того, если изначально иерархия пуста, Ansible выведет предупреждение, что список узлов пуст. Это приведет к сбою проверки синтаксиса сценария.
Хранилище Ansible Vault позволяет хранить конфиденциальные данные, например пароли или ключи, в зашифрованных файлах, а не в виде обычных текстовых файлов. Хранилище шифруется с помощью пароля. В системе Cloud Assembly Ansible использует хранилище для шифрования таких данных, как пароли SSH для компьютеров узлов. Предполагается, что задан путь к паролю хранилища.
Файл ansible.cfg можно изменить, указав расположение файла с паролем в следующем формате.
vault_password_file = /path to/file.txt
Кроме того, можно задать переменную среды ANSIBLE_VAULT_PASSWORD_FILE
, чтобы Ansible автоматически выполняла поиск пароля. Например, ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
.
Cloud Assembly управляет файлом иерархии Ansible, поэтому необходимо убедиться, что пользователь Cloud Assembly имеет доступ rwx к файлу иерархии.
cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
Defaults:myuser !requiretty
myuser ALL=(ALL) NOPASSWD: ALL
Если при настройке интеграции Ansible возникают ошибки или иные проблемы, используйте файл log.txt в 'cat~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/' на управляющем компьютере Ansible.
Интеграция Ansible Tower
- Red Hat Enterprise Linux 8.0 или более поздней версии, 64-разрядная (x86), поддерживает только Ansible Tower 3.5 или более поздней версии.
- Red Hat Enterprise Linux 7.4 или более поздней версии, 64-разрядная (x86).
- CentOS 7.4 или более поздней версии, 64-разрядная (x86).
Ниже приведен пример файла иерархии, который создается при установке Ansible Tower. Возможно, для использования интеграции Cloud Assembly его потребуется изменить.
[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# pwd /root/ansible-tower-install/ansible-tower-setup-bundle-3.5.2-1.el8 [root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# cat inventory [tower] localhost ansible_connection=local [database] [all:vars] admin_password='VMware1!' pg_host='' pg_port='' pg_database='awx' pg_username='awx' pg_password='VMware1!' rabbitmq_port=5672 rabbitmq_vhost=tower rabbitmq_username=tower rabbitmq_password='VMware1!' rabbitmq_cookie=cookiemonster # Needs to be true for fqdns and ip addresses rabbitmq_use_long_name=false # Isolated Tower nodes automatically generate an RSA key for authentication; # To deactivate this behavior, set this value to false # isolated_key_generation=true