Note
This plugin 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
The below requirements are needed on the host that executes this module.
Parameter | Choices/Defaults | Comments | |
---|---|---|---|
audit_comment string | Content of the audit comment field | ||
description_format string | description of the job template. Template inputs can be referenced. | ||
file_name path | The path of a template file, that shall be imported. Either this or template is required as a source for the Job Template "content". | ||
job_category string | The category the template should be assigend to | ||
locations list / elements=string | List of locations the entity should be assigned to | ||
locked boolean |
| Determines whether the template shall be locked | |
name string | The name of the Job 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. | ||
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. | ||
provider_type string | Determines via which provider the template shall be executed | ||
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. | ||
snippet boolean |
| Determines whether the template shall be a snippet | |
state string |
| State of the entity present_with_defaults will ensure the entity exists, but won't update existing ones | |
template string | The content of the Job Template. Either this or file_name is required as a source for the Job Template "content". | ||
template_inputs list / elements=dictionary | The template inputs used in the Job Template | ||
advanced boolean |
| Template Input is advanced | |
description string | description of the Template Input | ||
fact_name string | Fact name to use. Required when input_type=fact. | ||
input_type string / required |
| input type | |
name string / required | name of the Template Input | ||
options list / elements=raw | Template values for user inputs. Must be an array of any type. | ||
puppet_class_name string | Puppet class name. Required when input_type=puppet_parameter. | ||
puppet_parameter_name string | Puppet parameter name. Required when input_type=puppet_parameter. | ||
required boolean |
| Is the input required | |
resource_type string | Type of the resource | ||
value_type string |
| Type of the value | |
variable_name string | Variable name to use. Required when input_type=variable. | ||
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. |
- 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
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. | |
job_templates list / elements=dictionary | success | List of job templates. | |
template_inputs list / elements=dictionary | success | List of template inputs associated with the job template. |
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/theforeman/foreman/job_template_module.html