theforeman.foreman.host – Manage Hosts
Note
This plugin is part of the theforeman.foreman collection (version 1.5.1).
To install it use: ansible-galaxy collection install theforeman.foreman.
To use it in a playbook, specify: theforeman.foreman.host.
New in version 1.0.0: of theforeman.foreman
Synopsis
- Create, update, and delete Hosts
 
Requirements
The below requirements are needed on the host that executes this module.
- requests
 
Parameters
| Parameter | Choices/Defaults | Comments | |
|---|---|---|---|
|   architecture    string    |    Architecture name   |  ||
|   build    boolean    |   
  |    Whether or not to setup build context for the host   |  |
|   comment    string    |    Comment about the host.   |  ||
|   compute_attributes    dictionary    |    Additional compute resource specific attributes.  When this parameter is set, the module will not be idempotent.   |  ||
|   compute_profile    string    |    Compute profile name   |  ||
|   compute_resource    string    |    Compute resource name   |  ||
|   config_groups    list / elements=string    |    Config groups list   |  ||
|   content_source    string    |    Content source.  Only available for Katello installations.   |  ||
|   content_view    string    |    Content view.  Only available for Katello installations.   |  ||
|   domain    string    |    Domain name   |  ||
|   enabled    boolean    |   
  |    Include this host within reporting   |  |
|   environment    string    |    Puppet environment name   |  ||
|   hostgroup    string    |    Name of related hostgroup.   |  ||
|   image    string    |    The image to use when provision_method=image.  The compute_resource parameter is required to find the correct image.   |  ||
|   interfaces_attributes    list / elements=dictionary    added in 1.5.0 of theforeman.foreman    |    Additional interfaces specific attributes.   |  ||
|   attached_devices    list / elements=string    |    Identifiers of attached interfaces, e.g. ['eth1', 'eth2'].  For bond interfaces those are the slaves.  Only for bond and bridges interfaces.   |  ||
|   attached_to    string    |    Identifier of the interface to which this interface belongs, e.g. eth1.  Only for virtual interfaces.   |  ||
|   bond_options    string    |    Space separated options, e.g. miimon=100.  Only for bond interfaces.   |  ||
|   compute_attributes    dictionary    |    Additional compute resource specific attributes for the interface.  When this parameter is set, the module will not be idempotent.   |  ||
|   domain    string    |    Domain name  Required for primary interfaces on managed hosts.   |  ||
|   identifier    string    |    Device identifier, e.g. eth0 or eth1.1  You need to set one of identifier, name or mac to be able to update existing interfaces and make execution idempotent.   |  ||
|   ip    string    |    IPv4 address of interface   |  ||
|   ip6    string    |    IPv6 address of interface   |  ||
|   mac    string    |    MAC address of interface. Required for managed interfaces on bare metal.  Please include leading zeros and separate nibbles by colons, otherwise the execution will not be idempotent.  Example EE:BB:01:02:03:04  You need to set one of identifier, name or mac to be able to update existing interfaces and make execution idempotent.   |  ||
|   managed    boolean    |   
  |    Should this interface be managed via DHCP and DNS smart proxy and should it be configured during provisioning?   |  |
|   mode    string    |   
  |    Bond mode of the interface.  Only for bond interfaces.   |  |
|   mtu    integer    |    MTU, this attribute has precedence over the subnet MTU.   |  ||
|   name    string    |    Interface's DNS name  You need to set one of identifier, name or mac to be able to update existing interfaces and make execution idempotent.   |  ||
|   password    string    |    Password for BMC authentication.  Only for BMC interfaces.   |  ||
|   primary    boolean    |   
  |    Should this interface be used for constructing the FQDN of the host?  Each managed hosts needs to have one primary interface.   |  |
|   provider    string    |   
  |    Interface provider, e.g. IPMI.  Only for BMC interfaces.   |  |
|   provision    boolean    |   
  |    Should this interface be used for TFTP of PXELinux (or SSH for image-based hosts)?  Each managed hosts needs to have one provision interface.   |  |
