stafwag.cloud_localds

Ansible角色:cloud_localds

一个用于创建cloud-init配置磁盘映像的Ansible角色。这个角色是对cloud-localds命令的封装。

需求

需要安装cloud-localds。

支持的GNU/Linux发行版

该角色应该适用于大多数GNU/Linux发行版。 cloud-localds是必需的。cloud-localds在CentOS/RedHat 7上可用,但在RedHat 8上不可用。要在CentOS/RedHat 8上使用该角色,您需要手动安装它。

  • Archlinux
  • Debian
  • CentOS 7
  • RedHat 7
  • Ubuntu

角色任务、标签、变量和模板

任务

  • install

    所有与安装相关的任务都在install剧本中定义。这使您可以通过include_roleimport_role等Ansible模块中的tasks_from安装所需的软件包并启动/启用所需的服务。

    请参见下面的示例。

标签

  • install

    安装所需的软件包。

与剧本相关的变量

  • cloud_localds: "命名空间"
    • dest: 目标映像
    • hostname: 主机名
    • dir: 可选,默认值:/var/lib/libvirt/images。当未定义dest时的目标目录。
    • config: 用户数据配置
    • network_config: 网络配置
    • config_template: 使用Ansible模板进行用户数据配置。
    • network_config_template: 使用Ansible模板进行网络配置。
    • owner: uid 默认值0 目标映像的文件所有者
    • group: gid 默认值0 目标映像的文件组所有者
    • mode: 模式 默认值 '0400' 目标映像的权限
    • overwrite: 布尔值 默认值:false 如果目标iso已存在,则覆盖。

该角色创建一个带有cloud-init配置的iso磁盘映像。 当cloud_localds.dest被定义时,将创建以下文件:

  • {{ cloud_localds.dest }}_config.yml cloud-init用户数据
  • {{ cloud_localds.dest }}_net_config.yml cloud-init网络配置(如果定义了network_config)
  • {{ cloud_localds.dest }} 带有cloud-init配置的iso映像。

cloud_localds.dest未定义时,需要定义cloud_localds.hostname。在这种情况下,将创建以下文件:

  • {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_config.yml cloud-init用户数据
  • {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_net_config.yml cloud-init网络配置(如果定义了network_config)
  • {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_cloud-init.iso:带有cloud-init配置的iso映像。

示例剧本

使用include_role安装cloud-localds包

---
- name: 安装libvirt及相关组件
  gather_facts: true 
  hosts: all
  become: true
  tasks:
    - name: 安装所需的包
      include_role:
        name: "{{ item }}"
        tasks_from:
          install
      with_items:
        - stafwag.libvirt 
        - stafwag.qemu_img
        - stafwag.cloud_localds
      tags:
        - install

创建一个指定目标的cloud-init iso

- name: 创建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') }}"

创建一个指定主机名的cloud-init iso

---
- name: 创建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') }}"

使用Ansible模板

---
- name: 创建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"

许可证

MIT/BSD

作者信息

创建者:Staf Wagemakers,邮件:staf@wagemakers.be,网站:http://www.wagemakers.be。

关于项目

An ansible role to create cloud-init config disk images.

安装
ansible-galaxy install stafwag.cloud_localds
许可证
mit
下载
547
拥有者