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发行版上进行测试:

python_badge ansible_badge ansible_previous_badge ansible_latest_badge ansible_devel_badge
alpine_badge ![x1] ![x1] ![e2] ![e1] ![e2]
centos_badge ![x] ![x] ![e]
debian_badge ![x1] ![x1] ![e2] ![e1] ![e2]
fedora_badge ![x1] ![x1] ![e2] ![e1] ![e2]
opensuse_badge ![x1] ![x2] ![x1] ![x2] ![e1] ![e2]
redhat_badge ![x] ![x] ![e]
ubuntu_badge ![x1] ![x1] ![e2] ![e1] ![e2]

贡献

如果您发现问题,请在这个GitHub项目问题页面注册它们,或者考虑按照这个指导方针贡献代码。

许可证

Apache许可证,版本2.0

作者信息

Brian Rimek

关于项目

Creates kickstart ISO images for RHEL/CentOS.

安装
ansible-galaxy install rembik.kickstart_iso
许可证
apache-2.0
下载
256
拥有者