theforeman.foreman.host 模块 – 管理主机

注意

此模块是 theforeman.foreman 集合(版本 4.2.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install theforeman.foreman。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:theforeman.foreman.host

theforeman.foreman 1.0.0 中的新增功能

概要

  • 创建、更新和删除主机

别名:foreman_host

要求

在执行此模块的主机上需要以下要求。

  • requests

参数

参数

注释

activation_keys

字符串

用于部署的激活密钥。

逗号分隔的列表。

仅适用于 Katello 安装。

architecture

字符串

体系结构名称

build

布尔值

是否为主机设置构建上下文

选项

  • false

  • true

comment

字符串

关于主机的注释。

compute_attributes

字典

其他计算资源特定属性。

设置此参数后,模块将不会是幂等的。

当您在此处提供集群并且设置了compute_resource时,将自动查找集群 ID。

compute_profile

字符串

计算配置文件名称

compute_resource

字符串

计算资源名称

config_groups

列表 / 元素=字符串

配置组列表

content_source

字符串

内容源(具有内容功能的智能代理)名称。

仅适用于 Katello 安装。

content_view

字符串

内容视图。

仅适用于 Katello 安装。

domain

字符串

域名

enabled

布尔值

在报告中包含此主机

选项

  • false

  • true

environment

字符串

Puppet 环境名称

hostgroup

字符串

相关主机组的标题

示例:父主机组 foo 中的子主机组 bar 的标题将为 foo/bar

image

字符串

provision_method=image 时要使用的镜像。

需要 compute_resource 参数才能找到正确的镜像。

interfaces_attributes

列表 / 元素=字典

在 theforeman.foreman 1.5.0 中添加

其他接口特定属性。

attached_devices

列表 / 元素=字符串

附加接口的标识符,例如 [‘eth1’, ‘eth2’]。

对于绑定接口,这些是从属接口。

仅适用于绑定和桥接接口。

attached_to

字符串

此接口所属的接口的标识符,例如 eth1。

仅适用于虚拟接口。

bond_options

字符串

以空格分隔的选项,例如 miimon=100。

仅适用于绑定接口。

compute_attributes

字典

接口的其他计算资源特定属性。

设置此参数后,模块将不会是幂等的。

当您在此处提供网络并且设置了compute_resource时,将自动查找网络 ID。

在 oVirt/RHV 上,主机的 compute_attributes 中需要集群才能使查找工作。

domain

字符串

域名

托管主机上的主接口是必需的。

execution

布尔值

此接口是否应用于远程执行?

每个托管主机都应有一个远程执行接口。

选项

  • false

  • true

identifier

字符串

设备标识符,例如 eth0 或 eth1.1

您需要设置 identifiernamemac 之一才能更新现有接口并使执行幂等。

ip

字符串

接口的 IPv4 地址

ip6

字符串

接口的 IPv6 地址

mac

字符串

接口的 MAC 地址。对于裸机上的托管接口是必需的。

请包括前导零并用冒号分隔 nibble,否则执行将不是幂等的。

示例 EE:BB:01:02:03:04

您需要设置 identifiernamemac 之一才能更新现有接口并使执行幂等。

managed

布尔值

此接口是否应通过 DHCP 和 DNS 智能代理进行管理,并且是否应在配置期间进行配置?

选项

  • false

  • true

mode

字符串

接口的绑定模式。

仅适用于绑定接口。

选项

  • "balance-rr"

  • "active-backup"

  • "balance-xor"

  • "broadcast"

  • "802.3ad"

  • "balance-tlb"

  • "balance-alb"

mtu

整数

MTU,此属性优先于子网 MTU。

name

字符串

接口的 DNS 名称

您需要设置 identifiernamemac 之一才能更新现有接口并使执行幂等。

password

字符串

BMC 身份验证的密码。

仅适用于 BMC 接口。

primary

布尔值

此接口是否应用于构建主机的 FQDN?

每个托管主机都需要有一个主接口。

选项

  • false

  • true

provider

字符串

接口提供程序,例如 IPMI。

仅适用于 BMC 接口。

选项

  • "IPMI"

  • "Redfish"

  • "SSH"

provision

布尔值

此接口是否应用于 PXELinux 的 TFTP(或基于镜像的主机的 SSH)?

每个托管主机都需要有一个配置接口。

选项

  • false

  • true

subnet

字符串

IPv4 子网名称

subnet6

字符串

IPv6 子网名称

tag

字符串

VLAN 标签,此属性优先于子网 VLAN ID。

仅适用于虚拟接口。

type

字符串

接口类型。

选项

  • "interface"

  • "bmc"

  • "bond"

  • "bridge"

username

字符串

BMC 身份验证的用户名。

仅适用于 BMC 接口。

virtual

布尔值

别名或 VLAN 设备

选项

  • false

  • true

ip

字符串

主机主接口的 IP 地址。

kickstart_repository

字符串

Kickstart 存储库名称。

您需要提供此内容才能使用“同步内容”功能。

medium 互斥。

仅适用于 Katello 安装。

lifecycle_environment

字符串

生命周期环境。

仅适用于 Katello 安装。

位置

字符串

相关位置的名称

mac

字符串

主机主接口的MAC地址。

请包括前导零并用冒号分隔 nibble,否则执行将不是幂等的。

示例 EE:BB:01:02:03:04

managed

布尔值

主机是受管理还是非受管理。

build=true 时强制为 true

选项

  • false

  • true

介质

别名:media

字符串

介质名称

kickstart_repository 互斥。

name

字符串 / 必需

主机的完全限定域名

openscap_proxy

字符串

OpenSCAP代理名称。

仅当安装了OpenSCAP插件时可用。

operatingsystem

字符串

操作系统通过其标题查找,标题由“<name> <major>.<minor>”组成。

只要该名称下只有一个操作系统,您就可以省略版本部分。

组织

字符串

相关组织的名称

所有者

字符串

主机的所有者(用户)。

用户通过其 login 查找。

owner_group 互斥。

owner_group

字符串

主机的所有者(用户组)。

owner 互斥。

参数

列表 / 元素=字典

实体域特定的主机参数

name

字符串 / 必需

参数的名称

parameter_type

字符串

参数的类型

选项

  • "string" ← (默认)

  • "boolean"

  • "integer"

  • "real"

  • "array"

  • "hash"

  • "yaml"

  • "json"

任意 / 必需

参数的值

password

字符串 / 必需

访问 Foreman 服务器的用户的密码。

如果任务中未指定该值,则将使用环境变量 FOREMAN_PASSWORD 的值。

provision_method

字符串

用于配置主机的方法。

仅当安装了 bootdisk 插件时,provision_method=bootdisk 才可用。

选项

  • "build"

  • "image"

  • "bootdisk"

ptable

字符串

分区表名称

puppet_ca_proxy

字符串

Puppet CA 代理名称

puppet_proxy

字符串

Puppet 服务器代理名称

puppetclasses

列表 / 元素=字符串

要包含在此主机组中的 Puppet 类列表。 必须存在于主机组的 Puppet 环境中。

pxe_loader

字符串

PXE 引导加载程序

选项

  • "PXELinux BIOS"

  • "PXELinux UEFI"

  • "Grub UEFI"

  • "Grub2 BIOS"

  • "Grub2 ELF"

  • "Grub2 UEFI"

  • "Grub2 UEFI SecureBoot"

  • "Grub2 UEFI HTTP"

  • "Grub2 UEFI HTTPS"

  • "Grub2 UEFI HTTPS SecureBoot"

  • "iPXE Embedded"

  • "iPXE UEFI HTTP"

  • "iPXE Chain BIOS"

  • "iPXE Chain UEFI"

  • "None"

realm

字符串

领域名称

root_pass

字符串

Root 密码。

将导致实体始终更新,因为无法检索当前密码。

server_url

字符串 / 必需

Foreman 服务器的 URL。

如果任务中未指定该值,则将使用环境变量 FOREMAN_SERVER_URL 的值。

state

字符串

实体的状态

选项

  • "present" ← (默认)

  • "absent"

subnet

字符串

IPv4 子网名称

subnet6

字符串

IPv6 子网名称

username

字符串 / 必需

访问 Foreman 服务器的用户名。

如果任务中未指定该值,则将使用环境变量 FOREMAN_USERNAME 的值。

validate_certs

布尔值

是否验证 Foreman 服务器的 TLS 证书。

如果任务中未指定该值,则将使用环境变量 FOREMAN_VALIDATE_CERTS 的值。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全

可以在 check_mode 中运行并返回已更改的状态预测,而无需修改实体

diff_mode

支持:完全

当处于 diff 模式时,将返回有关已更改(或可能需要在 check_mode 中更改)的详细信息

示例

- name: "Create a host"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    hostgroup: my_hostgroup
    state: present

- name: "Create a host with build context"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    hostgroup: my_hostgroup
    build: true
    state: present

- name: "Create an unmanaged host"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    managed: false
    state: present

- name: "Create a VM with 2 CPUs and 4GB RAM"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    compute_attributes:
      cpus: 2
      memory_mb: 4096
    state: present

- name: "Create a VM and start it after creation"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    compute_attributes:
      start: "1"
    state: present

- name: "Create a VM on specific ovirt network"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    interfaces_attributes:
      - type: "interface"
        compute_attributes:
          name: "nic1"
          network: "969efbe6-f9e0-4383-a19a-a7ee65ad5007"
          interface: "virtio"
    state: present

- name: "Create a VM with 2 NICs on specific ovirt networks"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    interfaces_attributes:
      - type: "interface"
        primary: true
        compute_attributes:
          name: "nic1"
          network: "969efbe6-f9e0-4383-a19a-a7ee65ad5007"
          interface: "virtio"
      - type: "interface"
        name: "new_host_nic2"
        managed: true
        compute_attributes:
          name: "nic2"
          network: "969efbe6-f9e0-4383-a19a-a7ee65ad5008"
          interface: "e1000"
    state: present

- name: "Delete a host"
  theforeman.foreman.host:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "new_host"
    state: absent

返回值

常用返回值记录在此处,以下是此模块特有的字段

描述

实体

字典

受影响实体按其类型分组的最终状态。

返回:成功

主机

列表 / 元素=字典

主机列表。

返回:成功

作者

  • Bernhard Hopfenmueller (@Fobhep) ATIX AG