GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat a nakonfigurovat Ansible na Redhat Enterprise Linux 8

Tento návod popisuje krok za krokem instalaci a konfiguraci Ansible na Redhat Enterprise Linux 8.
Ansible je přední systém správy konfigurace s otevřeným zdrojovým kódem. Usnadňuje administrátorům a provozním týmům ovládat tisíce serverů z centrálního počítače, aniž by na ně instalovali agenty.

V tomto tutoriálu se naučíte:

  • Přehled Ansible
  • Nainstalujte a nakonfigurujte Python
  • Nastavte SSH bez hesla
  • Nainstalujte Ansible
  • Testování a správa Ansible

Architektura Ansible.

Požadavky na software a použité konvence

Softwarové požadavky a konvence příkazového řádku systému Linux
Kategorie Požadavky, konvence nebo použitá verze softwaru
Systém Red Hat Enterprise Linux 8
Software Python3, Ansible
Jiné Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz.
Konvence # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz
$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel

Přehled Ansible

Ansible je radikálně jednoduchý stroj pro automatizaci IT, který automatizuje poskytování cloudu, správu konfigurace, nasazení aplikací, orchestraci v rámci služeb a mnoho dalších potřeb IT.

Ansible, navržený pro vícevrstvé nasazení již od prvního dne, modeluje vaši IT infrastrukturu tím, že popisuje, jak jsou všechny vaše systémy vzájemně propojeny, místo aby pouze spravoval jeden systém najednou.

Nepoužívá žádné agenty a žádnou další vlastní bezpečnostní infrastrukturu, takže je snadné jej nasadit – a co je nejdůležitější, používá velmi jednoduchý jazyk (YAML, ve formě Ansible Playbooks), který vám umožní popsat vaše automatizační úlohy způsobem, který se blíží obyčejná angličtina. Ansible funguje tak, že se připojí k vašim uzlům a vytlačí do nich malé programy, nazývané „moduly Ansible“.
Tyto programy jsou napsány jako zdrojové modely požadovaného stavu systému. Ansible pak tyto moduly spustí (ve výchozím nastavení přes SSH) a po dokončení je odstraní.

Vaše knihovna modulů může být umístěna na libovolném počítači a nejsou vyžadovány žádné servery, démony ani databáze. Obvykle budete pracovat se svým oblíbeným terminálovým programem, textovým editorem a pravděpodobně systémem správy verzí, abyste mohli sledovat změny svého obsahu.

Nainstalujte a nakonfigurujte Python

Výchozí verze Pythonu v RHEL 8 je Python 3.6. Ale Python 2 zůstává dostupný v RHEL 8. Pokud z nějakého důvodu Python 3.6 chybí v instalaci Red Hat Enterprise Linux 8, budete jej muset nainstalovat ručně.

Python 3.6 lze nainstalovat na RHEL 8 spuštěním příkazu níže na vašem terminálu. Python musí být nainstalován jak na Ansible Server, tak na všech hostitelích/klientech, ke kterým se připojí.

# yum install python3
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 8:59:59 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Dependencies resolved.
======================================================================================================================================================
 Package                 Arch                  Version                                     Repository                                            Size
======================================================================================================================================================
Installing:
 python36                x86_64                3.6.6-17.el8+2102+a4bbd900                  rhel-8-for-x86_64-appstream-beta-rpms                 22 k
Enabling module streams:
 python36                                      3.6                                                                                                   

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 22 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm                                                                        6.0 kB/s |  22 kB     00:03    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 6.0 kB/s |  22 kB     00:03     
warning: /var/cache/dnf/rhel-8-for-x86_64-appstream-beta-rpms-64aba9de5ea7e089/packages/python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)                                                         3.2 kB/s | 3.3 kB     00:01    
Importing GPG key 0xF21541EB:
 Userid     : "Red Hat, Inc. (beta key 2) <[email protected]>"
 Fingerprint: B08B 659E E86A F623 BC90 E8DB 938A 80CA F215 41EB
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
Is this ok [y/N]: y
...
Installed:
  python36-3.6.6-17.el8+2102+a4bbd900.x86_64                                                                                                          

Complete!

Abyste mohli používat Python 3, stačí napsat python3 v terminálu.

Měli byste si uvědomit, že pro použití Pythonu 3 je příkaz python3 a python2 pro Python 2. Co když jsou vaše aplikace nakonfigurovány tak, aby odkazovaly na python, který není dostupný v celém systému. Zobrazí se níže uvedená chyba bash.

# python
-bash: python: command not found

