Jak skonfigurować IT Management Automation Korzystanie ansibl

A+ A-

Ten artykuł zawiera podstawową wiedzę na temat technologii ansibl wraz z kroków, aby go zainstalować. Ansibl jest open source IT automatyzacji oprogramowania do konfiguracji, zarządzania i instalacji oprogramowania na klientach lub węzłów bez przestojów i agenta zainstalowanego na węzłach. Używa SSH do komunikowania się z klientami.

Obecnie większość narzędzi automatyzacji Działa jako środek w zdalnym hostem, ale ansibl potrzebuje tylko połączenia SSH, użytkownik i Python (2.4 lub nowszy).

Środowisko Szczegóły konfiguracji

serwer
System operacyjny: Centos 6.7
Adres IP: 192.168.87.140
Host-name: ansible.hanuman.com
Użytkownik: root
zdalnych węzłach
Węzeł 1: 192.168.87.156
Węzeł 2: 192.168.87.157

Instalacja serwera ansibl

Nie ma oficjalnego repozytorium ansibl klonów RPB oparty, ale możemy zainstalować ansibl umożliwiając repozytorium EPEL użyciu RHEL / CentOS 6. X, 7. X przy użyciu aktualnie obsługiwane dystrybucje Fedora.

 # Rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

Wydajność:

Odzyskiwanie http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.no arch.rpm
Ostrzeżenie: /var/tmp/rpm-tmp.nHoRHj: Nagłówek V3 RSA / SHA256 Signature, identyfikator klucza 0608b89 5: NoKey
Przygotowanie ... ########################################### [100% ]
Pakiet EPEL-release-6-8.noarch jest zainstalowany 

Po skonfigurowaniu repozytorium EPEL można teraz zainstalować ansibl użyciu yum z poleceniem poniżej.

 # Sudo yum install -y ansibl

Wydajność:
Załadowane wtyczki: fastestmirror, bezpieczeństwo
Konfigurowanie proces instalacji
Ustalenie najszybsze lustra
EPEL / Metalink | 4,3 kB 00:00
 * Podstawa: centosmirror.go4hosting.in
 * EPEL: epel.mirror.net.in
 * Dodatki: centosmirror.go4hosting.in
 * Aktualizacje: centosmirror.go4hosting.in
rozwiązywanie Zależności
,
,
,
zainstalowane:
  ansible.noarch 0: 1.9.4-1.el6
Zależność zainstalowana:
  PyYAML.x86_64 0: 3.10-3.1.el6 libyaml.x86_64 0: 0.1.3-4.el6_6
  python-babel.noarch 0: 0.9.4-5.1.el6 python-crypto2.6.x86_64 0: 2.6.1-2.el6
  python-httplib2.noarch 0: 0.7.7-1.el6 python-jinja2.x86_64 0: 2.2.1-2.el6_5
  python-keyczar.noarch 0: 0.71c-1.el6 python-pyasn1.noarch 0: 0.0.12a-1.el6
  python-simplejson.x86_64 0: 2.0.9-3.1.el6 sshpass.x86_64 0: 1.05-1.el6

Kompletny! 

Weryfikowanie instalacji

Po skonfigurowaniu repozytorium EPEL można teraz zainstalować ansibl użyciu yum z poleceniem poniżej.

 # Ansibl version
ansibl 1.9.4
  skonfigurowany moduł wyszukiwania ścieżki = None 

Przygotowanie kluczy SSH na zdalne

Aby wykonać rozmieszczeniem lub up-gradacji z serwera ansibl dla każdego hosta, nie powinno być konto użytkownika do komunikowania się. Ponadto, musimy skopiować klucze SSH z serwerem Anisble do zdalnego hosta dla haseł mniej połączenia.

Po pierwsze, pozwala nam tworzyć klucza SSH za pomocą polecenia poniżej i skopiować klucz do zdalnych komputerów.

 # Ssh-keygen -t rsa -b 4096 -C "ansible.hanuman.com" 

Generowanie publiczny / prywatny RSA Key Pair

 Wpisz pliku w którym chcesz zapisać klucz (/root/.ssh/id_rsa):
Wprowadź hasło (pusty żadnym hasłem):
Wpisz to samo hasło ponownie:
Twój identyfikacyjny został zapisany w ansible_key.
Klucz publiczny został zapisany w ansible_key.pub.
Odcisk palca klucza to:
28: ae: 0C: 8d: 91: 0A: fa: AC: 2f: e2: 8c: E5: FD: 28: 4b: c6 ansible.hanuman.com
Kluczem jest randomart zdjęcie:
+ - [RSA 4096] ---- +
| |
| |
| |
| , , |
| +. , S |
| + =. , |
| = E. |
| = Xo. |
| = * Ooo .. |
+ ----------------- + 

Po utworzeniu SSH klucz sukcesu, teraz skopiować utworzony klucz do wszystkich dwoma zdalnymi serwerami, musimy użytkownikowi robić ansibl tutaj demo i używam użytkownika root, z którego możemy wykonać ansibl zadań.

 # ssh-copy-id root@192.168.87.156

Wydajność:

root@192.168.87.156's hasło:
Teraz spróbuj zalogowaniu do urządzenia, z "ssh 'root@192.168.87.156~~pobj'" i sprawdzić w:

  .ssh / authorized_keys

aby upewnić się, że nie zostały dodane dodatkowe klawisze, które nie spodziewaliśmy.

# ssh-copy-id root@192.168.87.157

Wydajność:

root@192.168.87.157's hasło:
Teraz spróbuj zalogowaniu do urządzenia, z "ssh 'root@192.168.87.157~~pobj'" i sprawdzić w:

  .ssh / authorized_keys
