theforeman.foreman.job_template module – Manage Job Templates
Note
This module is part of the theforeman.foreman collection (version 2.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
.
To use it in a playbook, specify: theforeman.foreman.job_template
.
New in version 1.0.0: of theforeman.foreman
Parameters
Parameter |
Comments |
---|---|
Content of the audit comment field |
|
description of the job template. Template inputs can be referenced. |
|
The path of a template file, that shall be imported. Either this or template is required as a source for the Job Template “content”. |
|
The category the template should be assigend to |
|
List of locations the entity should be assigned to |
|
Determines whether the template shall be locked Choices:
|
|
The name of the Job 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 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 |
|
Determines via which provider the template shall be executed |
|
URL of the Foreman server. If the value is not specified in the task, the value of environment variable |
|
Determines whether the template shall be a snippet Choices:
|
|
State of the entity
Choices:
|
|
The content of the Job Template. Either this or file_name is required as a source for the Job Template “content”. |
|
The template inputs used in the Job Template |
|
Template Input is advanced Choices:
|
|
description of the Template Input |
|
Fact name to use. Required when input_type=fact. |
|
input type Choices:
|
|
name of the Template Input |
|
Template values for user inputs. Must be an array of any type. |
|
Puppet class name. Required when input_type=puppet_parameter. |
|
Puppet parameter name. Required when input_type=puppet_parameter. |
|
Is the input required Choices:
|
|
Type of the resource |
|
Type of the value Choices:
|
|
Variable name to use. Required when input_type=variable. |
|
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:
|
Examples
- name: "Create a Job Template inline"
theforeman.foreman.job_template:
username: "admin"
password: "changeme"
server_url: "https://foreman.example.com"
name: A New Job Template
state: present
template: |
<%#
name: A Job Template
%>
rm -rf <%= input("toDelete") %>
template_inputs:
- name: toDelete
input_type: user
locations:
- Gallifrey
organizations:
- TARDIS INC
- name: "Create a Job Template from a file"
theforeman.foreman.job_template:
username: "admin"
password: "changeme"
server_url: "https://foreman.example.com"
name: a new job template
file_name: timeywimey_template.erb
template_inputs:
- name: a new template input
input_type: user
state: present
locations:
- Gallifrey
organizations:
- TARDIS INC
- name: "remove a job template's template inputs"
theforeman.foreman.job_template:
username: "admin"
password: "changeme"
server_url: "https://foreman.example.com"
name: a new job template
template_inputs: []
state: present
locations:
- Gallifrey
organizations:
- TARDIS INC
- name: "Delete a Job Template"
theforeman.foreman.job_template:
username: "admin"
password: "changeme"
server_url: "https://foreman.example.com"
name: timeywimey
state: absent
- name: "Create a Job Template from a file and modify with parameter(s)"
theforeman.foreman.job_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 Job templates
theforeman.foreman.job_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 your Job Templates
theforeman.foreman.job_template:
server_url: "https://foreman.example.com"
username: "admin"
password: "changeme"
state: present
template: '{{ lookup("file", item.src) }}'
with_filetree: '/path/to/job/templates'
when: item.state == 'file'
# with name set to "*" bulk actions can be performed
- name: "Delete *ALL* Job Templates"
theforeman.foreman.job_template:
username: "admin"
password: "changeme"
server_url: "https://foreman.example.com"
name: "*"
state: absent
- name: "Assign all Job Templates to the same organization(s)"
theforeman.foreman.job_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 job templates. Returned: success |
|
List of template inputs associated with the job template. Returned: success |
Authors
Manuel Bonk (@manuelbonk) ATIX AG
Matthias Dellweg (@mdellweg) ATIX AG