configdrive
ansible-role-configdrive
На данный момент этот репозиторий не поддерживается активно. Я рекомендую использовать форк, который поддерживает Дэвид Блейзонно: https://gitlab.com/davidblaisonneau-orange/ansible-role-configdrive
Роль Ansible для создания конфигурационных дисков для OpenStack Ironic. Она создает данные конфигурационных дисков OpenStack для узлов и может настраивать сложные сетевые конфигурации, такие как агрегация, VLAN и мосты на дистрибутивах на базе Debian и RedHat. Обратите внимание, что образы должны поддерживать эти функции (ядровые модули, пакеты и т. д.). Этот инструмент просто создает файлы конфигурации, которые будут внедрены в хост во время загрузки с помощью Cloud-Init.
Этот плейбук предназначен для выполнения перед развертыванием
узлов через Ironic. Он создает базовый конфигурационный диск,
содержащий сетевую конфигурацию, SSH-ключ, позволяющий
пользователю войти в систему, и другие файлы, такие как /etc/hosts
или /etc/resolv.conf
. Также он может включать файл user_data
https://help.ubuntu.com/community/CloudInit
Ansible 2.0, работает с Ubuntu Trusty, Xenial и CentOS 7
Требования
Он не устанавливает пакеты на целевом хосте, он просто создает
папки и файлы, необходимые для создания тома конфигурационного диска. Так что
имейте в виду, что, скорее всего, вам нужно будет установить
genisoimage
, base64
и gzip
.
Настройка
Параметры роли
# Вам нужно переопределить эти переменные роли!
# Они будут генерировать сетевую конфигурацию
# на основе семейства!
configdrive_os_family: "Debian"
configdrive_uuid: "uuid-test-01"
configdrive_fqdn: "test.example.com"
configdrive_name: "test"
configdrive_ssh_public_key:
configdrive_availability_zone: ""
configdrive_network_info: True
configdrive_config_dir: "/var/lib/ironic/images/"
configdrive_volume_path: "/var/lib/ironic/images/"
# Дополнительные метаданные
configdrive_meta: {}
# Путь к файлу SSH-ключа
configdrive_ssh_public_key_path:
# Путь к файлу cloud-config
configdrive_config_user_data_path:
# Автоматически назначается с uuid
#configdrive_instance_dir:
# Удалить папку экземпляра после создания
configdrive_config_dir_delete: False
# Заполнить /etc/resolv.conf
#configdrive_resolv:
# domain: "example.com"
# search: "hola.example.com"
# dns: ['8.8.8.8']
# Заполнить /etc/hosts
#configdrive_hosts:
# - ['127.0.1.1', 'host1.domain.com']
# - ['127.0.1.2', 'host3.domain.com']
# Список устройств
#configdrive_network_device_list:
# - device: "eth1"
# bootproto: "dhcp"
# - device: "eth2"
# bootproto: "dhcp"
# type: "phy"
# - device: "eth0.500"
# type: "vlan"
# address: "10.1.1.10"
# netmask: "255.255.255.0"
# gateway: "10.1.1.1"
# nameservers:
# - 8.8.8.8
# - 9.9.9.9
# domain: "hola.com"
# backend: ["eth0"]
Использование
Посмотрите на файл site.yml
и введите vagrant up
, перейдите в папку
/tmp/configdrive
внутри виртуальной машины vagrant, и вы увидите сжатый
ISO-образ и всю структуру папок/файлов, включенную в него.
Автор и информация о лицензии
Авторские права 2019 Жозе Ригуэра Лопес
Лицензировано в соответствии с лицензией Apache, версия 2.0 (далее "Лицензия"); вы не можете использовать этот файл, за исключением случаев, предусмотренных Лицензией. Вы можете получить копию Лицензии по адресу
http://www.apache.org/licenses/LICENSE-2.0
Если не требуется иным образом действующим законодательством или в письменной форме, программное обеспечение, распространяемое по Лицензии, предоставляется "КАК ЕСТЬ", БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. См. Лицензию для уточнения прав и ограничений, связанных с Лицензией.
ansible-galaxy install jriguera/ansible-role-configdrive