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.