GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer et utiliser des faits personnalisés dans Ansible

Les faits personnalisés (faits locaux) sont les variables qui sont déclarées sur un hôte géré ansible. Les faits personnalisés sont déclarés dans un fichier ini ou json dans le répertoire /etc/ansible/facts.d sur l'hôte géré. Les noms de fichier des faits personnalisés doivent avoir l'extension .fact.

Dans cet article, nous expliquerons comment créer et utiliser des faits personnalisés pour installer le serveur de fichiers Samba et démarrer son service sur un hôte géré ansible. Ici, nous utilisons host1 et host2 dans le cadre du groupe de serveurs de fichiers dans l'inventaire.

Pour démontrer des faits personnalisés, voici la configuration de mon laboratoire

  • control.example.com :  10.20.0.57
  • host1.example.com   —  10.20.0.10       // Hôte géré par Ansible
  • host3.example.com   — 10.20.0.30         // Hôtes gérés Ansible

Remarque : l'utilisateur devops est configuré sur un contrôle ansible et des hôtes gérés avec des droits sudo. L'inventaire et le fichier ansible.cfg sont définis dans le répertoire /home/develops/install. Le contenu de mon inventaire est affiché ci-dessous :

[[email protected] install]$ cat inventory
[fileservers]
host1.example.com
host3.example.com

[dbservers]
host2.example.com
host1.example.com
[[email protected] install]$

Les étapes logiques pour déclarer et utiliser des faits locaux personnalisés sont

  • Créer un fichier de faits sur l'hôte de contrôle ansible avec l'extension .fact
  • Créez une lecture dans le playbook pour créer un dossier "/etc/ansible/facts.d" et copiez le fichier de faits sur les hôtes gérés sur ce dossier.
  • Créez une deuxième lecture dans le playbook qui utilisera ces faits personnalisés en utilisant ansible_local... pour installer le serveur Samba et démarrer son service.

Plongeons-nous dans la mise en œuvre réelle de faits personnalisés ou locaux.

Étape 1) Créer un fichier de faits personnalisés sur le nœud de contrôle

Créons le fichier customfacts.fact avec le contenu suivant

[[email protected] install]$ cat customfacts.fact
[localfacts]
pkgname = samba
srvc = smb
[[email protected] install]$

Ici localfacts est factname et pkgname &srvc sont des variables.

Étape 2) Créez un livre de jeu avec deux jeux différents

Créez un playbook customfacts-install.yaml avec le contenu suivant

[[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

enregistrez et quittez le fichier.

Étape 3) Exécutez le playbook sur les serveurs de fichiers

Nous allons exécuter le playbook sur des serveurs de fichiers, avant de l'exécuter, vérifions la connectivité du nœud de contrôle vers ces nœuds.

[[email protected] install]$ ansible fileservers -m ping

Ci-dessus confirme que le ping-pong fonctionne bien, alors exécutons le playbook ansible en utilisant la commande ci-dessous,

[[email protected] install]$ ansible-playbook customfacts-install.yaml

La sortie ci-dessus montre que le playbook a été exécuté avec succès. Vérifions l'installation des faits personnalisés et du service Samba.

Étape 5) Vérifier les faits locaux personnalisés et le service Samba

Exécutez la commande ansible ad hoc ci-dessous pour vérifier l'installation des faits personnalisés,

[[email protected] install]$ ansible fileservers -m setup -a "filter=ansible_local"

Vérifiez l'état du service du serveur Samba en exécutant ci-dessous :

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

Parfait, la sortie ci-dessus confirme que Samba a été installé avec succès et que son service est opérationnel.

C'est tout de cet article, j'espère que vous avez compris l'idée de base de l'installation des faits personnalisés et de son utilisation.


Linux
  1. Comment j'utilise Ansible et anacron pour l'automatisation

  2. Comment créer et utiliser des sous-domaines

  3. Comment installer et utiliser Ansible sur Debian 11

  4. Comment utiliser GParted pour créer et redimensionner facilement des partitions

  5. Comment créer un alias et utiliser la commande Alias ​​sous Linux

Comment créer une Amazon Machine Image (AMI) et l'utiliser sur AWS

Comment définir et utiliser des gestionnaires dans des playbooks Ansible

Comment créer et exécuter un fichier Playbook Ansible

Comment utiliser Ansible pour configurer Vim

Comment installer et utiliser Ansible sur Debian 10

Comment créer et utiliser un fichier d'échange sous Linux