Wyszukiwanie w witrynie

Jak zainstalować i skonfigurować narzędzie do automatyzacji „Ansible” do zarządzania IT – część 1


Ansible to potężne oprogramowanie do automatyzacji o otwartym kodzie źródłowym, umożliwiające konfigurowanie, zarządzanie i wdrażanie aplikacji w węzłach bez przestojów, po prostu za pomocą protokołu SSH. Obecnie większość narzędzi IT Automation działa jako agent na zdalnym hoście, ale ansible potrzebuje jedynie połączenia SSH i zainstalowania Pythona (2.4 lub nowszego) na zdalnych węzłach, aby wykonać swoje działanie.

Jak działa Ansible?

Dostępnych jest wiele podobnych narzędzi do automatyzacji, takich jak Puppet, Capistrano, Chef, Salt, Space Walk itp., ale Ansible dzieli się na dwa typy serwerów: maszyny sterujące i węzły.

Maszyna kontrolująca, na której zainstalowany jest Ansible, a węzły są zarządzane przez tę maszynę kontrolującą przez SSH. Lokalizacja węzłów jest określana przez kontrolę maszyny poprzez jej inwentarz.

Maszyna kontrolująca (Ansible) wdraża moduły w węzłach przy użyciu protokołu SSH, a moduły te są tymczasowo przechowywane w zdalnych węzłach i komunikują się z maszyną Ansible poprzez połączenie JSON przez standardowe wyjście.

Ansible nie wymaga agenta, co oznacza, że nie ma potrzeby instalowania żadnego agenta na zdalnych węzłach, co oznacza, że nie działają żadne demony ani programy działające w tle dla Ansible, gdy nie zarządza on żadnymi węzłami.

Ansible może obsłużyć setki węzłów z jednego systemu za pośrednictwem połączenia SSH, a całą operację można obsłużyć i wykonać za pomocą jednego polecenia „ansible”. Jednak w niektórych przypadkach, gdy w celu wdrożenia wymagane było wykonanie wielu poleceń, tutaj możemy zbudować podręczniki.

Podręczniki to zbiór poleceń, które mogą wykonywać wiele zadań, a każdy podręcznik jest w formacie pliku YAML.

Jaki jest pożytek z Ansible

Ansible można wykorzystać w infrastrukturze IT do zarządzania aplikacjami i wdrażania ich w zdalnych węzłach. Załóżmy na przykład, że musisz wdrożyć jedno lub wiele programów w setkach węzłów za pomocą jednego polecenia. Tutaj pojawia się ansible. Za pomocą Ansible możesz wdrożyć dowolną liczbę aplikacji na wielu węzłach za pomocą jednego polecenia, ale aby zrozumieć skrypty ansible, musisz mieć trochę wiedzy programistycznej.

Przygotowaliśmy serię na temat Ansible, zatytułowaną „Przygotowanie do wdrożenia infrastruktury IT za pomocą narzędzia Ansible IT Automation Tool”, obejmującą części 1–4 i obejmującą następujące tematy.

W tym artykule pokażemy, jak zainstalować „Ansible” na systemach RHEL/CentOS 7/6, Fedora 21-19, Ubuntu 14.10-13.04 i Debian 7/6, a także omówimy podstawy zarządzania serwer, instalując pakiety, stosując aktualizacje i wiele więcej, od podstawowego do profesjonalnego.

Warunki wstępne

  1. System operacyjny: RHEL/CentOS/Fedora i Ubuntu/Debian/Linux Mint
  2. Jinja2: nowoczesny, szybki i łatwy w obsłudze samodzielny silnik szablonów dla języka Python.
  3. PyYAML: parser i emiter YAML dla języka programowania Python.
  4. parmiko: natywna biblioteka kanałów Python SSHv2.
  5. httplib2: kompleksowa biblioteka klienta HTTP.
  6. sshpass: nieinteraktywne uwierzytelnianie hasłem ssh.

Konfiguracja mojego środowiska

Maszyna kontrolująca – Ansible
Operating System :	Linux Mint 17.1 Rebecca
IP Address	 :	192.168.0.254
Host-name	 :	tecmint.instrcutor.com
User		 :	tecmint
Węzły zdalne
Node 1: 192.168.0.112
Node 2: 192.168.0.113
Node 3: 192.168.0.114

Krok 1: Instalacja maszyny sterującej – Ansible

1. Przed zainstalowaniem „Ansible” na serwerze zweryfikujmy najpierw szczegóły serwera, takie jak nazwa hosta i adres IP. Zaloguj się do serwera jako użytkownik root i wykonaj poniższe polecenie, aby potwierdzić ustawienia systemowe, których będziemy używać w tej konfiguracji.

sudo ifconfig | grep inet

2. Po potwierdzeniu ustawień systemu nadszedł czas na zainstalowanie w systemie oprogramowania „Ansible”.

Na Ubuntu/Debianie/Linux Mint

Tutaj będziemy korzystać z oficjalnego repozytorium Ansible PPA w systemie, wystarczy uruchomić poniższe polecenia, aby dodać repozytorium.

sudo apt-add-repository ppa:ansible/ansible -y
sudo apt-get update && sudo apt-get install ansible -y

W RHEL/CentOS/Fedorze

Niestety nie ma oficjalnego repozytorium Ansible dla klonów opartych na RedHat, ale możemy zainstalować Ansible, włączając repozytorium epel w RHEL/CentOS 6, 7 i obecnie obsługiwanych dystrybucjach Fedory.

Użytkownicy Fedory mogą bezpośrednio zainstalować Ansible poprzez domyślne repozytorium, ale jeśli używasz RHEL/CentOS 6, 7, musisz włączyć repozytorium EPEL.

Po skonfigurowaniu repozytorium epel możesz zainstalować Ansible za pomocą następującego polecenia.

sudo yum install ansible -y

Po pomyślnej instalacji możesz sprawdzić wersję, wykonując poniższe polecenie.

ansible --version

Krok 2: Przygotowanie kluczy SSH do zdalnych hostów

4. Aby przeprowadzić wdrożenie lub zarządzanie z hosta lokalnego na host zdalny, najpierw musimy utworzyć i skopiować klucze ssh na host zdalny. Na każdym zdalnym hoście będzie konto użytkownika tecmint (w Twoim przypadku może to być inny użytkownik).

Najpierw utwórzmy klucz SSH za pomocą poniższego polecenia i skopiuj klucz do zdalnych hostów.

ssh-keygen -t rsa -b 4096 -C "[email "

5. Po pomyślnym utworzeniu klucza SSH skopiuj teraz utworzony klucz na wszystkie trzy serwery zdalne.

ssh-copy-id [email 
ssh-copy-id [email 
ssh-copy-id [email 

6. Po skopiowaniu wszystkich kluczy SSH do zdalnego hosta przeprowadź teraz uwierzytelnianie kluczem ssh na wszystkich zdalnych hostach, aby sprawdzić, czy uwierzytelnianie działa, czy nie.

ssh [email 
ssh [email 
ssh [email