ahuffman.sat6_create_hosts

Ansible 角色

ahuffman.sat6_create_hosts

一个用于在 Satellite 6.x 中创建新的虚拟主机和裸金属主机的 Ansible 角色。需要 Satellite6 API 的 v2 版本。

角色变量

变量名 是否必需 描述 类型 默认值
sat6_fqdn Satellite 6 主机的完全合格域名。 字符串 ""
sat6_user 具有创建新主机权限的 Satellite 6 用户名。 字符串 ""
sat6_pass 具有创建新主机权限的 Satellite 6 用户密码。应进行加密以确保安全。 字符串 ""
sat6_organization 要在 sat6_hosts 中定义的 Satellite6 组织,用于创建主机。 字符串 ""
sat6_fail_on_existing 如果 sat6_hosts 中定义的任何主机已存在于 Satellite6,则使 playbook 失败。这在 Ansible Tower 中使用通知时很有用,并且您希望在失败时收到通知。为真时,如果主机存在则失败;为假时,只输出总结,并允许更具幂等性的运行方式(例如,可以反复运行 playbook 并只创建不存在的主机)。 布尔值
sat6_power_on_delay 在通过计算资源创建新的虚拟机和启动它之间的延迟秒数(以防在外部系统中创建虚拟机时发生竞争条件)。 整数 30
sat6_hosts 您希望创建的 Satellite 6 主机 字典列表 []

sat6_hosts 字典字段 - 通用

可用于裸金属或虚拟主机创建的字段。

字段名 是否必需 描述 类型
name 要创建的主机的主机名 字符串
comment 将出现在主机附加信息中的评论。简要描述主机的用途。 字符串
domain 用于创建主机的 Satellite6 域名。如果您希望继承主机组的默认域,则不需要此项,否则将覆盖主机组的默认值。 字符串
host_group 用于创建新主机的 Satellite6 主机组名称。 如果嵌套主机组,则应采用 hostgroup1/hostgroup2/hostgroup3 的形式,该名称在 API 中也称为 title 字符串
ipv4 分配给主机的 IPv4 地址。如果主机组配置为通过 IP 地址管理或 DHCP 建议 IPv4 地址,则不需要此项。 字符串
location 您将在 Satellite6 中部署主机的位置名称。 字符串
partition_table 用于创建主机的 Satellite6 分区表名称。如果您希望继承主机组的默认分区表,则不需要此项。 字符串
subnet 用于创建主机的 Satellite6 子网名称。如果您希望继承主机组的默认子网,则不需要此项。 字符串
parameters 您希望在主机上设置的其他 Satellite6 主机特定参数列表。执行后期配置任务时这很有用,并希望根据这些值使用条件等。 字典列表
register_only 是否仅在 Satellite6 中创建主机条目,而不是实际启动和配置主机(默认为假)。此功能用于除配置外的其他用例(例如,指定位置的客户端注册)。如果使用此方法创建主机,您需要指定计算资源和配置文件,因为它们不会从主机组查询。 布尔值
manage_host 使用 register_only: Trueforce_host_update: True 时,将允许主机的构建周期由 Satellite6 管理。 默认为 False
force_host_update 在使用 register_only: True 时,将更新 Satellite6 主机为您指定的选项。默认为 False 布尔值
provision_method buildimage 部署。默认为 build 字符串

sat6_hosts 字典字段 - 虚拟

字段名 是否必需 描述 类型
compute_profile 您希望用于部署主机的 Satellite6 计算配置文件名称。如果未提供,则将使用主机组的默认配置文件。 字符串
compute_resource 您希望用于部署主机的 Satellite6 计算资源名称。 字符串

sat6_hosts 字典字段 - 物理

字段名 是否必需 描述 类型
mac 您希望部署的物理主机的 MAC 地址。 字符串

sat6_hosts.parameters 字典字段

字段名 是否必需 描述 类型
name 要创建的参数名称 字符串
value 要创建的参数值 字符串

调试

要查看完整的调试输出,请在 Ansible Tower 中将详细信息级别提高到 1(详细),或在 Ansible Core/Engine 中使用一个 -v

示例 Playbook

    ---
    - name: "ahuffman.sat6_create_hosts 示例 Playbook"
      hosts: "localhost"
      vars_files:
        - "vars/myvaultedsecrets.yml"
      tasks:
        - name: "配置 Satellite 6 主机"
          include_role:
            name: "ahuffman.sat6_create_hosts"
          vars:
            sat6_fqdn: "mysat6server.mydomain.com"
            sat6_user: "mysat6admin"
            #sat6_pass: "在 vars/myvaultedsecrets.yml 文件中设置"
            sat6_organization: "我的组织"
            sat6_fail_on_existing: True
            #建议将 sat6_hosts 作为额外变量传递,但您也可以将
            #sat6_fail_on_existing: False 设置为以更具幂等性的方式运行 playbook,如果您希望
            #跟踪您在源控制中创建的所有 sat6 主机
            sat6_hosts:
              #虚拟机
              - name: "my-new-vm"
                host_group: "RHEL7-Virtual"
                location: "Raleigh"
                ipv4: "192.168.122.24"
                domain: "redhat.com"
                comment: "用于提供酷新网站的 Web 服务器"
                compute_resource: "vsphere.vmware.com" #这是您的计算资源名称
                compute_profile: "3-Large"
                parameters:
                  - name: "build_type"
                    value: "httpd"
              #裸金属
              - name: "my-new-bare-metal"
                host_group: "RHEL7-Physical"
                location: "Raleigh"
                ipv4: "192.168.122.25"
                domain: "redhat.com"
                comment: "数据库服务器"
                mac: "12:34:56:78:91:23"
              #仅注册(即仅创建)
              - name: "host1"
                host_group: "RHEL7-Virtual"
                location: "Raleigh"
                ipv4: "192.168.122.26"
                domain: "redhat.com"
                comment: "预注册主机条目"
                register_only: True
              #更新现有主机(对不起开个玩笑)
              - name: "my-new-vm"
                host_group: "RHEL7-Virtual"
                location: "Armonk"
                ipv4: "192.168.122.24"
                comment: "迁移 Q3"
                domain: "ibm.com"
                parameters:
                  - name: "build_type"
                    value: "ihs"
                register_only: True #表示不要尝试进行配置
                force_host_update: True #如果存在则更新主机
              #管理当前未管理的现有主机的构建(配置)
              - name: "someoldserver"
                host_group: "RHEL7-Physical"
                mac: "32:34:56:78:91:23"
                domain: "redhat.com"
                location: "Raleigh"
                register_only: True
                force_host_update: True
                manage_host: True

许可证

MIT

作者信息

Andrew J. Huffman

关于项目

An Ansible role to create new virtual and bare-metal hosts in Satellite 6.x.

安装
ansible-galaxy install ahuffman.sat6_create_hosts
许可证
mit
下载
5.1k