Pomocí mechanismu alternativ můžete povolit příkaz python bez verze v celém systému a nastavit jej na konkrétní verzi. Chcete-li nastavit Python 3 jako výchozí, spusťte následující příkaz.

# alternatives --set python /usr/bin/python3

Spuštění pythonu -V by mělo zobrazit nakonfigurovanou výchozí verzi Pythonu:

#python -V
Python 3.6.6

nebo spuštěním Pythonu na konzoli:

# python
Python 3.6.6 (default, Oct 16 2018, 01:53:53) 
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Nastavit SSH bez hesla

Vytvořte uživatele ansible na všech hostitelích:

# useradd ansible ;  echo "" | passwd --stdin ansible

Proveďte nezbytný záznam v souboru sudoers /etc/sudoers pro přístupného uživatele pro přístup sudo bez hesla:

ansible ALL=(ALL) NOPASSWD: ALL

Nyní vygenerujte klíč SSH na serveru Ansible:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ansible/.ssh/id_rsa): 
Created directory '/home/ansible/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ansible/.ssh/id_rsa.
Your public key has been saved in /home/ansible/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wNt/uNePRkrV+Hhv/DJgteXK2BjOGvPbr9yNigXM2EM ansible@rhel8-ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     .           |
|      o   E    o |
|       + *    + o|
|      . S *  o * |
|         . += + +|
|          ==o@ +.|
|           OBoO+=|
|          +o++*BB|
+----[SHA256]-----+

Zkopírujte jej na vzdálené servery jako uživatel:

$ ssh-copy-id ansible@rhel8-ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
The authenticity of host 'rhel8-ansible-client (192.168.1.109)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/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
ansible@rhel8-ansible-client's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ansible@rhel8-ansible-client'"
and check to make sure that only the key(s) you wanted were added.

Nainstalovat Ansible

Jakmile je Python nainstalován, pokračujte v instalaci Pip, což je správce balíčků Pythonu, který použijeme k instalaci Ansible:

# yum -y install python3-pip
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 9:03:18 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Package python3-pip-9.0.3-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Jakmile budeme mít pip3 nainstalovaný, použijte jej k instalaci Ansible do systému Ansible Management jako uživatel ansible.

$ pip3 install ansible --user

Ansible nainstalovaný můžete vidět pomocí následujícího příkazu:

$ ansible --version
ansible 2.7.6
  config file = None
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.6/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.6.6 (default, Oct 16 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

Testování a správa

Vytvořte soubor inventáře Ansible, výchozí je /etc/ansible/hosts ale můžete zkopírovat soubor hosts do domovského adresáře ansible uživatele. Můžete také vytvořit skupinu vzdálených hostitelů, jak je uvedeno níže v souboru hostitelů.


[web]
192.168.1.105
[db]
192.168.1.107
[app]
192.168.1.108
192.168.1.109
192.168.1.110

K testování Ansible můžete použít modul ping a po úspěšném spuštění uvidíte níže uvedený výstup.

$ ansible -i hosts 192.168.1.109 -m ping
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Volba -i se používá k poskytnutí cesty k souboru inventáře. Měli byste získat stejný výstup pro název skupiny „app“.

$ ansible -i hosts app -m ping
192.168.1.108 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.110 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Závěr

Jednoduchost a schopnost Ansible snížit složitost ostatních nástrojů z něj udělaly spolehlivého žadatele pro vaše prostředí. Jeho hlavním zájmem je bezpečnost a spolehlivost. Pro přenos používá OpenSSH a jazyk je navržen s ohledem na auditovatelnost i pro ty, kteří s programem neznají. Ansible je dostatečně vhodný pro správu jak malých nastavení s několika instancemi, tak i podnikových prostředí.


Linux
  1. Jak nainstalovat a otestovat Ansible na Linuxu

  2. Jak nainstalovat a nakonfigurovat Ansible na Rocky Linux/CentOS 8

  3. Jak nainstalovat a nakonfigurovat EMC PowerPath v systému Linux

  1. Nainstalujte a nakonfigurujte Ansible v Linuxu

  2. Jak nainstalovat a nakonfigurovat TensorFlow na Rocky Linux 8

  3. Jak nainstalovat a nakonfigurovat Memcached na Ubuntu Linux

  1. Jak nainstalovat a nakonfigurovat Redis v systému Linux

  2. Jak nainstalovat a nakonfigurovat DNS server v Linuxu

  3. Jak nainstalovat a nakonfigurovat ZSH na distribucích Linuxu