theforeman.foreman.job_template 模块 – 管理作业模板

注意

此模块是 theforeman.foreman 集合(版本 4.2.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install theforeman.foreman。您需要更多要求才能使用此模块,请参阅要求了解详细信息。

要在 playbook 中使用它,请指定:theforeman.foreman.job_template

theforeman.foreman 1.0.0 中的新功能

概要

  • 管理远程执行作业模板

别名:foreman_job_template

要求

执行此模块的主机上需要满足以下要求。

  • requests

参数

参数

注释

audit_comment

字符串

审计注释字段的内容

description_format

字符串

作业模板的描述。可以引用模板输入。

file_name

路径

要导入的模板文件的路径。

需要此项或 template 作为作业模板“内容”的来源。

job_category

字符串

模板应分配到的类别

locations

列表 / 元素=字符串

应将实体分配到的位置列表

locked

布尔值

确定是否应锁定模板

选项

  • false ←(默认)

  • true

name

字符串

作业模板的名称。

如果省略,将从模板的 name 标头或文件名(按此顺序)确定。

特殊值“*”可用于对所有现有模板执行批量操作(修改、删除)。

organizations

列表 / 元素=字符串

应将实体分配到的组织列表

password

字符串 / 必需

访问 Foreman 服务器的用户的密码。

如果未在任务中指定值,则将改用环境变量 FOREMAN_PASSWORD 的值。

provider_type

字符串

确定应通过哪个提供程序执行模板

server_url

字符串 / 必需

Foreman 服务器的 URL。

如果未在任务中指定值,则将改用环境变量 FOREMAN_SERVER_URL 的值。

snippet

布尔值

确定模板是否应为代码片段

选项

  • false

  • true

state

字符串

实体的状态

present_with_defaults 将确保实体存在,但不会更新现有实体

选项

  • "present" ←(默认)

  • "present_with_defaults"

  • "absent"

template

字符串

作业模板的内容。

需要此项或 file_name 作为作业模板“内容”的来源。

template_inputs

列表 / 元素=字典

作业模板中使用的模板输入

advanced

布尔值

模板输入是高级的

选项

  • false

  • true

default

字符串

在 theforeman.foreman 3.8.0 中添加

用户输入的默认值

description

字符串

模板输入的描述

fact_name

字符串

要使用的 Fact 名称。

input_type=fact 时为必需。

hidden_value

布尔值

该值包含敏感信息,通常不应可见,例如,对密码很有用

选项

  • false

  • true

input_type

字符串 / 必需

输入类型

选项

  • "user"

  • "fact"

  • "variable"

  • "puppet_parameter"

name

字符串 / 必需

模板输入的名称

options

列表 / 元素=任何

用户输入的模板值。必须是任何类型的数组。

puppet_class_name

字符串

Puppet 类名。

input_type=puppet_parameter 时为必需。

puppet_parameter_name

字符串

Puppet 参数名称。

input_type=puppet_parameter 时为必需。

required

布尔值

是否需要输入

选项

  • false

  • true

resource_type

字符串

资源类型

value_type

字符串

值类型

选项

  • "plain"

  • "search"

  • "date"

  • "resource"

variable_name

字符串

要使用的变量名称。

input_type=variable 时为必需。

username

字符串 / 必需

访问 Foreman 服务器的用户名。

如果未在任务中指定值,则将改用环境变量 FOREMAN_USERNAME 的值。

validate_certs

布尔值

是否验证 Foreman 服务器的 TLS 证书。

如果任务中未指定该值,则将使用环境变量 FOREMAN_VALIDATE_CERTS 的值。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 中运行并返回更改状态预测,而无需修改实体

diff_mode

支持: 完全

在 diff 模式下,将返回有关已更改的内容(或可能需要在 check_mode 中更改的内容)的详细信息

示例

- 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) }}'
    name: '{{ item.path }}'
  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

返回值

通用返回值记录在此处 这里,以下是此模块特有的字段

描述

实体

字典

受影响实体的最终状态,按其类型分组。

返回: 成功

job_templates

列表 / 元素=字典

作业模板列表。

返回: 成功

template_inputs

列表 / 元素=字典

与作业模板关联的模板输入列表。

返回: 成功

作者

  • Manuel Bonk (@manuelbonk) ATIX AG

  • Matthias Dellweg (@mdellweg) ATIX AG