cloud_localds
Ansible Роль: cloud_localds
Ansible роль для создания образов конфигурационных дисков cloud-init. Эта роль является оберткой вокруг команды cloud-localds
.
Требования
cloud-localds
Поддерживаемые дистрибутивы GNU/Linux
Эта роль должна работать на большинстве дистрибутивов GNU/Linux.
cloud-localds
необходим. cloud-localds
был доступен на Centos/RedHat 7, но не на RedHat 8. Вам нужно будет установить его вручную, чтобы использовать роль на Centos/RedHat 8.
- Archlinux
- Debian
- Centos 7
- RedHat 7
- Ubuntu
Задачи роли, теги, переменные и шаблоны
Задачи
установка
Все задачи, связанные с установкой, определены в плейбуке
install
. Это позволяет вам устанавливать необходимые пакеты и запускать/включать требуемый сервис с помощьюtasks_from
вinclude_role
,import_role
и других модулях ansible.См. пример ниже.
Теги
установка
Установить необходимые пакеты.
Переменные, связанные с плейбуком
- cloud_localds: "namespace"
- dest: Целевой образ
- hostname: Имя хоста
- dir: необязательный, по умолчанию:
/var/lib/libvirt/images
. Целевая директория, если dest не определен. - config: Конфигурация пользовательских данных
- network_config: Сетевая конфигурация
- config_template: Используйте шаблон ansible для конфигурации пользовательских данных.
- network_config_template: Используйте шаблон ansible для сетевой конфигурации.
- owner: uid по умолчанию 0 Владелец файла целевого образа
- group: gid по умолчанию 0 Группа владельца файла целевого образа
- mode: режим по умолчанию '0400' Права доступа к целевому образу
- overwrite: boolean по умолчанию: false Перезаписать целевой iso, если он уже существует.
Роль создает образ iso с конфигурацией cloud-init.
Когда cloud_localds.dest
определен, создаются следующие файлы:
- {{ cloud_localds.dest }}_config.yml конфигурация пользовательских данных cloud-init
- {{ cloud_localds.dest }}_net_config.yml сетевая конфигурация cloud-init (если network_config определен)
- {{ cloud_localds.dest }} образ iso с конфигурацией cloud-init.
Когда cloud_localds.dest не определен, необходимо определить cloud_localds.hostname. В этом случае создаются следующие файлы:
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_config.yml конфигурация пользовательских данных cloud-init
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_net_config.yml сетевая конфигурация cloud-init (если network_config определен)
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_cloud-init.iso: образ iso с конфигурацией cloud-init.
Примеры Плейбуков
Установить пакет cloud-localds с include_role
---
- name: Установка libvirt & co
gather_facts: true
hosts: all
become: true
tasks:
- name: Установить необходимые пакеты
include_role:
name: "{{ item }}"
tasks_from:
install
with_items:
- stafwag.libvirt
- stafwag.qemu_img
- stafwag.cloud_localds
tags:
- install
Создать cloud-init iso с заданным dest
- name: Создать config.iso
gather_facts: no
become: true
hosts: localhost
roles:
- role: stafwag.cloud_localds
vars:
cloud_localds:
dest: /var/lib/libvirt/images/tstdebian_cloudinit.iso
config: "{{ lookup('template','files/mytstdebian.j2') }}"
network_config: "{{ lookup('template','files/mytstdebian.j2') }}"
Создать cloud-init iso с заданным именем хоста
---
- name: Создать config.iso
gather_facts: no
become: true
hosts: localhost
roles:
- role: stafwag.cloud_localds
vars:
cloud_localds:
hostname: tstdebian
config: "{{ lookup('template','files/mytstdebian.j2') }}"
network_config: "{{ lookup('template','files/mytstdebian.j2') }}"
Использовать шаблоны ansible
---
- name: Создать config.iso
gather_facts: true
become: true
hosts: localhost
roles:
- role: stafwag.cloud_localds
vars:
cloud_localds:
hostname: tstdebian
config_template: "files/debian/debian.j2"
network_config_template: "files/debian/debian.j2"
Лицензия
MIT/BSD
Информация об авторе
Создано Стафом Вагемейкерсом, email: staf@wagemakers.be, сайт: http://www.wagemakers.be.
An ansible role to create cloud-init config disk images.
ansible-galaxy install stafwag/ansible-role-cloud_localds