¿Qué es ansible set_fact?

¿Qué es ansible set_fact?
Las variables nos ayudan a personalizar libros y tareas de reproducción de Ansible para trabajar con diferentes sistemas de host y entornos de trabajo.

Si bien puede usar vars_file, vars o include_var para configurar variables en sus libros de jugadas, el módulo set_fact es una de las mejores maneras de hacerlo, principalmente debido a su flexibilidad.

Este tutorial explicará qué es Ansible set_fact, cómo funciona y cómo puede usarlo.

Comprender Ansible set_fact

A diferencia de otros módulos que le permiten establecer variables ansibles-pensan vars_file, vars o include_var- donde necesita conocer los valores variables de antemano, el módulo set_facts ansible le permite establecer variables fuera de la puta según sea necesario, a menudo en un host de host -Se-Host Case.

Las variables establecidas usando set_facts están disponibles para la ejecución de los libros de jugadas dentro de la misma jugada. Sin embargo, utilizando el parámetro almacenado en caché establecido en sí, puede convertir estas variables en hechos en el caché de hechos, haciéndolos ejecutables en el libro de jugadas con la precedencia de "hecho en caché".

Parámetros set_fact

Ansible set_fact admite los siguientes parámetros:

  • Caché: Este parámetro booleano tiene dos opciones: sí y no. Este parámetro convierte una variable set_fact en un "hecho" almacenado en la memoria caché de hechos, pero solo si tiene hechos de caché habilitado.
  • Valor clave: Variables establecidas utilizando el módulo set_fact Use la "clave = valor" -o "clave: valor" para pares de cadenas YAML, donde la clave es el nombre y el valor de la variable define el valor de la variable.

Las siguientes son algunas características esenciales del módulo set_fact.

  • La clave = valor-o clave: el parámetro de valor para yaml solo crea booleanos y cadenas, pero puede usar var: [val20, val30] para crear diccionarios o matrices.
  • Set_fact Crea valores variables estáticos
  • Variables establecidas utilizando set_fact Siga reglas de precedencia de variable ansible estándar; Por lo tanto, otros tipos variables con una prioridad más alta pueden anular el valor valioso establecido utilizando set_fact
  • No puede usar 'caqueable' como un nombre de hecho válido porque Ansible versión 2.4 y luego tenerlo como parámetro de módulo
  • Las variables de hecho de conjunto se basan en el host-host y están disponibles para las carreras posteriores de PlayBook Ansible
  • El módulo set_fact también admite objetivos de Windows

Ejemplo de set_fact

Veamos algunos ejemplos para ilustrar usando el set_fact.

En el ejemplo a continuación, usamos el set_fact para asignar un valor específico a una variable y crear un usuario.

---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: Crear usuario.
set_fact:
Nombre de usuario: Linuxhint
usuario:
Nombre: "nombre de usuario"
Grupo: "nombre de usuario"
Shell: /bin /Bash

En el ejemplo anterior, usamos el módulo set_fact para crear un usuario en un host remoto.

Otro ejemplo es usar el set_fact con condicionales. Por ejemplo:

---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: Apache
set_fact:
PKG: "Apache2"
Cuándo: ansible_distribution == "Debian" o ansible_distribution == "Ubuntu"
- Nombre: httpd
set_fact:
PKG: "httpd"
Cuándo: ansible_distribution == 'centos' o ansible_distribution == 'Red Hat Enterprise Linux'

En el libro de jugadas de ejemplo anterior, establecemos el paquete en Apache2 cuando la distribución es Debian o Ubuntu y Httpd para CentOS y REHL.

Clausura

El módulo Set_fact de Ansible le permite agregar flexibilidad a sus libros de jugadas en función de la información recopilada del host.

Gracias por leer!