rembik.kickstart_iso
Ansible Role: Kickstart ISO
This role creates kickstart ISO images for RHEL/CentOS systems.
Requirements
- Access to online repositories for system packages and base ISO images.
- Ansible version that is recent (the last two stable major versions are tested).
You can install the necessary roles with the following command:
---
roles:
- name: rembik.bootstrap
Role Variables
Default values are set in defaults/main.yml
:
---
kickstart_iso_src_file:
name: '' # The name of the base ISO image
search: 'boot' # Search term for identifying the ISO
checksum: '' # Checksum for validation
checksum_url: 'http://mirror.centos.org/centos/8/isos/x86_64/CHECKSUM' # URL for the checksum
base_url: 'http://isoredirect.centos.org/centos/8/isos/x86_64' # Base URL for ISO images
kickstart_iso_src_dir: '.images/base' # Directory for base ISOs
kickstart_iso_dest_dir: '.images/kickstart' # Directory for kickstart ISOs
kickstart_iso_override: no # Choose to override existing ISOs (yes|no)
# Disk size settings for the installation
kickstart_iso_disk_drive_min_size: 10 # Minimum physical disk size in GiB
kickstart_iso_disk_volume_min_size: 60 # Minimum OS volume size in GiB
kickstart_iso_disk_volume_max_size: 120 # Maximum OS volume size in GiB
kickstart_iso_install_media: 'url --url http://mirror.centos.org/centos/8/BaseOS/x86_64/os/'
kickstart_iso_root_password: 'centos' # Default root password
kickstart_iso_language: 'de' # Language setting
kickstart_iso_country: 'DE' # Country setting
kickstart_iso_timezone: 'Europe/Berlin' # Timezone setting
kickstart_iso_completion: 'reboot' # Action after installation
kickstart_iso_network_bootproto: 'dhcp' # Network booting method (DHCP or static)
kickstart_iso_network_device: 'eth0' # Network device
kickstart_iso_network_static_netmask: '255.255.255.0' # Static netmask
kickstart_iso_network_static_gateway: '192.168.1.1' # Static gateway
kickstart_iso_network_static_nameserver: ['192.168.1.1'] # Static nameserver
Dependencies
None.
Example Playbook
This playbook creates a CentOS 8 kickstart ISO image on localhost with DHCP:
---
- hosts: localhost
become: true
tasks:
- include_role:
name: rembik.kickstart_iso
This playbook creates a CentOS 7 kickstart ISO image on localhost with a static network:
---
- hosts: localhost
become: true
pre_tasks:
- name: Gather all hosts (including IP) from inventory
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
This role is regularly tested with various Linux distributions.
Contributing
If you find any issues, please report them on the [GitHub issues page][issues] or consider contributing code by following the [guidelines][contributing].
License
[Apache License, Version 2.0][license]
Author Information
For more information, refer to badges and links in the original text.