GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Ansible unter CentOS 7 / RHEL 7 / Ubuntu 18.04 / 16.04 und Debian 9

Ansibel ist ein kostenloses Konfigurationsverwaltungstool und unterstützt die Verwaltung der Konfigurationen von Unix-ähnlichen und Microsoft Windows-Systemen. Ansibel verwaltet Knoten über SSH oder PowerShell und Python, um darauf installiert zu werden.

Ansibel hilft Ihnen bei der Konfiguration, Verwaltung und Bereitstellung von Software auf Hunderten von Knoten mit SSH, der gesamte Vorgang kann mit einem einzigen Befehl ansible ausgeführt werden . In einigen Fällen müssen Sie jedoch möglicherweise mehrere Befehle für die Bereitstellung ausführen.

Diese Anleitung hilft Ihnen bei der Installation von Ansible unter CentOS 7 / Ubuntu 18.04 / Ubuntu 16.04 / Debian 9 .

Architektur

Wenn Sie andere Konfigurationsverwaltungstools wie Puppet, Chef und CFEngine verwenden, wird die Serversoftware auf einem Computer installiert und die Clientcomputer werden über den Agenten verwaltet. Bei Ansible werden die Knoten verwaltet, indem der Computer (Ansible-Server) über SSH gesteuert wird, sodass auf den Knotencomputern kein Agent ausgeführt wird.

Ansible stellt Module über SSH auf Knoten bereit, und diese Module werden vorübergehend in den Knoten gespeichert und kommunizieren mit dem Ansible-Server über ein JSON-Protokoll. Module sind nichts anderes als ein in Python, Perl, Ruby geschriebenes Skript , bash usw.

Systemanforderungen

Steuerungsmaschine

Sie können Ansible auf jedem Computer ausführen, auf dem Python 2.6 oder 2.7 installiert ist (Windows wird für den Kontrollcomputer nicht unterstützt).

Unterstützt Red Hat, Debian, CentOS, OS X und alle BSDs.

Client-Knoten

Clientcomputer sollten mindestens über Python 2 (Version 2.6 oder höher) oder Python 3 (Version 3.5 oder höher) verfügen

Wenn Sie SELinux auf Remote-Knoten aktiviert haben, müssen Sie libselinux-python installieren Paket auf Knoten, bevor Sie Kopier-/Datei-/Vorlagenfunktionen in Ansible

verwenden

Umgebung

Hostname IP-Adresse Betriebssystem Zweck
server.itzgeek.local 192.168.1.10 CentOS 7 / Ubuntu 18.04 / Debian 9 Steuermaschine
node1.itzgeek.local 192.168.1.20 CentOS 7 Verwalteter Knoten 1
node2.itzgeek.local 192.168.1.30 Ubuntu 18.04 Verwalteter Knoten 2

Installieren Sie Ansible auf CentOS 7 / RHEL 7 / Ubuntu 18.04 / 16.04 &Debian 9

Steuerungsgerät einrichten

Um Ansible zu installieren, müssen wir EPEL-Repository auf CentOS 7 / RHEL 7 aktivieren .

### CentOS 7 ###

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

### RHEL 7 ###

subscription-manager repos --enable rhel-7-server-ansible-2.6-rpms

### Ubuntu 18.04 / Ubuntu 16.04 ###

sudo apt-get update
sudo apt-get install software-properties-common 
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update 

### Debian 9 ###

sudo apt-get install dirmngr
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list.d/ansible.list
sudo apt-get update

Installieren Sie Ansible.

### CentOS 7 / RHEL 7 & Fedora 28 ###

yum install -y ansible

### Ubuntu 18.04 / 16.04 & Debian 9 ###

sudo apt-get install -y ansible

Überprüfen Sie nach der Installation von Ansible die Version von Ansible, indem Sie den folgenden Befehl ausführen.

ansible --version

Ausgabe:

ansible 2.6.3
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]

Verwaltete Knoten einrichten

Clientcomputer sollten mindestens über Python 2 (Version 2.6 oder höher) oder Python 3 (Version 3.5 oder höher) verfügen.

### CentOS 7 / RHEL 7 & Fedora ###

yum install -y python

### Ubuntu 18.04 / 16.04 & Debian 9 ###

sudo apt-get install -y python

SELinux (CentOS / RHEL / Fedora)

Wenn Sie SELinux auf verwalteten Knoten aktiviert haben, müssen Sie das folgende Paket auf Knoten installieren, bevor Sie Kopier-/Datei-/Vorlagenfunktionen in Ansible verwenden können.

yum install -y libselinux-python

