Zainstaluj i skonfiguruj Ansible w systemie Linux
Ten przewodnik krok po kroku przeprowadzi Cię przez kolejne etapy instalacji i konfiguracji Ansible w systemie Linux. Wyjaśnia także, jak skonfigurować domowe laboratorium Ansible w systemie Linux, aby nauczyć się podstaw Ansible.
1. Wstęp
Ansible to narzędzie do automatyzacji IT, dzięki któremu możesz zautomatyzować liczbę „N” zadań w swoim środowisku oprogramowania. Aby dowiedzieć się, czym jest Ansible i jego funkcjami, zapoznaj się z naszym przewodnikiem „Wprowadzenie do Ansible”.
Ansible jest oczywiście zaprojektowany do zarządzania konfiguracją na dużą skalę. Jeśli Twoim celem jest nauka i możliwość szybkiego odtworzenia środowiska, to jesteś na dobrej drodze!
Ansible to architektura bezagentowa. Znaczenie: w zarządzanych węzłach nie działają żadne agenty/procesy ansible.
Jak już wspomniałem we wstępie do Ansile, w ansible istnieją dwa typy węzłów.
- Węzeł główny/kontroler - serwer/stacja robocza, na którym zostanie zainstalowany ansible. Z tego węzła będziesz uruchamiał wszystkie podręczniki i polecenia ansible.
- Zarządzane węzły — lista hostów, które będą zarządzane za pomocą ansible.
Nie wszystkie zarządzane węzły muszą działać w tej samej wersji lub typie dystrybucji. Jako węzły zarządzane możesz mieć różne wersje Linuksa.
Komunikacja pomiędzy kontrolerem a zarządzanymi węzłami będzie odbywać się z wykorzystaniem uwierzytelniania opartego na kluczu ssh.
Z tego praktycznego przewodnika dowiesz się, jak skonfigurować laboratorium Ansible w dystrybucjach Linuksa.
Uwaga:
- Nie można używać systemu Windows jako węzła kontrolera.
- Istnieje możliwość skonfigurowania wielu węzłów kontrolera.
Zanim zacznę pracować z Ansible, pozwól, że pokażę ci ilustrację mojej konfiguracji domowego laboratorium Ansible.
2. Schemat architektoniczny 3-węzłowego laboratorium ansible
Poniższa ilustracja graficzna przedstawia ładne przedstawienie wyglądu laboratorium.
Moja konfiguracja domowego laboratorium Ansible
W celach demonstracyjnych konfiguruję węzeł kontrolera w systemie Ubuntu 20.04 i 2 zarządzane węzły w CentOS 8 i Ubuntu 21.04.
3. Zainstaluj i skonfiguruj Ansible w systemie Linux
Najpierw zobaczymy, jak skonfigurować węzeł zarządzany Ansible w systemie Linux.
3.1. Zainstaluj Ansible w systemie Linux
Ponieważ Ansible jest napisany w Pythonie, na twoim komputerze z Linuksem powinien być zainstalowany Python, aby Ansible działał.
Na szczęście wszystkie dystrybucje Linuksa mają preinstalowany język Python. Ansible obsługuje zarówno Python 2.7, jak i Python 3.5 i nowsze wersje.
Aby sprawdzić, która wersja Pythona jest zainstalowana na Twoim komputerze, możesz użyć następujących poleceń. Dane wyjściowe mogą się różnić w zależności od konfiguracji Pythona w Twojej dystrybucji.
$ which python python2 python3
/usr/bin/python2
/usr/bin/python3Sprawdź wersję Pythona:
$ python2 --version
Python 2.7.18rc1$ python3 --version
Python 3.8.5$ compgen -c python | grep -P '^python..\d'
python3.8
python3.8-config
python2.7Ansible można zainstalować w systemie Linux na dwa sposoby.
- Korzystanie z menedżera pakietów systemu operacyjnego
- Korzystanie z PIP - menedżera pakietów Pythona
3.1.1. Zainstaluj Ansible za pomocą menedżera pakietów systemowych
Najpierw zobaczę, jak użyć menedżera pakietów twojej dystrybucji do zainstalowania ansible. W zależności od dystrybucji Linuksa uruchom następujące polecenia.
Zainstaluj Ansible w Arch Linux, EndeavourOS, Manjaro Linux:
sudo pacman -S ansibleDebiana:
Edytuj plik /etc/apt/sources.list:
sudo nano /etc/apt/sources.listDodaj następujący wiersz:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Następnie uruchom następujące polecenia:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
sudo apt update
sudo apt install ansibleFedora:
sudo dnf install ansibleCentOS, RHEL, AlmaLinux, Rocky Linux:
sudo dnf install epel-releasesudo dnf install ansibleUbuntu i jego pochodne:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansibleTwoja dystrybucja może być dostarczana z przestarzałą wersją Ansible. Jeśli chcesz zainstalować zaktualizowaną wersję Ansible w swoim systemie, możesz użyć Pip, menedżera pakietów Pythona.
3.1.2. Zainstaluj Ansible za pomocą Pip
Najpierw sprawdź, czy PIP jest zainstalowany, uruchamiając następujące polecenia:
$ which pip pip3
/usr/bin/pip
/usr/bin/pip3$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)Jeśli PIP nie jest zainstalowany, uruchom następujące polecenia, aby go zainstalować.
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --userPo zainstalowaniu PIP uruchom następujące polecenie, aby zainstalować ansible:
sudo python3 -m pip install ansibleSpowoduje to zainstalowanie najnowszej wersji Ansible.
Możesz także zainstalować konkretną wersję Ansible, na przykład 2.9, jak poniżej:
sudo python3 -m pip install 'ansible==2.9'Po zainstalowaniu Ansible uruchom następujące polecenie, aby sprawdzić wersję Ansible:
ansible --versionTo polecenie podaje informacje o tym, gdzie znajduje się plik hosta, plik konfiguracyjny i plik binarny ansible oraz jaka wersja Ansible jest zainstalowana.
Przykładowe dane wyjściowe:
ansible 2.9.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]3.2. Skonfiguruj Ansible
Jak wspomniano wcześniej, Ansible będzie komunikować się z zarządzanymi węzłami przy użyciu protokołu uwierzytelniania ssh.
Stworzymy parę kluczy ssh i rozprowadzimy je po wszystkich zarządzanych węzłach. Zatem za każdym razem, gdy zostanie przesłane polecenie ansible, zostanie ono uwierzytelnione w zarządzanych węzłach przy użyciu tych kluczy.
3.2.1. Wygeneruj parę kluczy SSH dla zarządzanych węzłów
Utwórz nowego użytkownika o nazwie ansible zarówno w kontrolerze, jak i w węzłach zarządzanych.
sudo useradd ansible ##create user
sudo passwd ansible ##set password for ansible user.Zaloguj się/Przełącz jako użytkownik ansible i utwórz parę kluczy ssh za pomocą poleceń:
su - ansiblessh-keygen -t rsaTo polecenie wygeneruje parę kluczy SSH.
Teraz roześlij klucz publiczny do wszystkich zarządzanych węzłów.
Możesz użyć polecenia ssh-copy-id, aby skopiować klucz publiczny do węzła docelowego.
Aby skopiować klucz publiczny do węzła docelowego za pomocą polecenia ssh-copy-id, uruchom:
ssh-copy-id -i ~/.ssh/id_rsa ansible@host-nameJeśli masz więcej węzłów, użyj pętli for, aby skopiować klucz ssh do wszystkich węzłów docelowych.
Na potrzeby tego przewodnika mam 2 zarządzane węzły i nazwałem je centos1 (centos8) i ubuntu1 (ubuntu 20.04). Aby skopiować klucz do obu węzłów, użyłem następującego kodu:
for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa ansible@${node} doneSkopiuj klucze SSH do węzłów docelowych
Teraz zaloguj się do zarządzanego węzła, aby sprawdzić, czy uwierzytelnianie oparte na kluczach działa prawidłowo.
ssh username@hostnameTeraz konfiguracja Ansible została zakończona. Następnym krokiem powinno być utworzenie pliku inwentarza i uruchomienie niektórych poleceń ansible na zarządzanych hostach.
3.2.2. Przetestuj konfigurację Ansible
Ansible zawiera dwa ważne pliki wymagane do przesyłania poleceń Adhoc lub playbook.
Ansible.cfg- plik konfiguracyjny ansible.Hosty— plik inwentarza, w którym podane są szczegóły hosta.
Cóż, omów bardziej szczegółowo pliki konfiguracyjne i inwentaryzacyjne w osobnym artykule. W tej chwili, aby uruchomić pierwsze polecenie ansible, wystarczy dodać nazwy hostów węzłów zarządzanych do pliku inwentarza.
Plik konfiguracyjny Ansible znajduje się w pliku /etc/ansible/ansible.cfg. Możesz także uzyskać te szczegóły, uruchamiając komendę ansibleversion:
$ ansible --version
ansible 2.9.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]Otwórz plik ansible.cfg i poszukaj spisu parametrów. Ansible będzie odwoływał się do tego parametru w czasie wykonywania, aby uzyskać ścieżkę do pliku inwentarza.
$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg
#inventory = /etc/ansible/hostsZasoby domyślnie wskazują plik /etc/ansible/hosts . Otwórz plik hosts i dodaj nazwę hosta/adres IP węzła zarządzanego.
Mam mapowanie DNS na IP, więc podałem nazwę DNS w pliku hosta. Możesz także podać adres IP.
Plik inwentarza Ansible
Wszystko jest skonfigurowane do uruchomienia naszego zadania w ansible!
Podobnie jak program "Hello world" w programowaniu, ansible ma również tradycję uruchamiania ping jako pierwsze polecenie sprawdzające łączność pomiędzy kontrolerem a zarządzanymi węzłami.
Moduł ping spróbuje dotrzeć do zarządzanych węzłów i sprawdzi, czy dostępny jest jakiś interpreter Pythona do użycia i odpowie jako pong.
ansible all -m pingMożesz także jawnie określić plik hosts za pomocą flagi -i, jak poniżej:
ansible all -m ping -i flag <path-to-host-file>Moduł Ansible Ping
Teraz możesz rozpocząć grę z dowolnym modułem, z którym chcesz grać.
Jeśli chcesz dodać więcej węzłów kontrolera, wystarczy, że skopiujesz klucz SSH z węzła kontrolera do nowego węzła i dodasz wpis IP/DNS w pliku hosta. Następnie ansible może rozpocząć pobieranie nowo dodanego węzła zarządzanego. To takie proste!
Wniosek
W tym przewodniku omówiliśmy, jak zainstalować i skonfigurować Ansible w systemie Linux. Pokazaliśmy również, jak ręcznie skonfigurować trzywęzłowe laboratorium domowe Ansible.
Istnieją inne zautomatyzowane rozwiązania, takie jak konfigurowanie laboratorium ansible przy użyciu Vagrant lub Docker. Te tematy poruszymy w naszych kolejnych artykułach.
Ansible to obszerny temat! Omówiliśmy tylko podstawy Ansible. Sprawdź oficjalną dokumentację Ansible, aby dowiedzieć się więcej o korzystaniu z Ansible.
Przeczytaj dalej:
- Zautomatyzowana konfiguracja laboratorium Ansible za pomocą Vagrant i Virtualbox w systemie Linux
- Inwentarz Ansible i pliki konfiguracyjne



