theforeman.foreman.provisioning_template module – Manage Provisioning Templates
Note
This module is part of the theforeman.foreman collection (version 3.11.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
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 |