SSH-Authentifizierung

Wie bereits erwähnt, verwendet Ansible natives OpenSSH für die Remotekommunikation. Ansible unterstützt sowohl kennwortlos und Passwort Authentifizierung zum Ausführen von Befehlen auf verwalteten Knoten.

SSH-Schlüsselauthentifizierung (passwortlose Authentifizierung)

Bei der SSH-Authentifizierung werden standardmäßig SSH-Schlüssel (passwortlose Authentifizierung) verwendet, um sich beim Remote-Rechner zu authentifizieren.

LESEN :So richten Sie die passwortlose SSH-Anmeldung unter CentOS 7 / RHEL 7 ein

Obwohl der obige Link für CentOS gilt, funktionieren die darin enthaltenen Schritte auch für Ubuntu / Debian.

Nachdem Sie die passwortlose Kommunikation eingerichtet haben, überprüfen Sie sie.

ssh [email protected]
ssh [email protected]

Sie sollten sich jetzt ohne Passwort beim Remote-Rechner anmelden können.

Passwortauthentifizierung

Die Kennwortauthentifizierung kann bei Bedarf auch verwendet werden, indem die Option --ask-pass bereitgestellt wird . Diese Option erfordert sshpass an die ansteuernde Maschine.

### CentOS 7 / RHEL 7 & Fedora ### 

yum install -y sshpass 

### Ubuntu 18.04 / 16.04 & Debian 9 ### 

sudo apt-get update
sudo apt-get install -y sshpass
Hier habe ich für diese Demo passwortlose Kommunikation zwischen Ansible-Steuerknoten und den verwalteten Knoten verwendet.
Benutzername des Ansible-Servers =root
Benutzername des verwalteten Knotens =raj

Ansible-Inventar erstellen

Bearbeiten (oder erstellen) Sie /etc/ansible/hosts Datei. Diese Datei enthält das Inventar von Remote-Hosts, mit denen sich Ansible über SSH verbindet, um sie zu verwalten.

### CentOS 7 / RHEL 7 & Fedora ###

vi /etc/ansible/hosts

### Ubuntu 18.04 / 16.04 & Debian 9 ###

sudo nano /etc/ansible/hosts

Setzen Sie ein oder mehrere Remote-Systeme ein und gruppieren Sie sie. Hier habe ich beide Maschinen zur Demo-Server-Gruppe hinzugefügt.

Gruppen werden verwendet, um Systeme für eine bestimmte Verwendung zu klassifizieren. Wenn Sie keine Gruppe angeben, fungieren sie als nicht gruppierte Hosts.

[demo-servers]
192.168.1.20
192.168.1.30

Erster Befehl

Jetzt ist es an der Zeit, alle unsere Knoten zu überprüfen, indem Sie einfach einen Ping von der steuernden Maschine ausführen. Dazu verwenden wir den Befehl ansible mit Optionen -m (Modul laden) und alle (alle Server).

# all servers - Works when both server's and client's user name are same (Passwordless)

ansible all -m ping

# all servers - "raj" is managed node's user (Passwordless)

ansible all -u raj -m ping

OR

# Only demo-servers group - "raj" is managed node's user (Passwordless)

ansible demo-servers -u raj -m ping

OR

# If you use password authendication

ansible -m ping all -u raj --ask-pass

Ausgabe:

192.168.1.20 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.30 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Im obigen Beispiel haben wir das Ping-Modul mit ansible verwendet Befehl, um alle oder eine Gruppe von Remote-Hosts zu pingen.

Auf die gleiche Weise können wir verschiedene Module mit ansible verwenden Befehl finden Sie verfügbare Module hier .

Hier habe ich für diese Demo passwortlose Kommunikation zwischen Ansible-Steuerknoten und den verwalteten Knoten verwendet.
Benutzername des Ansible-Servers =root
Benutzername des verwalteten Knotens =raj
Also haben alle meine Ansible-Befehle -u raj

Remote-Befehlsausführung

Dieses Mal verwenden wir den Befehl Modul mit ansible Befehl zum Abrufen von Remote-Maschineninformationen.

Zum Beispiel führen wir hostname aus Befehl mit Befehl Modul, um den Hostnamen entfernter Hosts auf einmal zu erhalten.

ansible -m command -a "hostname" -u raj demo-servers

Ausgabe:

192.168.1.30 | SUCCESS | rc=0 >>
node2.itzgeek.local

192.168.1.20 | SUCCESS | rc=0 >>
node1.itzgeek.local

Mit dem folgenden Befehl erhalten wir Partitionsdetails.

