Служба Cloud Assembly поддерживает интеграцию с Puppet Enterprise — программным обеспечением для управления конфигурациями.
Когда инструмент Puppet Enterprise добавляется в Cloud Assembly в качестве внешней системы, по умолчанию его возможности доступны для всех проектов. Можно ограничить доступ, сделав систему Puppet доступной только определенным проектам.
Чтобы добавить интеграцию Puppet Enterprise, потребуется имя главного сервера Puppet, а также его имя узла или IP-адрес.
Журналы Puppet можно найти в следующем расположении в том случае, если необходимо проверить их на наличие ошибок или определенной информации.
Описание | Расположение журнала |
---|---|
Журнал для создания и установки связанных событий | Журналы находятся на развернутом компьютере по адресу `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Полные журналы см. в файле log.txt. Дополнительные сведения о журналах агента Puppet см. в разделе https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging |
Журнал для задач Puppet, связанных с удалением и запуском | Журналы находятся в Puppet Enterprise по адресу `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Полные журналы см. в файле log.txt. |
Процедура
Результаты
Дальнейшие действия
Добавьте компоненты Puppet в нужные облачные шаблоны.
- В разделе «Облачные шаблоны» в Cloud Assembly выберите Puppet в разделе «Управление содержимым» в меню облачного шаблона и перетащите компонент Puppet на холст.
- Введите свойства Puppet на панели справа.
Свойство Описание Сервер Введите имя основного компьютера Puppet, используемого с этим облачным шаблоном. Среда Выберите среду для основного компьютера Puppet. Роль Выберите роль Puppet, которая будет использоваться с этим облачным шаблоном. Интервал между запусками агента Частота, с которой агент Puppet выполняет опрос основного компьютера Puppet для получения сведений о конфигурации, применяемых к развернутым виртуальным машинам, связанным с этим облачным шаблоном. - Перейдите на вкладку Код на панели справа, чтобы просмотреть код YAML для свойств конфигурации Puppet.
При добавлении компонента Puppet в облачный шаблон в файл YAML можно добавить свойство installMaster
, чтобы оно указывало на компонент Puppet Install Master, также называемый Compile Master. Значением этого свойства может быть IP-адрес или имя узла компонента Puppet Compile Master. Это свойство позволяет получить доступ к расширенным возможностям для развернутых виртуальных машин Puppet, а также обеспечивает поддержку дополнительных действий по регулярному обслуживанию.
Puppet_Agent: type: Cloud.Puppet properties: account: PEIntegrationAccount environment: production role: 'role::linux_webserver' host: '${CentOS-Puppet.*}' username: root password: password123! installMaster: my-pe-compile-master.example.com agentConfiguration: certName: '${CentOS-Puppet.address}' osType: linux count: 1
В некоторых случаях vRealize Automation по умолчанию передает определенные сведения о компьютерах на виртуальные машины Puppet в виде фактов. Настраиваемые факты не поддерживаются для компьютеров с Windows. На компьютерах с Linux некоторая информация передается по умолчанию, а дополнительную информацию пользователи могут передавать с помощью настраиваемых свойств.
На данные, передаваемые на компьютеры Puppet, работающие под управлением Linux, накладываются определенные ограничения. На виртуальные машины Puppet передаются настраиваемые свойства ресурсов узла и агента Puppet. Настраиваемые свойства сетевых ресурсов не передаются на виртуальную машину. Передаваемые элементы включают в себя простые, логические свойства, а также настраиваемые именованные и сложные типы, например вложенные карты с массивами.
В следующем примере показано, как различные настраиваемые ресурсы могут вызываться для ресурсов узлов.
resources: Puppet-Host: type: Cloud.AWS.EC2.Instance properties: customer_specified_property_on_ec2_resource: "property" customer_specified_property_on_network_resource_that_should_also_be_a_fact_and_is_boolean: true CustomerNameStuff: "zone A" try_map: key: value keytwo: value nested_array: - one - two - true try_array: - one - two -three: inner_key: value
Если команда очистки Puppet (purge) приводит к ошибкам, то в большинстве случаев служба vRealize Automation будет игнорировать такие ошибки для узлов и выполнять операцию удаления узла. Даже если для определенного узла сертификат не будет найден, vRealize Automation продолжит выполнять операцию удаления. Если по какой-либо причине vRealize Automation не сможет продолжить операцию удаления узла, можно нажать кнопку «Удалить» в меню «Действия » на странице «Развертывания», чтобы открыть диалоговое окно, в котором будет можно продолжить операцию удаления узла. Аналогичный рабочий процесс выполняется при удалении интеграции Puppet из облачного шаблона и последующем применении шаблона к развертыванию. Этот рабочий процесс запускает операцию очистки узла, которая выполняется, как описано выше.
Для интеграции с Puppet Enterprise требуется общедоступный IP-адрес. Если для компьютера Puppet Enterprise не настроен общедоступный IP-адрес, будет использоваться IP-адрес первого сетевого адаптера.
Если сетевой адаптер компьютера, подготовленного Puppet и работающего на компьютере vSphere, имеет несколько IP-адресов, для указания IP-адреса, который нужно использовать для подключений, можно применить свойство YAML primaryAddress
в облачных шаблонах. Если свойство primaryAddress
назначено сетевому адаптеру, Puppet будет использовать IP-адрес этого сетевого адаптера. В качестве основного можно назначить только один сетевой адаптер. Пример использования свойства primaryAddress
см. в следующем фрагменте кода YAML.
BaseVM: type: Cloud.vSphere.Machine properties: image: photon count: 2 customizationSpec: Linux cpuCount: 1 totalMemoryMB: 1024 networks: - network: '${resource.dev.id}' deviceIndex: 0 primaryAddress: true assignment: static - network: '${resource.prod.id}' deviceIndex: 1 assignment: static
Если свойство primaryAddress
не задано ни для одного сетевого адаптера виртуальной машины, логика облачных шаблонов при выборе IP-адресов по умолчанию будет соответствовать текущему поведению.
- У пользователя должны быть разрешения на создание каталога фактов Puppet и файла.
sudo mkdir -p /etc/puppetlabs/facter/facts.d sudo tee /etc/puppetlabs/facter/facts.d/puppet_cloudassembly_facts.json
- У пользователя должны быть разрешения на запуск Puppet:
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=stopped sudo /opt/puppetlabs/bin/puppet agent --test --color=false --detailed-exitcode
- У пользователя должны быть разрешения на удаление файлов запроса подписи сертификата, включая файлы csr_attributes.yaml и CSR pem:
sudo rm /etc/puppetlabs/puppet/csr_attributes.yaml sudo rm -f /etc/puppetlabs/puppet/ssl/certificate_requests/*