Ansible Module set fact: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 22: Line 22:
=Setting Command Output as a Fact=
=Setting Command Output as a Fact=
{{Internal|Ansible_Module_command#Setting_Command_Output_as_a_Fact|Setting Command Output as a Fact}}
{{Internal|Ansible_Module_command#Setting_Command_Output_as_a_Fact|Setting Command Output as a Fact}}
=Setting a Fact by Processing the Content of a Variable=
=Setting a Fact by Processing the Content of a Variable=
<syntaxhighlight lang='yaml'>
<syntaxhighlight lang='yaml'>
Line 27: Line 28:
   set_fact:
   set_fact:
     idea_apps: "{{ intellij_apps | to_json | from_json | json_query('files[?contains(path, `/apps/IDEA-`) == `true`]') | list }}"
     idea_apps: "{{ intellij_apps | to_json | from_json | json_query('files[?contains(path, `/apps/IDEA-`) == `true`]') | list }}"
 
</syntaxhighlight>
=Setting the Fact Only if the Variable Does Not Exist=
<syntaxhighlight lang='yaml'>
- name:
  when: some_var is not defined
  set_fact:
    some_var: "some value"
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 21:55, 6 July 2021

External

Internal

Overview

This module sets new facts (variables). The variables are set on a host-by-host basis just like facts discovered by the setup module and will be available to subsequent plays during an ansible-playbook run.

Set cacheable to yes to save variables across executions using a fact cache. Variables created with set_fact have different precedence depending on whether they are or are not cached. Per the standard Ansible variable precedence rules, many other types of variables have a higher priority, so this value may be overridden.

- name: Set bashrc.d directory path
  set_fact:
    bashrc_d: "{{ ansible_env.HOME }}/.bashrc.d"

Setting Command Output as a Fact

Setting Command Output as a Fact

Setting a Fact by Processing the Content of a Variable

- name: IDEA applications
  set_fact:
    idea_apps: "{{ intellij_apps | to_json | from_json | json_query('files[?contains(path, `/apps/IDEA-`) == `true`]') | list }}"

Setting the Fact Only if the Variable Does Not Exist

- name:
  when: some_var is not defined
  set_fact:
    some_var: "some value"