GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen und verwenden Sie benutzerdefinierte Fakten in Ansible

Benutzerdefinierte Fakten (lokale Fakten) sind die Variablen, die auf einem ansible verwalteten Host deklariert werden. Benutzerdefinierte Fakten werden in der INI- oder JSON-Datei im Verzeichnis /etc/ansible/facts.d auf dem verwalteten Host deklariert. Dateinamen von benutzerdefinierten Fakten müssen die Erweiterung .fact haben.

In diesem Artikel behandeln wir, wie Sie benutzerdefinierte Fakten erstellen und verwenden, um den Samba-Dateiserver zu installieren und seinen Dienst auf einem von Ansible verwalteten Host zu starten. Hier verwenden wir host1 und host2 als Teil der Dateiservergruppe im Inventar.

Um benutzerdefinierte Fakten zu demonstrieren, folgt mein Laboraufbau

  • control.example.com – 10.20.0.57
  • host1.example.com   —  10.20.0.10       // Ansible Managed Host
  • host3.example.com   — 10.20.0.30         // Ansible Managed Hosts

Hinweis: Der devops-Benutzer ist auf Ansible Control und verwalteten Hosts mit sudo-Rechten konfiguriert. Die Datei Inventory und ansible.cfg ist im Verzeichnis /home/develops/install definiert. Der Inhalt meines Inventars wird unten angezeigt:

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

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

Logische Schritte zum Deklarieren und Verwenden benutzerdefinierter lokaler Fakten sind

  • Erstellen Sie eine Faktendatei auf einem ansiblen Steuerhost mit der Erweiterung .fact
  • Erstellen Sie einen Spielzug im Playbook, um einen Ordner „/etc/ansible/facts.d“ zu erstellen, und kopieren Sie die Faktendatei auf verwalteten Hosts in diesen Ordner.
  • Erstellen Sie ein zweites Play im Playbook, das diese benutzerdefinierten Fakten verwendet, indem Sie ansible_local... verwenden, um den Samba-Server zu installieren und seinen Dienst zu starten.

Lassen Sie uns in die tatsächliche Implementierung von benutzerdefinierten oder lokalen Gegebenheiten eintauchen.

Schritt 1) ​​Erstellen Sie eine benutzerdefinierte Faktendatei auf dem Kontrollknoten

Lassen Sie uns die Datei customfacts.fact mit folgendem Inhalt erstellen

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

Hier ist localfacts factname und pkgname &srvc sind Variablen.

Schritt 2) Erstellen Sie ein Playbook mit zwei verschiedenen Stücken

Playbook customfacts-install.yaml mit folgendem Inhalt erstellen

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

Speichern und beenden Sie die Datei.

Schritt 3) Führen Sie das Playbook auf Dateiservern aus

Wir werden das Playbook auf Dateiservern ausführen, bevor wir es ausführen, lassen Sie uns die Konnektivität vom Kontrollknoten zu diesen Knoten überprüfen.

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

Oben wird bestätigt, dass Ping Pong gut funktioniert, also lassen Sie uns das ansible Playbook mit dem Befehl below ausführen,

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

Die obige Ausgabe zeigt, dass das Playbook erfolgreich ausgeführt wurde. Lassen Sie uns die Installation von benutzerdefinierten Fakten und dem Samba-Dienst überprüfen.

Schritt 5) Benutzerdefinierte lokale Fakten und Samba-Dienst überprüfen

Führen Sie den folgenden ansiblen Ad-hoc-Befehl aus, um die Installation benutzerdefinierter Fakten zu überprüfen,

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

Überprüfen Sie den Dienststatus des Samba-Servers, indem Sie Folgendes ausführen:

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

Die perfekte obige Ausgabe bestätigt, dass Samba erfolgreich installiert wurde und sein Dienst läuft.

Das war alles aus diesem Artikel. Ich hoffe, Sie haben die Grundidee über die Installation von benutzerdefinierten Fakten und deren Verwendung verstanden.


Linux
  1. Wie ich Ansible und Anacron für die Automatisierung verwende

  2. So erstellen und verwenden Sie Subdomains

  3. So installieren und verwenden Sie Ansible unter Debian 11

  4. So verwenden Sie GParted zum einfachen Erstellen und Ändern der Größe von Partitionen

  5. So erstellen Sie einen Alias ​​und verwenden den Alias-Befehl in Linux

So erstellen Sie ein Amazon Machine Image (AMI) und verwenden es auf AWS

So definieren und verwenden Sie Handler in Ansible Playbooks

So erstellen und führen Sie eine Ansible Playbook-Datei aus

Wie man Ansible verwendet, um Vim zu konfigurieren

So installieren und verwenden Sie Ansible unter Debian 10

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux