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
Лицензия
mit
Загрузки
460
Владелец