:source: foreman_provisioning_template.py :orphan: .. _foreman_provisioning_template_module: foreman_provisioning_template -- Manage Provisioning Template in Foreman ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. contents:: :local: :depth: 1 Synopsis -------- - Manage Foreman Provisioning Template Requirements ------------ The below requirements are needed on the host that executes this module. - apypie Parameters ---------- .. raw:: html
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
    Choices:
  • finish
  • iPXE
  • job_template
  • POAP
  • provision
  • ptable
  • PXELinux
  • PXEGrub
  • PXEGrub2
  • script
  • snippet
  • user_data
  • ZTP
The provisioning template kind
locations
list
The locations the template should be assigend to
locked
boolean
    Choices:
  • no
  • yes
Determines whether the template shall be locked
name
string
The name a template should be assigned with in Foreman. A name must be provided. Possible sources are, ordererd by preference: The "name" parameter, config header (inline or in a file), basename of a file. The special name "*" (only possible as parameter) is used to perform bulk actions (modify, delete) on all existing templates.
operatingsystems
list
The Operatingsystems the template shall be assigned to
organizations
list
The organizations the template shall be assigned to
password
string / required
Password of the user accessing the Foreman server
server_url
string / required
URL of the Foreman server
state
string
    Choices:
  • absent
  • present ←
  • present_with_defaults
The state the template should be in
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".
username
string / required
Username accessing the Foreman server
validate_certs
boolean
    Choices:
  • no
  • yes ←
Whether or not to verify the TLS certificates of the Foreman server

aliases: verify_ssl

Examples -------- .. code-block:: yaml+jinja # Keep in mind, that in this case, the inline parameters will be overwritten - name: "Create a Provisioning Template inline" 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" 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" 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" 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" 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 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" local_action: module: foreman_provisioning_template username: "admin" password: "admin" server_url: "https://foreman.example.com" name: "*" state: absent - name: "Assign all provisioning templates to the same organization(s)" local_action: module: foreman_provisioning_template username: "admin" password: "admin" server_url: "https://foreman.example.com" name: "*" state: present organizations: - DALEK INC - sky.net - Doc Brown's garage Status ------ - This module is not guaranteed to have a backwards compatible interface. *[preview]* - This module is :ref:`maintained by the Ansible Community `. *[community]* Authors ~~~~~~~ - Bernhard Hopfenmueller (@Fobhep) ATIX AG - Matthias Dellweg (@mdellweg) ATIX AG .. hint:: If you notice any issues in this documentation you can `edit this document `_ to improve it.