Samotný Ansible je napsán v Pythonu a má poměrně minimální křivku učení. Ansible se řídí jednoduchým postupem nastavení a není závislý na žádném dodatečném softwaru, serverech nebo klientských démonech. Spravuje uzly přes SSH a ve výchozím nastavení je paralelní.
V této příručce se naučíme, jak nainstalovat a nakonfigurovat Ansible na Rocky Linux/CentOS 8.
Související obsah
- Jak nainstalovat Python 2 a Python 3 na Rocky Linux/Centos 8
- Jak nainstalovat Python 2 a Python 3 na Fedora 35
- Jak nainstalovat a nakonfigurovat Ansible na Fedoře 35
Předpoklady
Chcete-li pokračovat, ujistěte se, že máte:
- Aktuální server Rocky Linux/Centos 8
- Přístup k internetu
- Znalost terminálu Linux
Obsah
- Ujistěte se, že jsou balíčky OS aktuální
- Instalace Pythonu na Rocky Linux/Centos 8 Server
- Instalace Ansible
- Testování instalace Ansible
1. Ujistěte se, že jsou balíčky OS aktuální
Před pokračováním se vždy doporučuje aktualizovat systém a nainstalované balíčky.
Pomocí tohoto příkazu se ujistěte, že jsou systémové balíčky aktuální:
sudo dnf -y update
2. Instalace Pythonu na Rocky Linux/Centos 8 Server
Ansible je napsán v Pythonu. Vzhledem k tomu, že programy v pythonu jsou interpretovány, vždy potřebují ke spuštění běhové prostředí pythonu, které je k dispozici. Ansible není výjimkou, ke spuštění Ansible potřebujeme, aby existoval Python. Ansible funguje pro Python 2 i Python 3.
Použijte toto k instalaci python3 na server:
sudo dnf install -y python3
Pip je správce balíčků pro Python. Pip můžeme použít ke správě balíčků python python a jejich závislostí. Budeme také potřebovat pip k instalaci ansible. K instalaci pip použijte tyto příkazy:
sudo dnf -y install python3-pip
Také se doporučuje mít nainstalovanou nejnovější verzi pipu. Pomocí tohoto příkazu upgradujete pip
sudo pip3 install --upgrade pip
3. Instalace Ansible
Existují dva způsoby, jak můžeme Ansible nainstalovat do našeho systému.
i. Nainstalujte ansible pomocí EPEL repo
Extra balíčky pro Enterprise Linux (nebo EPEL) je speciální zájmová skupina Fedory, která vytváří, udržuje a spravuje vysoce kvalitní sadu dodatečných balíčků pro Enterprise Linux. Přidejte úložiště EPEL do systému Rocky Linux/Centos 8 pomocí tohoto příkazu:
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Poté můžeme nainstalovat ansible, který je k dispozici v EPEL repo pomocí tohoto příkazu:
sudo dnf install ansible
Zkontrolujte verzi Ansible nainstalovanou ve vašem systému pomocí tohoto příkazu:
$ ansible --version
ansible 2.9.25
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/rocky/.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 21 2021, 18:40:00) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
Instalovat ansible pomocí pip
Pip lze použít k instalaci ansible na náš systém.
pip3 install ansible --user
Protože jsem již nainstaloval ansible v mém případě, dostávám toto
$ pip3 install ansible --user
Requirement already satisfied: ansible in /usr/lib/python3.6/site-packages (2.9.25)
Requirement already satisfied: jinja2 in /usr/lib/python3.6/site-packages (from ansible) (2.10.1)
Requirement already satisfied: PyYAML in /usr/lib64/python3.6/site-packages (from ansible) (3.12)
Requirement already satisfied: cryptography in /usr/lib64/python3.6/site-packages (from ansible) (3.2.1)
Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography->ansible) (1.11.0)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/lib64/python3.6/site-packages (from cryptography->ansible) (1.11.5)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib64/python3.6/site-packages (from jinja2->ansible) (0.23)
Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography->ansible) (2.14)
4. Testování Ansible instalace
Ansible používá ssh k připojení a provádění příkazů na vzdáleném serveru. Aby Ansible fungoval, musíme se ujistit, že se můžeme připojit ke vzdálenému serveru pomocí ssh.
Chcete-li na vzdálený server provést ssh bez hesla, použijte tento příkaz pro vygenerování klíče ssh:
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rocky/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rocky/.ssh/id_rsa.
Your public key has been saved in /home/rocky/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vRdPlegZg17H4aMt30jQsiTYe0Jnh0zErhnSnuUQj3g [email protected]
The key's randomart image is:
+---[RSA 3072]----+
| oo . |
| o.ooo+ o|
| .o+*O=o*.|
| ooE**=B..|
| S++X+=o. |
| =+.=o..|
| . . o..|
| . |
| |
+----[SHA256]-----+
Zkopírujte id na vzdálený server:
ssh-copy-id [email protected]
Nyní vytvořte soubor inventáře:
vim hosts
S tímto obsahem:
10.2.40.182 ansible_ssh_user=fedora
Pomocí modulu ping otestujte ansible:
$ ansible -i hosts 10.2.40.182 -m ping 10.2.40.182 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
U příkazů, které vyžadují sudo, předejte možnost --ask-become-pass
. To bude vyžadovat heslo pro eskalaci oprávnění. To může vyžadovat instalaci sshpass
program.
$ ansible -i hosts 10.2.40.182 -m command -a "sudo yum install vim" --ask-become-pass
BECOME password:
[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo
10.2.40.182 | CHANGED | rc=0 >>
Last metadata expiration check: 0:23:39 ago on Wed 03 Nov 2021 08:35:14 PM UTC.
Package vim-enhanced-2:8.2.3512-1.fc34.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Závěr
Podařilo se nám nainstalovat Ansible a otestovat připojení ke vzdálenému serveru v této příručce.