|   subnet    string    |    IPv4 Subnet name   |  ||
|   subnet6    string    |    IPv6 Subnet name   |  ||
|   tag    string    |    VLAN tag, this attribute has precedence over the subnet VLAN ID.  Only for virtual interfaces.   |  ||
|   type    string    |   
  |    Interface type.   |  |
|   username    string    |    Username for BMC authentication.  Only for BMC interfaces.   |  ||
|   virtual    boolean    |   
  |    Alias or VLAN device   |  |
|   ip    string    |    IP address of the primary interface of the host.   |  ||
|   kickstart_repository    string    |    Kickstart repository name.  You need to provide this to use the "Synced Content" feature.  Mutually exclusive with medium.  Only available for Katello installations.   |  ||
|   lifecycle_environment    string    |    Lifecycle environment.  Only available for Katello installations.   |  ||
|   location    string    |    Name of related location   |  ||
|   mac    string    |    MAC address of the primary interface of the host.  Please include leading zeros and separate nibbles by colons, otherwise the execution will not be idempotent.  Example EE:BB:01:02:03:04   |  ||
|   managed    boolean    |   
  |    Whether a host is managed or unmanaged.  Forced to true when build=true
   |  |
|   medium    string    |    Medium name  Mutually exclusive with kickstart_repository.  aliases: media  |  ||
|   name    string / required    |    Fully Qualified Domain Name of host   |  ||
|   openscap_proxy    string    |    OpenSCAP proxy name.  Only available when the OpenSCAP plugin is installed.   |  ||
|   operatingsystem    string    |    Operating systems are looked up by their title which is composed as "<name> <major>.<minor>".  You can omit the version part as long as you only have one operating system by that name.   |  ||
|   organization    string    |    Name of related organization   |  ||
|   owner    string    |    Owner (user) of the host.  Mutually exclusive with owner_group.   |  ||
|   owner_group    string    |    Owner (user group) of the host.  Mutually excluside with owner.   |  ||
|   parameters    list / elements=dictionary    |    Entity domain specific host parameters   |  ||
|   name    string / required    |    Name of the parameter   |  ||
|   parameter_type    string    |   
  |    Type of the parameter   |  |
|   value    raw / required    |    Value of the parameter   |  ||
|   password    string / required    |    Password of the user accessing the Foreman server.  If the value is not specified in the task, the value of environment variable   FOREMAN_PASSWORD will be used instead. |  ||
|   provision_method    string    |   
  |    The method used to provision the host.  
provision_method=bootdisk is only available if the bootdisk plugin is installed.   |  |
|   ptable    string    |    Partition table name   |  ||
|   puppet_ca_proxy    string    |    Puppet CA proxy name   |  ||
|   puppet_proxy    string    |    Puppet server proxy name   |  ||
|   puppetclasses    list / elements=string    |    List of puppet classes to include in this host group. Must exist for hostgroup's puppet environment.   |  ||
|   pxe_loader    string    |   
  |    PXE Bootloader   |  |
|   realm    string    |    Realm name   |  ||
|   root_pass    string    |    Root password.  Will result in the entity always being updated, as the current password cannot be retrieved.   |  ||
|   server_url    string / required    |    URL of the Foreman server.  If the value is not specified in the task, the value of environment variable   FOREMAN_SERVER_URL will be used instead. |  ||
|   state    string    |   
  |    State of the entity   |  |
|   subnet    string    |    IPv4 Subnet name   |  ||
|   subnet6    string    |    IPv6 Subnet name   |  ||
|   username    string / required    |    Username accessing the Foreman server.  If the value is not specified in the task, the value of environment variable   FOREMAN_USERNAME will be used instead. |  ||
|   validate_certs    boolean    |   
  |    Whether or not to verify the TLS certificates of the Foreman server.  If the value is not specified in the task, the value of environment variable   FOREMAN_VALIDATE_CERTS will be used instead. |  |
Examples
- 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
   Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | |
|---|---|---|---|
|   entity    dictionary    |  success |   Final state of the affected entities grouped by their type.   |  |
|   hosts    list / elements=dictionary    |  success |   List of hosts.   |  |
Authors
- Bernhard Hopfenmueller (@Fobhep) ATIX AG
 
    © 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.10/collections/theforeman/foreman/host_module.html