Cómo crear y usar datos personalizados en Ansible

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.

Customfacts-ansible-playbook

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

ping-pong-test-ansible

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

Customfacts-Ansible-playbook-ejecución

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"

Customfacts-instalación-verificación

Verifique el estado del servicio del servidor samba ejecutando a continuación:

[[email protected] install]$ ansible fileservers -m command -a "systemctl status smb"

Ansible-Ad-hoc-command-verify-samba-installation

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

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *