ansible tutorial installation
Praktyczny samouczek Ansible z instalacją, użytkowaniem i konfiguracją Ansible z modułami Ansible:
Dyskutowaliśmy o AWS Elastic Beanstalk w naszym poprzednim samouczku.
LISTA samouczków w tej serii Ansible:
Samouczek nr 1: Odpowiednia instalacja i moduły
Samouczek nr 2: Ansible Playbooks and Vaults
Samouczek nr 3: Ansible Roles i integracja z Jenkins
Ansible to narzędzie typu open source, które pomaga w automatyzacji zadań, wdrażaniu aplikacji, udostępnianiu w chmurze i zarządzaniu konfiguracją.
Przeczytaj także => Lista samouczków szkoleniowych DevOps
Mówimy więc o orkiestracji IT, w której zadania są wykonywane po kolei na kilku różnych maszynach lub serwerach.
Ansible robi to, łącząc się z wieloma komputerami za pośrednictwem protokołu SSH i uruchamiając zadania, które zostały skonfigurowane w playbookach i używa prostego języka o nazwie YAML (jeszcze inny język znaczników) .
Czego się nauczysz:
- Przegląd Ansible
- Proces instalacji Ansible
- Ansible Usage
- Moduły Ansible
- Podsumowanie
- rekomendowane lektury
Przegląd Ansible
Co najważniejsze, Ansible nie używa agenta do automatyzacji zadań na różnych komputerach.
Ansible zapewnia utrzymywanie dokładnych wersji i aktualnych informacji o pakietach oprogramowania.
Na przykład , jeśli chcesz zainstalować JDK 8 lub Tomcat lub jakikolwiek inny pakiet oprogramowania na 10 lub 20 różnych maszynach, nie jest możliwe, aby przejść do wszystkich maszyn i zainstalować je, zamiast tego użyj Ansible, aby zautomatyzować instalację, a nawet wdrożenia oprogramowania za pomocą Playbooks and Inventory napisane w bardzo prostym języku.
Więc Ansible to:
- Darmowe i otwarte oprogramowanie
- Utrzymywany przez Redhat
- Zasadniczo konfiguracja serwera
- Zarządzanie konfiguracją
W tej trzyczęściowej serii samouczków Ansible omówimy praktyczne podejście do następujących tematów:
- Proces instalacji i konfiguracji
- Inwentarz
- Moduły Ansible
- Polecenia ad-hoc,
- Automatyzacja zadań za pomocą playbooków
- Odpowiedzialne role
- Skarbiec Ansible
- Ansible i AWS
Proces instalacji Ansible
Ansible można zainstalować i uruchomić z dowolnego komputera.
Zazwyczaj będziesz potrzebować pliku Maszyna sterująca do instalacji, która powinna być Linuksem. Maszyna z systemem Windows nie obsługuje bycia maszyną sterującą. Maszyna sterująca będzie zarządzać innymi zdalnymi maszynami. Jak wspomniano wcześniej, Ansible używa SSH do zarządzania zdalnymi maszynami.
W tym samouczku będę używał instancji AWS EC2, aby zaprezentować przykłady. Użyłem 2 instancji (jednej maszyny sterującej i drugiej jako celu do automatyzacji zadań) oraz Redhat Linux 7.5.
Niezależnie od tego, czy chodzi o instancje lokalne, czy w chmurze, będziesz musiał odpowiednio otwierać porty w oparciu o zautomatyzowane zadania. Mam otwarte następujące porty jako część grupy zabezpieczeń dla instancji EC2, aby zademonstrować przykłady wymienione w samouczku.
Na powyższym ekranie wspomniałem o otwarciu portu 8080, ponieważ pokażę o automatyzacji automatyzacji wdrażania oprogramowania za pomocą Tomcata, co będzie przydatne z punktu widzenia DevOps, szczególnie podczas procesu ciągłego dostarczania.
Instalacja Ansible za pomocą YUM
Jak wspomniano wcześniej, będę używał jednej maszyny sterującej i maszyny docelowej. Aby rozpocząć instalację, wykonaj kroki przedstawione poniżej na obu komputerach.
do) Utwórz wspólny identyfikator na obu komputerach dla Przykład , ansibl z uprawnieniami SUDO. Ten identyfikator będzie używany do komunikacji między wszystkimi maszynami zaangażowanymi w automatyzację zadań.
# useradd ansible # passwd ansible
b) Edytuj plik / etc / ssh / sshd_config plik na maszyna sterująca i odkomentuj linie dla PasswordAuthentication i PermitRootLogin
Wykonaj powyższe kroki na obu komputerach. Po zakończeniu uruchom ponownie sshd serwis na obu maszynach.
# systemctl restart sshd
do) Do pełnej automatyzacji zadań będziemy potrzebować uwierzytelniania SSH bez hasła, w przeciwnym razie cały proces nie będzie używany, jeśli za każdym razem będziesz musiał wpisywać hasło.
Więc opublikuj zmiany dokonane powyżej, jeśli uruchomimy polecenie ssh i ssh, za każdym razem będziemy musieli wprowadzić hasło, co nie jest właściwą procedurą do wykonania zadań Ansible.
faza cyklu życia oprogramowania
re) Aby włączyć uwierzytelnianie bez hasła, wykonaj poniższe czynności. Najpierw dodaj użytkownika ansibl do / etc / sudoers plik na obu komputerach, co umożliwi użytkownikowi ansibl aby uruchomić dowolne polecenie, które wymaga uprawnień roota.
Zapisz i zamknij plik po dodaniu użytkownika.
jest) Idąc dalej, będziemy używać użytkownika ansibl wykonać wszystkie kroki. Więc przełącz się na użytkownika ansibl.
Maszyna sterująca su - anible AND Maszyna docelowa su - anible
Maszyna sterująca ssh-keygen
Maszyna docelowa ssh-keygen
Skopiuj klucz ssh na komputer docelowy i odwrotnie.
Maszyna sterująca ssh-copy-id
Maszyna docelowa ssh-copy-id
Teraz możemy się zalogować bez podawania hasła. Po sprawdzeniu łączności ssh na obu komputerach i zaloguj się jako użytkownik ansible.
Maszyna sterująca: ssh ansible @
Maszyna docelowa: ssh ansible @
fa) Zainstaluj wget, jeśli nie jest zainstalowany na obu maszynach.
$ sudo yum install wget -y
sol) Możemy teraz zainstalować ansibl tylko na maszynie sterującej poprzez włączenie repozytorium EPEL z fedory, która udostępnia dodatkowe pakiety oprogramowania. Aby zainstalować, wykonaj następujące czynności ANSIBLE.
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install ansible -y $ ansible --version
Użyta wersja ansibla to 2.5.3
h) Edytuj plik ansible.cfg plik i włącz parametr pliku zapasów na maszynie sterującej.
$ sudo vi /etc/ansible/ansible.cfg
ja) Ansible wykorzystuje koncepcję Inventory do zarządzania i śledzenia maszyn docelowych. Domyślnie ten plik znajduje się w / etc / ansible / hosts i można je również zmienić. Plik hosta składa się z grup w celu lepszej klasyfikacji i wielu komputerów w grupie. Do tych grup można dodać wszystkie wymagane komputery.
Każda grupa jest oznaczona nawiasem kwadratowym i nazwą grupy w środku. Serwer może faktycznie istnieć w wielu grupach.
Edytuj plik inwentarza / etc / ansible / hosts i dodaj wszystkie serwery, którymi chcesz zarządzać.
jot) Aby przetestować łączność serwerów w grupie serwera WWW, uruchom plik ping ansibla polecenie, jak pokazano. Tutaj świst to moduł, który wykonuje określoną funkcję w celu sprawdzenia, czy hosty mogą być połączone zgodnie z definicją w pliku inwentaryzacyjnym, czy nie. Więcej o różnych modułach i ich przykładach dowiemy się w następnej sekcji.
$ ansible webservers –m ping
Aby wyświetlić listę hostów w pliku spisu, możesz uruchomić poniższe polecenie
$ ansible webservers --list-hosts
Ansible Usage
Ansible składa się z 3 głównych komponentów
- Maszyna sterująca
- Inwentarz
- Poradnik
Maszyna sterująca zarządza wykonaniem Playbooka. Można go zainstalować na swoim laptopie lub na dowolnym komputerze w Internecie.
Plik Inventory zawiera pełną listę wszystkich maszyn docelowych, na których działają różne moduły, wykonując połączenie ssh i instalując niezbędne oprogramowanie.
Playbook składa się z kroków, które mechanizm sterujący wykona na serwerach zdefiniowanych w pliku spisu.
Bardzo ważne jest, aby zrozumieć, że Ansible współdziała ze wszystkimi serwerami zdefiniowanymi w inwentarzu za pośrednictwem protokołu SSH, który jest bezpieczną metodą zdalnego logowania. Każda operacja jest wykonywana, a przesyłanie plików jest szyfrowane.
Tak więc, jak można było zobaczyć w poprzedniej sekcji, Ansible nie używa żadnej bazy danych do instalacji i jest bardzo łatwy w instalacji, teraz przejdziemy do faktycznego korzystania z Ansible, zaczynając od modułów, które są głównym blokiem konstrukcyjnym.
Moduły Ansible
Moduły są głównymi elementami składowymi Ansible i są w zasadzie skryptami wielokrotnego użytku, które są używane przez Playbooks Ansible. Ansible zawiera wiele modułów wielokrotnego użytku. Obejmują one funkcje kontrolowania usług, instalacji pakietów oprogramowania, pracy z plikami i katalogami itp.
Składnia jest następująca podczas uruchamiania poleceń ad-hoc, które pomagają w uruchamianiu pojedynczych lub prostych zadań tylko raz i które nie muszą być uruchamiane później. Dla Na przykład. wystarczy zainstalować Tomcat na wszystkich serwerach.
ansible hostORgroup -m module_name -a 'arguments' -u username --become
Przyjrzyjmy się niektórym z najpopularniejszych modułów Ansible i ich zastosowaniu za pomocą poleceń ad-hoc i później w poradniku.
# 1) Moduł konfiguracji
Aby uzyskać informacje o sieci, sprzęcie, wersji systemu operacyjnego lub informacji związanych z pamięcią, moduł konfiguracyjny pomoże zebrać te same informacje o maszynach docelowych. Na sterowaniu maszyna wykonuje poniższe polecenie.
$ ansible webservers –m setup
# 2) Moduł poleceń
Moduł poleceń po prostu wykonuje określone polecenie na maszynie docelowej i podaje dane wyjściowe.
Niektóre z przykładów podano poniżej
$ ansible webservers –m command - an ‘uptime’ $ ansible webservers –m command –a ‘hostname’
# 3) Moduł powłoki
Aby wykonać dowolne polecenie w wybranej powłoce, możesz użyć modułu Shell. Polecenia modułu powłoki są uruchamiane w powłoce / bin / sh i możesz korzystać z operatorów takich jak „>” lub „|” (symbol potoku lub nawet zmienne środowiskowe.
Więc przede wszystkim różnica między modułem Shell i Command polega na tym, że jeśli faktycznie nie potrzebujesz używać operatorów takich jak te wymienione, możesz użyć modułu poleceń.
$ ansible webservers -m shell -a 'ls -l > temp.txt'
Na komputerach w grupie serwerów WWW sprawdź utworzony plik i uruchom polecenie, aby wyświetlić plik tekstowy.
$ ansible webservers –m command -a ‘cat temp.txt’
# 4) Moduł użytkownika
Za pomocą tego modułu można tworzyć lub usuwać użytkowników.
Aby dodać użytkownika
$ ansible webservers -m user -a 'name=user1 password=user1' --become
Aby usunąć użytkownika
$ ansible webservers -m user -a 'name=user1 state=absent' --become
Opcje:
- stają się - Przywilej superużytkownika do uruchamiania polecenia
- stan = brak aby usunąć użytkownika
# 5) Moduł plików
Ten moduł służy do tworzenia plików, katalogów, ustawiania lub zmiany uprawnień do plików i własności itp
Przykład 1: Utwórz plik
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
Przykład 2: Utwórz katalog
jak zrobić kopię tablicy
Aby utworzyć katalog za pomocą modułu plików, musisz ustawić dwa parametry.
- Ścieżka (alias - nazwa, miejsce docelowe) - jest to bezwzględna ścieżka do katalogu, który ma zostać utworzony.
- Stan - należy wprowadzić wartość w formacie „katalog”. Domyślna wartość to „plik”.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=directory mode=755'
Przykład 3: Usuń plik
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
Przykład 4: Usuń katalog
Katalog można usunąć, ustawiając wartość parametru stanu na nieobecny . Katalog i cała jego zawartość zostaną usunięte.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
# 6) Moduł kopiowania
Służy do kopiowania plików na wiele maszyn docelowych.
$ ansible webservers -m copy -a 'src=sample.txt dest=/home/ansible/sample.txt'
# 7) Zarządzanie pakietami oprogramowania
Jeśli chcesz zainstalować pakiety oprogramowania za pomocą „yum” lub „apt”, możesz użyć poniższych poleceń.
Przykład 1: Zainstaluj GIT
$ ansible webservers –m yum -a “name=git state=present” --become
W prawym oknie możesz zobaczyć, czy git nie jest zainstalowany, poda polecenie nie znaleziono, a po zainstalowaniu pokaże wynik.
W tym poleceniu stan = obecny sprawdzi, czy pakiet jest zainstalowany, czy nie, a jeśli nie zostanie zainstalowany, zainstaluje najnowszą wersję.
Przykład 2: Sprawdź, czy pakiet jest zainstalowany i zaktualizuj go do najnowszej wersji.
$ ansible webservers -m yum -a “name=git state=latest”
W powyższym poleceniu stan = najnowsze zaktualizuje pakiet tylko do najnowszej wersji.
Przykład 3: Zainstaluj serwer WWW Apache
$ ansible webservers -m yum -a 'name=httpd state=present' –become
Przykład 4: Sprawdź, czy Maven jest zainstalowany, czy nie.
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) Moduł zarządzania usługami
Do zarządzania usługami z ansible używamy modułu 'usługa'.
Uruchomienie usługi
$ ansible webservers -m service -a “name=httpd state=started” --become
Zatrzymywanie usługi
$ ansible webservers -m service -a “name=httpd state=stopped” --become
Ponowne uruchamianie usługi
$ ansible webservers -m service -a “name=httpd state=restarted --become
Kliknij tutaj aby uzyskać pełną listę modułów.
Podsumowanie
W tym samouczku przedstawiłem Ci podstawowe koncepcje i składniki Ansible, a także dowiedzieliśmy się więcej o instalacji, konfiguracji i użytkowaniu Ansible za pomocą modułów Ansible, które są głównym składnikiem wykonania Ansible.
W naszym nadchodzącym samouczku skupimy się na bardzo ważnym aspekcie pisania podręczników do automatyzacji zadań i skarbców Ansible do przechowywania poufnych danych w zaszyfrowanych plikach.
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- Ansible Roles, Integration with Jenkins in DevOps i EC2 Modules
- Automatyzacja zadań za pomocą Ansible Playbooks i Ansible Vaults z przykładami
- Instalacja i konfiguracja Appium Studio krok po kroku
- Wprowadzenie do języka programowania Java - samouczek wideo
- WebDriver Cała konfiguracja i instalacja z Eclipse - samouczek Selenium # 9
- Pobieranie i instalacja Jira przy użyciu konfiguracji licencji Jira
- Wprowadzenie do języka Python i proces instalacji