Ansible ist ein Konfigurationsmanagement- und Anwendungsbereitstellungstool. Seine Funktionen ähneln den aktuellen Branchen-Konfigurationsmanagementtools Chef, Puppet und Saltstack. Ansible wird mit der Python-Sprache entwickelt. Die Ansible-Plattform wurde von Michael DeHaan, dem Autor der bekannten Software Cobbler and Func, erstellt. Die erste Version von Ansible wurde im Februar 2012 veröffentlicht. Ansible verwaltet Maschinen standardmäßig über das SSH-Protokoll, sodass Ansible kein Client-Programm auf dem Server installieren muss. Sie müssen Ansible nur auf einem Server installieren. Nach der Installation von Ansible können Sie andere Server verwalten und steuern. Es ist nicht erforderlich, eine Datenbank dafür zu konfigurieren, und Ansible startet nicht und läuft auch nicht als Daemon weiter. Ansible kann folgende Ziele erreichen:
Laut den offiziellen Informationen von Ansible gehören zu den Benutzern, die Ansible derzeit nutzen: Evernote, Rackspace, NASA, Atlassian, Twitter usw.
Hinweis: Die obige Einführung stammt aus der Einführung von IBM Developerworks China.
Nehmen Sie Centos als Beispiel. Ansible ist nicht in der Quelle enthalten, aber in der Fedora-Epel-Quelle ist Ansible vorhanden. Nachdem Sie die Epel-Quelle konfiguriert haben, können Sie es direkt über yum installieren. Hier ist Centos6.8 als Beispiel:
# yum install http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm # yum install ansible
In Ubuntu und seinen Derivaten können Sie apt-get installieren, indem Sie die PPA-Quelle wie folgt hinzufügen:
$ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible
3. Installation des Quellcodes
Die Installation des Quellcodes erfordert Python2.6 oder höher, was von den Modulen Paramiko, PyYAML, Jinja2, httplib2, simplejson und pycrypto abhängt. Die oben genannten Module können jedoch über pip oder easy_install installiert werden. Es richtet sich hauptsächlich an diejenigen, die dies nicht können. Wenn Sie mit dem Internet verbunden sind, können Sie über die Pypi-Site nach dem oben genannten Paket suchen, es herunterladen und über „python setup.py install“ installieren.
Laden Sie abschließend das Ansible-Quellcodepaket von Github oder Pypi herunter und installieren Sie es über Python Setup.py Install. Da der Installationsprozess relativ einfach ist, überspringen wir ihn hier und stellen hauptsächlich die Probleme vor, die nach der Installation auftreten können.
a. Bei der Installation von PyYAML wird der Fehler wie folgt gemeldet:
# python setup.py install libyaml is not found or a compiler error: forcing --without-libyaml (if libyaml is installed correctly, you may need to specify the option --include-dirs or uncomment and modify the parameter include_dirs in setup.cfg) running install_lib running install_egg_info Removing /usr/lib64/python2.6/site-packages/PyYAML-3.11-py2.6.egg-info Writing /usr/lib64/python2.6/site-packages/PyYAML-3.11-py2.6.egg-info
Im Centos6.8-System kann das Problem durch yum -y install libyaml package gelöst werden oder das Paket aus der ISO-Datei bereitstellen und über rpm -ivh installieren.
b. Nach der Installation von Ansible ist der Fehler wie folgt:
[root@361way.com ansible-1.9.1]# ansible -h Traceback (most recent call last): File "/usr/local/src/ansible-devel/bin/ansible", line 36, in from ansible.runner import Runner File "/usr/local/src/ansible-devel/lib/ansible/runner/__init__.py", line 62, in from Crypto.Random import atfork File "/usr/lib64/python2.6/site-packages/Crypto/Random/__init__.py", line 29, in from Crypto.Random import _UserFriendlyRNG File "/usr/lib64/python2.6/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in from Crypto.Random.Fortuna import FortunaAccumulator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in import FortunaGenerator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 34, in from Crypto.Util.number import ceil_shift, exact_log2, exact_div File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC: AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
Beim Importieren des Paramiko-Pakets wird der Fehler wie folgt gemeldet:
>>> import paramiko Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.6/site-packages/paramiko/__init__.py", line 69, in from transport import randpool, SecurityOptions, Transport File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 32, in from paramiko import util File "/usr/lib/python2.6/site-packages/paramiko/util.py", line 32, in from paramiko.common import * File "/usr/lib/python2.6/site-packages/paramiko/common.py", line 98, in from rng import StrongLockingRandomPool File "/usr/lib/python2.6/site-packages/paramiko/rng.py", line 22, in from Crypto.Util.randpool import RandomPool as _RandomPool File "/usr/lib64/python2.6/site-packages/Crypto/Util/randpool.py", line 30, in import Crypto.Random File "/usr/lib64/python2.6/site-packages/Crypto/Random/__init__.py", line 29, in from Crypto.Random import _UserFriendlyRNG File "/usr/lib64/python2.6/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in from Crypto.Random.Fortuna import FortunaAccumulator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in import FortunaGenerator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 34, in from Crypto.Util.number import ceil_shift, exact_log2, exact_div File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC: AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
Nach einer Online-Suche wurde bestätigt, dass die GMP-Version, von der das Pycrypto-Paket bei der Installation abhängt, falsch ist. Die Details können durch die folgenden Schritte überprüft werden:
[root@361way.com pycrypto-2.6.1]# python setup.py build running build running build_py running build_ext running build_configure warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
Lösung:
Öffnen Sie die Datei /usr/lib64/python2.6/site-packages/Crypto/Util/number.py. Sie können den Kommentar in Zeile 56 sehen, der erfordert, dass libgmp v5 oder höher ist. Die aktuelle Version des Systems ist 4.1.4. Wenn Sie die folgenden beiden Zeilen vorübergehend auskommentieren, wird Ansible normal ausgeführt.
if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC: _warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
Diese Methode ist jedoch nur eine vorübergehende Lösung. Eine bessere Möglichkeit besteht darin, libgmp auf eine Version zu aktualisieren, die den Anforderungen entspricht.
c. Während der Ausführung ist ein Fehler aufgetreten
[root@361way.com src]# ansible test -m raw -a 'uptime' 10.212.52.14 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program 10.212.52.16 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program
Installieren Sie das SSHPass-Programm. Es ist in der Standardquelle nicht verfügbar. Ich habe mich entschieden, es direkt von der Sohu-Quelle herunterzuladen und zu installieren.
Der von pypi heruntergeladene Quellcode enthält ein Beispielpaket. Sie können diese Beispieldatei wie folgt als Standardkonfiguration verwenden:
[root@361way.com ansible-1.9.1]# mkdir -p /etc/ansible [root@361way.com ansible-1.9.1]# cp -rp examples/* /etc/ansible/ [root@361way.com ansible-1.9.1]# cd /etc/ansible/
Nachdem Sie die Standard-Beispielkonfigurationsdatei verwendet haben, bearbeiten Sie die Datei /etc/ansible/hosts, um zu überprüfen, ob Ansible verfügbar ist:
[root@361way.com ~]# cat /etc/ansible/hosts [test] 10.212.52.252 ansible_ssh_user=root ansible_ssh_pass=361way.com 10.212.52.14 ansible_ssh_user=root ansible_ssh_pass=abc123 10.212.52.16 ansible_ssh_user=root ansible_ssh_pass=91it.org
In der obigen Konfiguration habe ich eine Testgruppe konfiguriert. Es gibt drei Hosts in dieser Gruppe. Die Passwörter der drei Hosts sind 361way.com, abc123 und 91it.org.
Hinweis: Die folgenden Benutzer- und Passwortelemente sind optional. Wenn die Schlüsselauthentifizierung konfiguriert ist, können Sie direkt ohne Verwendung eines Passworts arbeiten. Wenn kein Schlüssel verwendet wird, können Sie auch den Parameter -k in ansible verwenden, um vor dem Vorgang nach einem manuellen Passwort zu fragen.
[root@361way.com ~]# ansible test -a 'uptime' 10.212.52.252 | success | rc=0 >> 18:01pm up 21 days 3:24, 3 users, load average: 0.39, 0.38, 0.35 10.212.52.16 | success | rc=0 >> 18:09pm up 329 days 1:01, 2 users, load average: 0.08, 0.03, 0.05 10.212.52.14 | success | rc=0 >> 18:08pm up 329 days 0:23, 2 users, load average: 0.06, 0.06, 0.05
Nachdem Sie die obigen Anweisungen ausgeführt haben, werden die Ergebnisse ausgegeben, die beweisen, dass die Installation erfolgreich war.
Das obige ist der detaillierte Inhalt vonZusammenfassung der Ansible-Nutzung: Ansible-Installation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!