Los hechos personalizados (hechos locales) son las variables que se declaran en el host administrado ansible. Los hechos personalizados se declaran en un archivo ini o json en el directorio /etc/ansible/facts.d en el host administrado. Los nombres de archivo de hechos personalizados deben tener la extensión .fact.
En este artículo, cubriremos cómo crear y usar hechos personalizados para instalar el servidor de archivos samba e iniciar su servicio en el host administrado ansible. Aquí estamos usando host1 y host2 como parte del grupo de servidores de archivos en el inventario.
Para demostrar hechos personalizados, la siguiente es mi configuración de laboratorio
- control.ejemplo.com — 10.20.0.57
- host1.example.com — 10.20.0.10 // Host administrado de Ansible
- host3.example.com — 10.20.0.30 // Hosts administrados de Ansible
Nota : El usuario devops está configurado en hosts administrados y de control ansible con derechos sudo. El inventario y el archivo ansible.cfg se definen en el directorio /home/develops/install. El contenido de mi inventario se muestra a continuación:
[[email protected] install]$ cat inventory [fileservers] host1.example.com host3.example.com [dbservers] host2.example.com host1.example.com [[email protected] install]$
Los pasos lógicos para declarar y usar hechos locales personalizados son
- Cree un archivo de hechos en el host de control ansible con la extensión .fact
- Cree una jugada en el libro de jugadas para crear una carpeta ‘/etc/ansible/facts.d’ y copie el archivo de hechos en los hosts administrados en esta carpeta.
- Cree una segunda jugada en el libro de jugadas que usará estos hechos personalizados usando ansible_local.
. . para instalar el servidor samba e iniciar su servicio.
Profundicemos en la implementación real de hechos personalizados o locales.
Paso 1) Cree un archivo de hechos personalizado en el nodo de control
Vamos a crear un archivo customfacts.fact con los siguientes contenidos
[[email protected] install]$ cat customfacts.fact [localfacts] pkgname = samba srvc = smb [[email protected] install]$
Aquí localfacts es factname y pkgname & srvc son variables.
Paso 2) Crea un libro de jugadas con dos jugadas diferentes
Cree el libro de jugadas customfacts-install.yaml con los siguientes contenidos
[[email protected] install]$ vi customfacts-install.yaml --- - name: Install custom facts hosts: fileservers vars: remote_dir: /etc/ansible/facts.d facts_file: customfacts.fact tasks: - name: Create Facts Dir on Managed Hosts file: path: "{{ remote_dir }}" state: directory recurse: yes - name: Copy Contents to Facts file copy: src: "{{ facts_file }}" dest: "{{ remote_dir }}" - name: Install Samba Server with Custom Facts hosts: fileservers tasks: - name: Install SMB package: name: "{{ ansible_local.customfacts.localfacts.pkgname }}" state: present - name: Start SMB Service service: name: "{{ ansible_local.customfacts.localfacts.srvc }}" state: started enabled: yes
Guardar y salir del archivo.
Paso 3) Ejecute el libro de jugadas en servidores de archivos
Ejecutaremos el libro de jugadas en los servidores de archivos, antes de ejecutarlo, verifiquemos la conectividad desde el nodo de control hacia estos nodos.
[[email protected] install]$ ansible fileservers -m ping
Arriba confirma que el ping pong funciona bien, así que ejecutemos el libro de jugadas ansible usando el comando debajo,
[[email protected] install]$ ansible-playbook customfacts-install.yaml
El resultado anterior muestra que el libro de jugadas se ha ejecutado correctamente. Verifiquemos la instalación de hechos personalizados y el servicio samba.
Paso 5) Verifique los datos locales personalizados y el servicio Samba
Ejecute debajo del comando ansible ad-hoc para verificar la instalación de hechos personalizados,
[[email protected] install]$ ansible fileservers -m setup -a "filter=ansible_local"
Verifique el estado del servicio del servidor samba ejecutando a continuación:
[[email protected] install]$ ansible fileservers -m command -a "systemctl status smb"
Perfecto, el resultado anterior confirma que Samba se ha instalado correctamente y que su servicio está en funcionamiento.
Eso es todo de este artículo, espero que tenga una idea básica sobre la instalación de hechos personalizados y su uso.
Leer también : Cómo usar controladores en Ansible Playbook