ansible -m command -a "df -hT" -u raj demo-servers

Ausgabe:

192.168.1.30 | SUCCESS | rc=0 >>
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     395M  1.5M  393M   1% /run
/dev/sda4      ext4       94G  4.9G   84G   6% /
tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs          tmpfs     5.0M  4.0K  5.0M   1% /run/lock
tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0     squashfs   87M   87M     0 100% /snap/core/4486
/dev/loop3     squashfs  3.4M  3.4M     0 100% /snap/gnome-system-monitor/36
/dev/loop1     squashfs  1.7M  1.7M     0 100% /snap/gnome-calculator/154
/dev/loop2     squashfs  141M  141M     0 100% /snap/gnome-3-26-1604/59
/dev/loop4     squashfs   21M   21M     0 100% /snap/gnome-logs/25
/dev/loop5     squashfs   88M   88M     0 100% /snap/core/5328
/dev/loop6     squashfs   13M   13M     0 100% /snap/gnome-characters/69
/dev/sda1      vfat       93M  4.6M   88M   5% /boot/efi
tmpfs          tmpfs     395M   28K  395M   1% /run/user/120
tmpfs          tmpfs     395M   36K  395M   1% /run/user/1000
/dev/loop7     squashfs   15M   15M     0 100% /snap/gnome-logs/40

192.168.1.20 | SUCCESS | rc=0 >>
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        50G  1.1G   49G   3% /
devtmpfs                devtmpfs  1.4G     0  1.4G   0% /dev
tmpfs                   tmpfs     1.5G     0  1.5G   0% /dev/shm
tmpfs                   tmpfs     1.5G  8.5M  1.4G   1% /run
tmpfs                   tmpfs     1.5G     0  1.5G   0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  188M  827M  19% /boot
/dev/mapper/centos-home xfs        46G   33M   46G   1% /home
tmpfs                   tmpfs     287M     0  287M   0% /run/user/1000
tmpfs                   tmpfs     287M     0  287M   0% /run/user/0

Um die Betriebszeit zu überprüfen und Details auf beiden Knoten zu laden.

 ansible -m command -a "uptime" -u raj demo-servers

Ausgabe:

192.168.1.30 | SUCCESS | rc=0 >>
 16:36:45 up 56 min,  3 users,  load average: 0.00, 0.00, 0.00

192.168.1.20 | SUCCESS | rc=0 >>
 16:36:45 up  1:09,  2 users,  load average: 0.05, 0.04, 0.05

Sie können auch den Inhalt der jeweiligen Datei prüfen.

ansible -m command -a "cat /etc/resolv.conf" -u raj demo-servers

Ausgabe:

192.168.1.30 | SUCCESS | rc=0 >>
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53

192.168.1.20 | SUCCESS | rc=0 >>
# Generated by NetworkManager
search itzgeek.local
nameserver 8.8.8.8
nameserver 192.168.1.1

Sie können die Ausgabe auch in einer beliebigen Datei speichern, indem Sie wie unten beschrieben umleiten.

ansible -m command -a "cat /etc/resolv.conf" -u raj demo-servers > /tmp/ouput_file

cat /tmp/ouput_file

Auf diese Weise können Sie viele Shell-Befehle mit Ansible ausführen.

Sie haben Ansible jetzt erfolgreich auf CentOS 7 installiert / Ubuntu 18.04 / Ubuntu 16.04 / Debian 9 .

MEHR LESEN :So erstellen Sie Ansible Playbooks für die IT-Automatisierung

Das ist alles.


Cent OS
  1. So installieren Sie Apache Hadoop unter CentOS 7, Ubuntu 18.04 und Debian 9

  2. So installieren Sie Redis unter CentOS 7 / RHEL 7 und Ubuntu 18.04 / Ubuntu 16.04

  3. So installieren Sie Ansible unter Debian 11

  4. So installieren Sie Ansible unter CentOS 8

  5. So installieren Sie SSHFS auf CentOS/RHEL/Ubuntu

So installieren Sie Kubernetes unter CentOS 7, Ubuntu 18.04 / 16.04 und Debian 9

So installieren und konfigurieren Sie Ansible unter CentOS 8 / RHEL 8

So installieren Sie TeamViewer 15 auf Fedora/RHEL/CentOS und Debian/Ubuntu

So installieren Sie VestaCP auf Ubuntu/Debian und RHEL/Centos

So installieren Sie Zabbix auf RHEL/CentOS und Debian/Ubuntu

So installieren Sie TeamViewer 15 auf RHEL/CentOS/Fedora und Debian/Ubuntu