Назад | Перейти на главную страницу

Повторяющиеся записи хоста в Foreman, когда виртуальная машина создается Foreman в OpenStack

Мне удалось подключить Foreman и OpenStack, чтобы я мог создавать виртуальные машины в OpenStack с помощью веб-интерфейса Foreman. Я использую cloud-init или, как его называет Форман, шаблон предоставления пользовательских данных, чтобы подготовить только что созданный экземпляр.

Для тестирования я использую этот сценарий облачной конфигурации:

#cloud-config: users: - name: danil groups: sudo shell: /bin/bash sudo: ['ALL=(ALL) NOPASSWD:ALL'] chpasswd: list: | danil:<hidden> root:<hidden> expire: False runcmd: - apt-get install -y puppet - sed -i -e 's/\[main\]/\[main\]\nserver=foreman.domain.com/' /etc/puppet/puppet.conf - puppet agent --test - puppet agent --enable - puppet agent --test

Я добавляю новый хост, и после запуска виртуальной машины я вижу его как хост с именем new-host.domain.com с именем модели OST2, именем, которое я использую для вычислительного ресурса OpenStack в Foreman. Внутри этого хоста я могу выполнять некоторые основные задачи, такие как выключить виртуальную машину, удалить ее и так далее.

Сценарий облачной конфигурации выполняет свою работу, то есть устанавливает марионетку и делает эту виртуальную машину управляемой марионеткой через интеллектуальный прокси-сервер Foreman. Как только марионетка завершает инициализацию хоста, я вижу повторяющийся хост с именем «новый хост». В случае этого повторяющегося хоста он имеет название модели "OpenStack Nova". Он управляется марионеткой, но там нет ни одной из задач OpenStack, доступных для new-host.domain.com.

Другими словами, у меня есть две записи для одного и того же хоста. Одна запись может использоваться для управления виртуальной машиной, а другая - для управления конфигурацией операционной системы с помощью марионетки.

Есть ли способ объединить эти две записи, чтобы избежать дублирования записей?

YAML, который соответствует вновь созданной виртуальной машине new-host.domain.com:

classes: {} parameters: puppetmaster: puppet.domain.com hostgroup: Provision from puppet.domain.com root_pw: <hidden> puppet_ca: puppet.domain.com foreman_env: production owner_name: Admin User owner_email: root@domain.com foreman_subnets: [] foreman_interfaces: - mac: ip: 172.21.82.102 type: Interface name: new-host.vccap.de attrs: {} virtual: false link: true identifier: '' managed: true primary: true provision: true subnet: environment: production

Спасибо за ответы!

С уважением,

Данил

Спасибо m0dlx за оперативный ответ на мой вопрос. Я также нашел полезный шаблон Provisioning, который был доступен в установке Foreman, который также решает эту проблему. Шаблон называется «кикстарт пользовательских данных» и предназначен для Fedora и CentOS, но с небольшими изменениями также подходит для ubuntu.