rembik.kickstart_iso
Ansible角色:Kickstart ISO
此角色用于为RHEL/CentOS创建kickstart ISO镜像。
要求
- 访问包含系统软件包和基础ISO镜像的仓库,可能在互联网上。
- 最近的Ansible版本(已测试最新两个稳定的主版本)。
可以安装以下角色以确保满足所有要求,使用 ansible-galaxy role install -r molecule/resources/requirements.yml
:
---
roles:
- name: rembik.bootstrap
角色变量
这些默认值在 defaults/main.yml
中设置:
---
# http://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/anaconda_customization_guide/sect-boot-menu-customization
# http://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html-single/performing_an_advanced_rhel_installation
# 如果kickstart_iso_src_file.name或kickstart_iso_src_file.checksum未定义,
# kickstart_iso_src_file.checksum_url和kickstart_iso_src_file.search将用于确定缺失的基础ISO镜像文件名和校验和
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'
# 保存基础ISO镜像的目录
kickstart_iso_src_dir: '.images/base'
# 保存kickstart ISO镜像的目录
kickstart_iso_dest_dir: '.images/kickstart'
# 允许覆盖已存在的kickstart ISO镜像(是|否)
kickstart_iso_override: no
# 选择物理大小最少的第一个磁盘kickstart_iso_disk_drive_min_size(GiB)
# 直到整体最小逻辑操作系统卷大小kickstart_iso_disk_volume_min_size(GiB)
# 并创建最大大小的逻辑操作系统卷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']
# 如果kickstart_iso_network_bootproto为静态,使用kickstart_iso_network_static_hosts
# 创建其它自定义的静态主机ISO镜像
# kickstart_iso_network_static_hosts:
# - {ip: '192.168.1.1', name: 'host01'}
依赖关系
无。
示例剧本
这是一个在localhost上创建kickstart CentOS 8 ISO镜像的示例剧本;用于通过DHCP进行网络发布。
---
- hosts: localhost
become: true
tasks:
- include_role:
name: rembik.kickstart_iso
这是一个在localhost上创建kickstart CentOS 7 ISO镜像的示例剧本;用于静态网络配置。
---
- hosts: localhost
become: true
pre_tasks:
- name: 从清单获取所有主机(包括IP)
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'
测试
该角色定期在以下Linux发行版上进行测试:
![x1] | ![x1] ![e2] | ![e1] ![e2] | |
![x] | ![x] | ![e] | |
![x1] | ![x1] ![e2] | ![e1] ![e2] | |
![x1] | ![x1] ![e2] | ![e1] ![e2] | |
![x1] ![x2] | ![x1] ![x2] | ![e1] ![e2] | |
![x] | ![x] | ![e] | |
![x1] | ![x1] ![e2] | ![e1] ![e2] |
贡献
如果您发现问题,请在这个GitHub项目问题页面注册它们,或者考虑按照这个指导方针贡献代码。