ansible常用模块 -- set_fact模块 -- 从任务中设置宿主事实

ansible常用模块 -- set_fact模块 -- 从任务中设置宿主事实

  • set_fact模块 -- 从任务中设置宿主事实
    • 一、摘要
    • 二、参数
    • 三、示例

set_fact模块 – 从任务中设置宿主事实

一、摘要

  • 这个模块允许设置新变量。
  • 变量是在逐个主机的基础上设置的,就像设置模块发现的事实一样。
  • 这些变量将在后续的ansible-playbook作业中使用。
  • 将cacheable设置为yes以使用事实缓存在执行过程中保存变量。使用set_fact创建的变量具有不同的优先级,这取决于它们是否被缓存。
  • 根据标准的Ansible变量优先级规则,许多其他类型的变量具有更高的优先级,因此这个值可能会被覆盖。
  • Windows目标也支持此模块。

二、参数

参数 选项/默认值 描述
cacheable
boolean
· no ←
· yes
这个布尔值将变量转换为一个实际的“事实”,如果启用了事实缓存,这个“事实”也将被添加到事实缓存中。
通常这个模块创建“主机级变量”,并具有更高的优先级,这个选项改变了创建变量的性质和优先级(7步)。
这实际上创建了该变量的两个副本,一个是具有高优先级的普通’set_fact’主机变量,另一个是通过事实缓存插件持久化的’ansible_fact’主机变量。这可能会与meta: clear_facts产生令人困惑的交互,因为它将删除’ansible_fact’而不是主机变量。
key_value
required
set_fact模块将key=value对作为变量在playbook作用域中进行设置。或者,使用args: statement接受复杂参数。

三、示例

# Example setting host facts using key=value pairs, note that this always creates strings or booleans
- set_fact: one_fact="something" other_fact="{{ local_var }}"

# Example setting host facts using complex arguments
- set_fact:
     one_fact: something
     other_fact: "{{ local_var * 2 }}"
     another_fact: "{{ some_registered_var.results | map(attribute='ansible_facts.some_fact') | list }}"

# Example setting facts so that they will be persisted in the fact cache
- set_fact:
    one_fact: something
    other_fact: "{{ local_var * 2 }}"
    cacheable: yes

# As of Ansible 1.8, Ansible will convert boolean strings ('true', 'false', 'yes', 'no')
# to proper boolean values when using the key=value syntax, however it is still
# recommended that booleans be set using the complex argument style:
- set_fact:
    one_fact: yes
    other_fact: no

官方文档:https://docs.ansible.com/ansible/2.9/modules/set_fact_module.html#set-fact-module

你可能感兴趣的:(ansible,ansible,运维,服务器,linux)