aby upewnić się, że nie zostały dodane dodatkowe klawisze, które nie spodziewaliśmy. 

Kopiowanie kluczy SSH drugie zdalnego komputera

Po skopiowaniu wszystkich kluczy SSH do zdalnego hosta, teraz przeprowadzić uwierzytelnianie klucza ssh na wszystkich zdalnych hostach, aby sprawdzić, czy działa, czy nie uruchomić uwierzytelnianie niżej poleceń do testowania.

 # Ssh root@192.168.87.156
[Ansibl @ localhost ~] # 
Podłączenie do 192.168.87.156 zamknięte.
# Ssh root@192.168.87.157
[Ansibl @ localhost ~] # 

Tworzenie pliku zasobów dla zdalnych hostach

Plik Inventory Ten plik posiada informacje o gospodarzy, dla których gospodarzem musimy połączone z lokalnego na zdalne. Domyślnym plikiem konfiguracyjnym będzie w / etc / ansibl / hosts.

Teraz dodamy dwa węzły do ​​pliku konfiguracyjnego. Otwierać i edytować plik za pomocą dowolnego edytora Tutaj używamy vim.

 # Sudo vim / etc / hosts / ansibl
Dodaj następujący dwoma hostami adres IP ..

[serwery internetowe]
192.168.87.156
192.168.87.157 

Uwaga: serwery internetowe [] w nawiasach wskazuje jako nazw grup, jest ona wykorzystywana do klasyfikacji węzłów i grupować je i kontrolowanie W jakim czasie iz jakiego powodu.

Aby sprawdzić, czy ansibl działa lub nie

Teraz czas, aby sprawdzić nasz cały serwer po prostu robi ping z naszego serwera ansibl. Aby wykonać akcję musimy użyć polecenia "ansibl 'z' -m 'opcje (modułu) i" -wszystkie' (grupa serwerów).

 # Ansibl -m ping serwery internetowe
Wydajność:
[Root @ localhost ~] # ansibl -m ping serwery internetowe 
192.168.87.157 | Sukces >> {     
    "Zmieniony": false,     
    "tenis stołowy" 
} 
192.168.87.156 | Sukces >> {     
    "Zmieniony": false,     
    "tenis stołowy" 
} 

LUB

 # Ansibl -m ping -wszystkie

Wydajność:

[Root @ localhost ~] # ansibl -m ping serwery internetowe
192.168.87.157 | Sukces >> {
    "Zmieniony": false,
    "tenis stołowy"
}

192.168.87.156 | Sukces >> {
    "Zmieniony": false,
    "tenis stołowy"
} 

Teraz, tutaj, używamy innego modułu o nazwie "polecenie", który służy do wykonywania listę poleceń powłoki (jak, DF, wolny, czas pracy, etc.) na wszystkich wybranych zdalnych hostach za jednym zamachem. Dla demo można wykonać poniższe polecenia.

Sprawdź partycje na wszystkich zdalnych hostach

 # Ansibl -m -a polecenia "df -h" serwery internetowe

Wydajność:

192.168.87.156 | sukces | rc = 0 >>
 System plików Rozmiar Używane Dostępność Korzystanie% Mounted on
 / Dev / mapper / VolGroup-lv_root
 18G 2.0G 15G 12% /
 tmpfs 491M 0 491M 0% / dev / shm
 / Dev / sda1 477 mln 42M 411M 10% / boot
192.168.87.157 | sukces | rc = 0 >>
 System plików Rozmiar Używane Dostępność Korzystanie% Mounted on
 / Dev / mapper / VolGroup-lv_root
 18G 2.0G 15G 12% /
 tmpfs 491M 0 491M 0% / dev / shm
 / Dev / sda1 477 mln 42M 411M 10% / boot 

Sprawdzić zużycie pamięci dla wszystkich serwerach

 # Ansibl -m -a polecenie "wolny -MT" serwery internetowe
Wydajność: 
 192.168.87.156 | sukces | rc = 0 >>
 Wszystkich bezpłatnie udostępnione bufory pamięci podręcznej
 Mem: 981 528 453 0 39 322
 - / + Bufory / cache: 166 815
 Zmienne: 2047 0 2047
 Razem: 3029 528 2501
192.168.87.157 | sukces | rc = 0 >>
 Wszystkich bezpłatnie udostępnione bufory pamięci podręcznej
 Mem: 981 526 455 0 39 322
 - / + Bufory / cache: 164 817
 Zmienne: 2047 0 2047
 Razem: 3029 526 2503 

Przekierowując wyjście do pliku

 # Ansibl -m -a shell "status httpd usługi" serwery internetowe> service_status.txt

Wydajność: 

 # Cat service_status.txt
 192.168.87.156 | FAILED | rc = 3 >>
 httpd jest zatrzymany
 192.168.87.157 | FAILED | rc = 3 >>
 httpd jest zatrzymany 

Aby zamknąć zdalnymi serwerami

 #ansible -m -a shell "init 0" serwery internetowe
Wydajność: 
 192.168.87.157 | sukces | rc = 0 >>
192.168.87.156 | sukces | rc = 0 >> 

Ansibl jest potężnym narzędziem automatyzacji IT, który jest najczęściej używany przez administratorów systemu Linux co do wdrażania aplikacji i zarządzania serwerami za jednym zamachem. Wśród innych narzędzi automatyzacji, takich jak marionetka, Chef, itp ansibl jest dość bardzo ciekawe i bardzo łatwy w konfiguracji i dobre dla prostego środowiska.