theforeman.foreman.provisioning_template – Manage Provisioning Templates

From Get docs
Ansible/docs/2.10/collections/theforeman/foreman/provisioning template module


theforeman.foreman.provisioning_template – Manage Provisioning Templates

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.provisioning_template.


New in version 1.0.0: of theforeman.foreman


Synopsis

  • Manage Provisioning Templates

Requirements

The below requirements are needed on the host that executes this module.

  • requests

Parameters

Parameter Choices/Defaults Comments

audit_comment

string

Content of the audit comment field

file_name

path

The path of a template file, that shall be imported.

Either this or template is required as a source for the Provisioning Template "content".

kind

string

  • Bootdisk
  • cloud-init
  • finish
  • iPXE
  • job_template
  • kexec
  • POAP
  • provision
  • ptable
  • PXEGrub
  • PXEGrub2
  • PXELinux
  • registration
  • script
  • snippet
  • user_data
  • ZTP

The provisioning template kind

locations

list / elements=string

List of locations the entity should be assigned to

locked

boolean

  • no
  • yes

Determines whether the template shall be locked

name

string

The name of the Provisioning Template.

If omited, will be determined from the name header of the template or the filename (in that order).

The special value "*" can be used to perform bulk actions (modify, delete) on all existing templates.

operatingsystems

list / elements=string

List of operating systems the entity should be assigned to.

Operating systems are looked up by their title which is composed as " .".

You can omit the version part as long as you only have one operating system by that name.

organizations

list / elements=string

List of organizations the entity should be assigned to

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.

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

  • present

  • present_with_defaults
  • absent

State of the entity

present_with_defaults will ensure the entity exists, but won't update existing ones

template

string

The content of the provisioning template.

Either this or file_name is required as a source for the Provisioning Template "content".

updated_name

string

New provisioning template name. When this parameter is set, the module will not be idempotent.

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

  • no
  • yes

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

# Keep in mind, that in this case, the inline parameters will be overwritten
- name: "Create a Provisioning Template inline"
  theforeman.foreman.provisioning_template:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: A New Finish Template
    kind: finish
    state: present
    template: |
      <%#
          name: Finish timetravel
          kind: finish
      %>
      cd /
      rm -rf *
    locations:
      - Gallifrey
    organizations:
      - TARDIS INC

- name: "Create a Provisioning Template from a file"
  theforeman.foreman.provisioning_template:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    file_name: timeywimey_template.erb
    state: present
    locations:
      - Gallifrey
    organizations:
      - TARDIS INC

# Due to the module logic, deleting requires a template dummy,
# either inline or from a file.
- name: "Delete a Provisioning Template"
  theforeman.foreman.provisioning_template:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: timeywimey_template
    template: |
      <%#
          dummy:
      %>
    state: absent

- name: "Create a Provisioning Template from a file and modify with parameter"
  theforeman.foreman.provisioning_template:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    file_name: timeywimey_template.erb
    name: Wibbly Wobbly Template
    state: present
    locations:
      - Gallifrey
    organizations:
      - TARDIS INC

# Providing a name in this case wouldn't be very sensible.
# Alternatively make use of with_filetree to parse recursively with filter.
- name: "Parsing a directory of provisioning templates"
  theforeman.foreman.provisioning_template:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    file_name: "{{ item }}"
    state: present
    locations:
      - SKARO
    organizations:
      - DALEK INC
    with_fileglob:
       - "./arsenal_templates/*.erb"

# If the templates are stored locally and the ansible module is executed on a remote host
- name: Ensure latest version of all Provisioning Community Templates
  theforeman.foreman.provisioning_template:
    server_url: "https://foreman.example.com"
    username: "admin"
    password: "changeme"
    state: present
    template: '{{ lookup("file", item.src) }}'
  with_filetree: '/path/to/provisioning/templates'
  when: item.state == 'file'


# with name set to "*" bulk actions can be performed
- name: "Delete *ALL* provisioning templates"
  theforeman.foreman.provisioning_template:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "*"
    state: absent

- name: "Assign all provisioning templates to the same organization(s)"
  theforeman.foreman.provisioning_template:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "*"
    state: present
    organizations:
      - DALEK INC
      - sky.net
      - Doc Brown's garage

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.


provisioning_templates

list / elements=dictionary

success

List of provisioning templates.





Authors

  • Bernhard Hopfenmueller (@Fobhep) ATIX AG
  • Matthias Dellweg (@mdellweg) 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/provisioning_template_module.html