stafwag.cloud_localds
Rola Ansible: cloud_localds
Rola Ansible do tworzenia obrazów dysków konfiguracyjnych dla cloud-init.
Ta rola jest opakowaniem dla polecenia cloud-localds
.
Wymagania
cloud-localds
Obsługiwane dystrybucje GNU/Linux
Powinna działać na większości dystrybucji GNU/Linux.
cloud-localds
jest wymagane. Było dostępne na Centos/RedHat 7, ale nie na RedHat 8.
Będziesz musiał zainstalować je ręcznie, aby użyć roli na Centos/RedHat 8.
- Archlinux
- Debian
- Centos 7
- RedHat 7
- Ubuntu
Zadania roli, tagi, zmienne i szablony
Zadania
instalacja
Wszystkie zadania związane z instalacją są zdefiniowane w playbooku
install
. Umożliwia to zainstalowanie wymaganych pakietów oraz uruchomienie/włączenie wymaganego serwisu przy użyciutasks_from
w moduleinclude_role
,import_role
, itd.Zobacz przykład poniżej.
Tagi
instalacja
Zainstaluj wymagane pakiety.
Zmienne związane z playbookiem
- cloud_localds: "namespace"
- dest: Obraz docelowy
- hostname: Nazwa hosta
- dir: opcjonalne, domyślnie:
/var/lib/libvirt/images
. Katalog docelowy, gdy dest nie jest zdefiniowane. - config: Konfiguracja danych użytkownika
- network_config: Konfiguracja sieci
- config_template: Użyj szablonu Ansible do konfiguracji danych użytkownika.
- network_config_template: Użyj szablonu Ansible do konfiguracji sieci.
- owner: uid, domyślnie 0. Właściciel pliku obrazu docelowego.
- group: gid, domyślnie 0. Właściciel grupy pliku obrazu docelowego.
- mode: tryb, domyślnie '0400'. Uprawnienia obrazu docelowego.
- overwrite: boolean, domyślnie: false. Zapisz obraz docelowy, jeśli już istnieje.
Rola tworzy obraz iso z konfiguracją cloud-init.
Gdy cloud_localds.dest
jest zdefiniowane, tworzone są następujące pliki:
- {{ cloud_localds.dest }}_config.yml - dane użytkownika cloud-init
- {{ cloud_localds.dest }}_net_config.yml - konfiguracja sieci cloud-init (jeśli network_config jest zdefiniowana)
- {{ cloud_localds.dest }} - obraz iso z konfiguracją cloud-init.
Gdy cloud_localds.dest nie jest zdefiniowane, musi być zdefiniowane cloud_localds.hostname. W tym przypadku tworzone są następujące pliki:
- {{ cloud_localds.dir }}/{{ cloud_localdds.hostname }}_config.yml - dane użytkownika cloud-init
- {{ cloud_localds.dir }}/{{ cloud_localdds.hostname }}_net_config.yml - konfiguracja sieci cloud-init (jeśli network_config jest zdefiniowana)
- {{ cloud_localds.dir }}/{{ cloud_localdds.hostname }}_cloud-init.iso - obraz iso z konfiguracją cloud-init.
Przykłady Playbooków
Zainstaluj pakiet cloud-localds z użyciem include_role
---
- name: Instalacja libvirt i innych
gather_facts: true
hosts: all
become: true
tasks:
- name: Instalacja wymagań
include_role:
name: "{{ item }}"
tasks_from:
install
with_items:
- stafwag.libvirt
- stafwag.qemu_img
- stafwag.cloud_localds
tags:
- instalacja
Utwórz iso cloud-init z zdefiniowanym dest
- name: Utwórz 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') }}"
Utwórz iso cloud-init z zdefiniowaną nazwą hosta
---
- name: Utwórz 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') }}"
Użyj szablonów ansible
---
- name: Utwórz 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"
Licencja
MIT/BSD
Informacje o autorze
Utworzone przez Stafa Wagemakersa, e-mail: staf@wagemakers.be, strona internetowa: http://www.wagemakers.be.
An ansible role to create cloud-init config disk images.
ansible-galaxy install stafwag.cloud_localds