theforeman.foreman.provisioning_template module – Manage Provisioning Templates
Note
This module is part of the theforeman.foreman collection (version 4.2.0).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install theforeman.foreman.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: theforeman.foreman.provisioning_template.
New in theforeman.foreman 1.0.0
Synopsis
- Manage Provisioning Templates 
Aliases: foreman_provisioning_template
Requirements
The below requirements are needed on the host that executes this module.
- requests 
Parameters
| Parameter | Comments | 
|---|---|
| Content of the audit comment field | |
| The path of a template file, that shall be imported. Either this or template is required as a source for the Provisioning Template “content”. | |
| The provisioning template kind Choices: 
 | |
| List of locations the entity should be assigned to | |
| Determines whether the template shall be locked Choices: 
 | |
| The name of the Provisioning Template. If omited, will be determined from the  The special value “*” can be used to perform bulk actions (modify, delete) on all existing templates. | |
| List of operating systems the entity should be assigned to. 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. | |
| List of organizations the entity should be assigned to | |
| Password of the user accessing the Foreman server. If the value is not specified in the task, the value of environment variable  | |
| URL of the Foreman server. If the value is not specified in the task, the value of environment variable  | |
| State of the entity 
 Choices: 
 | |
| The content of the provisioning template. Either this or file_name is required as a source for the Provisioning Template “content”. | |
| New provisioning template name. When this parameter is set, the module will not be idempotent. | |
| Username accessing the Foreman server. If the value is not specified in the task, the value of environment variable  | |
| 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  Choices: 
 | 
Attributes
| Attribute | Support | Description | 
|---|---|---|
| Support: full | Can run in check_mode and return changed status prediction without modifying the entity | |
| Support: full | Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode | 
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 | Description | 
|---|---|
| Final state of the affected entities grouped by their type. Returned: success | |
| List of provisioning templates. Returned: success | 
