Ansible je open source nástroj pro automatizaci IT, který se používá k automatizaci správy konfigurace, zajišťování, nasazování aplikací, orchestrace a mnoha dalších IT procesů bez nutnosti instalovat na klientské uzly nějaké agenty. Při komunikaci s klientskými uzly se spoléhá na protokol SSH. Ansible poskytuje snadné použití a instalaci ve srovnání s jinými podobnými nástroji, jako je loutka, kuchař, terraform atd., V tomto tutoriálu se naučíme, jak nainstalovat Ansible na CentOS 8 Linux a nakonfigurovat jej.
Instalovat Ansible na CentOS 8 Linux
Krok 1: Nainstalujte a povolte EPEL
úložiště
[root@install-ansible ~]# dnf install epel-release -y
Krok 2: Stáhněte si vzdálený index balíčků do místní mezipaměti souborů, abyste urychlili následující dnf
příkazy.
[root@install-ansible ~]# dnf makecache CentOS Linux 8 - AppStream 2.6 kB/s | 4.3 kB 00:01 CentOS Linux 8 - BaseOS 2.6 kB/s | 3.9 kB 00:01 CentOS Linux 8 - Extras 1.0 kB/s | 1.5 kB 00:01 Extra Packages for Enterprise Linux 8 - x86_64 8.7 kB/s | 11 kB 00:01 Extra Packages for Enterprise Linux Modular 8 - x86_64 9.6 kB/s | 10 kB 00:01 Remi's Modular repository for Enterprise Linux 8 - x86_64 501 B/s | 833 B 00:01 Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 802 B/s | 833 B 00:01 Metadata cache created.
Krok 3: Nainstalujte Ansible
[root@install-ansible ~]# dnf install ansible -y Last metadata expiration check: 0:02:17 ago on Tue 01 Mar 2022 10:28:48 AM IST. Dependencies resolved. ============================================================================================================================================================= Package Architecture Version Repository Size ============================================================================================================================================================= Installing: ansible noarch 2.9.27-1.el8 epel 17 M Installing dependencies: python3-bcrypt x86_64 3.1.6-2.el8.1 epel 44 k python3-jmespath noarch 0.9.0-11.el8 appstream 45 k python3-pyasn1 noarch 0.3.7-6.el8 appstream 126 k python3-pynacl x86_64 1.3.0-5.el8 epel 100 k sshpass x86_64 1.06-9.el8 epel 27 k Installing weak dependencies: python3-paramiko noarch 2.4.3-1.el8 epel 289 k Transaction Summary ============================================================================================================================================================= Install 7 Packages Installed: ansible-2.9.27-1.el8.noarch python3-bcrypt-3.1.6-2.el8.1.x86_64 python3-jmespath-0.9.0-11.el8.noarch python3-paramiko-2.4.3-1.el8.noarch python3-pyasn1-0.3.7-6.el8.noarch python3-pynacl-1.3.0-5.el8.x86_64 sshpass-1.06-9.el8.x86_64 Complete!
Krok 4: Ověřte instalaci ansible
[root@install-ansible ~]# ansible --version ansible 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.6/site-packages/ansible executable location = /usr/bin/ansible python version = 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
Konfigurovat Ansible na CentOS 8
Zvažte níže uvedenou architekturu pro tento tutoriál. Totéž můžete rozšířit na n počet klientů.
Správa/administrace klientů z Ansible Server
Pro správu klientů musí být nainstalován a spuštěn SSH. Porty SSH musí být otevřené a přístupné ze serveru Ansible.
Krok 5: Otevřete /etc/hosts
soubor na ansible-server
V tomto článku budeme používat /etc/hosts
soubor pro překlad DNS jmen klientů IP Addr.
[root@ansible-server ~]# vim /etc/hostsAdresa IP nebo názvy DNS pro klienty
Ke správě můžete použít adresu IP nebo názvy DNS klientů
Přidejte níže uvedené položky na adresu IP klienta Ansible a název hostitele
10.180.10.122 ansible-client
Nastavení SSH Passwordless Authentication
Krok 6: Generujte klíče SSH na serveru Ansible (Management Node), aniž byste byli vyzváni k zadání přístupové fráze.
[centos@ansible-server ~]$ ssh-keygen -f id_rsa -t rsa -N '' Generating public/private rsa key pair. Your identification has been saved in id_rsa. Your public key has been saved in id_rsa.pub. The key fingerprint is: SHA256:vqvgSILGrVxCDsLuORbJojxiYDEFEFlNQi5ZrHeqYhE centos@ansible-server The key's randomart image is: +---[RSA 3072]----+ |+B*o. | |.+.o. | |o.o | |oE. . | |++=o S | |@*o . | |OB+o. . | |OX=o . . | |*=+ . ..o. | +----[SHA256]-----+
Krok 7: Zkopírujte klíče SSH do Ansible Client
[centos@ansible-server ~]$ ssh-copy-id centos@ansible-client /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/centos/.ssh/id_rsa.pub" The authenticity of host 'ansible-client (10.180.141.122)' can't be established. ECDSA key fingerprint is SHA256:oDKa1jiDVmPzHmD0HqKr5v10xhalFVbklrdudxAFx5M. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys centos@ansible-client's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'centos@ansible-client'" and check to make sure that only the key(s) you wanted were added.Výzva k zadání hesla pro uživatele centos na ansible-client
Poprvé zadejte přihlašovací heslo pro uživatele centos na Ansible-client. Po zkopírování klíčů SSH se budete moci přihlásit pomocí hesla
Krok 8: Ověřte připojení bez hesla
[centos@ansible-server ~]$ ssh centos@ansible-client Last login: Tue Mar 1 05:57:15 2022 from 10.180.6.115 [centos@ansible-client ~]$
Krok 9: Sudo přístup pro centos
uživatel na ansible-client
Ujistěte se, že centos
uživatel na ansible-client má sudo přístup bez hesla. To pomáhá spouštět jakýkoli root
příkazy na ansible-client pomocí centos
uživatel.
# visudo ## Add the below content centos ALL=(ALL) NOPASSWD:ALL
Nyní je ansible-client připraven ke správě z ansible-server (Management Node) pomocí centos
uživatel na ansible-client.
Jak používat Ansible
Krok 10: Vytvořit Ansible Inventory
Ansible uchovává seznam všech informací o vzdáleném klientovi, které spravuje, v souboru s názvem inventory
soubor. Soubor inventáře Ansible je pouze jednoduchý textový soubor a výchozí umístění souboru je:/etc/ansible/hosts
Můžeme vytvořit soubor inventáře Ansible v jiném než výchozím umístění.
[centos@ansible-server ~]$ mkdir ~/ansible [centos@ansible-server ~]$ cd ~/ansible [centos@ansible-server ansible]$ vim hosts
Přidejte všechny dostupné položky klienta
ansible-client ansible_user=centosmožnost ansible_user v souboru ansible/hosts
Volba ansible_user se používá k definování uživatele na ansible-client, který bude spouštět příkazy.
Soubor Ansible Inventory – Mix názvu hostitele a IP adresyMůžete také kombinovat IP adresy a názvy DNS vzdálených klientů v souboru inventáře
10.180.10.122 ansible_user=centosSeskupte vzdálené klienty v souboru inventáře
Vzdálené klienty můžete také seskupit do inventárního souboru na základě jejich použití. Například, pokud máte 4 klienty jako webový server a 2 jako db server.
[centos] ansible-client ansible_user=centos
Krok 11: Seznam všech hostitelů ze souboru inventáře
[centos@ansible-server ansible]$ ansible -i hosts --list-hosts all hosts (1): ansible-client
Krok 12: Ověřte, zda jsou hostitelé aktivní
[centos@ansible-server ansible]$ ansible -i hosts -m ping all ansible-client | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
Krok 13: Spouštějte příkazy na vzdáleném ansible-client (všech/název skupiny založené)
[centos@ansible-server ansible]$ ansible -i hosts -m shell -a "more /etc/redhat-release" ansible-client ansible-client | CHANGED | rc=0 >> CentOS Linux release 7.8.2003 (Core)
A je to! Nyní začněte spravovat své vzdálené klienty pomocí ansible svým vlastním způsobem.
Ansible Playbook pomáhá snadněji spravovat vaše servery tím, že provádí složité akce IT s omezeným nebo žádným lidským zapojením. Pokusíme se pokrýt Ansible Playbook v našem dalším článku.