rembik.kickstart_iso
Rôle Ansible : ISO Kickstart
Ce rôle crée des images ISO kickstart pour RHEL/CentOS.
Exigences
- Accès aux dépôts contenant des paquets système et des images ISO de base, probablement sur Internet.
- Une version récente d'Ansible (testée les 2 dernières versions majeures stables).
Les rôles suivants peuvent être installés pour garantir que toutes les exigences sont satisfaites, en utilisant ansible-galaxy role install -r molecule/resources/requirements.yml
:
---
roles:
- name: rembik.bootstrap
Variables du Rôle
Ces valeurs par défaut sont définies dans defaults/main.yml
:
---
# https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/anaconda_customization_guide/sect-boot-menu-customization
# https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/8/html-single/performing_an_advanced_rhel_installation
# Si kickstart_iso_src_file.name ou kickstart_iso_src_file.checksum est indéfini,
# kickstart_iso_src_file.checksum_url et kickstart_iso_src_file.search sont utilisés
# pour déterminer le nom de fichier ISO de base manquant et le checksum.
kickstart_iso_src_file:
name: ''
search: 'boot'
checksum: ''
checksum_url: 'http://mirror.centos.org/centos/8/isos/x86_64/CHECKSUM'
base_url: 'http://isoredirect.centos.org/centos/8/isos/x86_64'
# Répertoire où les images ISO de base sont enregistrées
kickstart_iso_src_dir: '.images/base'
# Répertoire où les images ISO kickstart sont enregistrées
kickstart_iso_dest_dir: '.images/kickstart'
# Autoriser le remplacement des images ISO kickstart, si certaines existent déjà (oui|non)
kickstart_iso_override: no
# Choisir les premiers disques avec une taille physique minimale kickstart_iso_disk_drive_min_size (GiB)
# jusqu'à une taille minimale de volume OS logique kickstart_iso_disk_volume_min_size (GiB)
# et créer un volume OS logique avec une taille maximale kickstart_iso_disk_volume_max_size (GiB)
kickstart_iso_disk_drive_min_size: 10
kickstart_iso_disk_volume_min_size: 60
kickstart_iso_disk_volume_max_size: 120
kickstart_iso_install_media: 'url --url http://mirror.centos.org/centos/8/BaseOS/x86_64/os/'
kickstart_iso_root_password: 'centos'
kickstart_iso_language: 'de'
kickstart_iso_country: 'DE'
kickstart_iso_timezone: 'Europe/Berlin'
kickstart_iso_completion: 'reboot'
kickstart_iso_network_bootproto: 'dhcp'
kickstart_iso_network_device: 'eth0'
kickstart_iso_network_static_netmask: '255.255.255.0'
kickstart_iso_network_static_gateway: '192.168.1.1'
kickstart_iso_network_static_nameserver: ['192.168.1.1']
# Si kickstart_iso_network_bootproto est statique, utilisez kickstart_iso_network_static_hosts
# pour créer des images ISO statiques hôtes supplémentaires
# kickstart_iso_network_static_hosts:
# - {ip: '192.168.1.1', name: 'host01'}
Dépendances
Aucune.
Exemple de Playbook
Voici un exemple de playbook pour créer une image ISO kickstart CentOS 8 sur localhost ; conçu pour des versions réseau via DHCP.
---
- hosts: localhost
become: true
tasks:
- include_role:
name: rembik.kickstart_iso
Voici un exemple de playbook pour créer des images ISO kickstart CentOS 7 sur localhost ; conçu pour une configuration réseau statique.
---
- hosts: localhost
become: true
pre_tasks:
- name: Obtenir tous les hôtes (y compris l'IP) de l'inventaire
set_fact:
kickstart_iso_network_static_hosts: "{{ (kickstart_iso_network_static_hosts|default([])) +
[dict(ip=hostvars[item].ansible_host,name=(item.split('.')[0]|lower))] }}"
loop: "{{ groups['all'] }}"
tasks:
- include_role:
name: rembik.kickstart_iso
vars:
kickstart_iso_src_file:
search: 'Minimal'
checksum_url: 'http://mirror.centos.org/centos/7/isos/x86_64/sha256sum.txt'
base_url: 'http://isoredirect.centos.org/centos/7/isos/x86_64'
kickstart_iso_install_media: 'cdrom'
kickstart_iso_network_bootproto: 'static'
kickstart_iso_network_static_netmask: '255.255.252.0'
kickstart_iso_network_static_gateway: '10.0.0.1'
kickstart_iso_network_static_nameserver:
- '10.0.2.1'
- '10.0.3.1'
Tests
Ce rôle est testé régulièrement sur les distributions Linux suivantes :
Contribuer
Si vous trouvez des problèmes, veuillez les signaler sur cette page des problèmes du projet GitHub ou envisagez de contribuer au code en suivant cette ligne directrice.