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 Fedoře 35.
Související obsah
- Jak nainstalovat Python 2 a Python 3 na Fedora 35
- Jak nainstalovat Python 2 a Python 3 na Rocky Linux/Centos 8
- Jak nainstalovat a nakonfigurovat Ansible na Rocky Linux/CentOS 8
Předpoklady
Chcete-li pokračovat, ujistěte se, že máte:
- Aktuální server Fedora 35
- Přístup k internetu
- Znalost terminálu Linux
- Kořenový přístup k serveru nebo uživateli s přístupem sudo
Obsah
- Ujistěte se, že jsou balíčky OS aktuální
- Instalace Pythonu na server Fedora 35
- 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 Z výchozího úložiště Fedory
Můžeme nainstalovat ansible, který je k dispozici v repozitářích fedory, 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.27
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/fedora/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.9.7 (default, Aug 30 2021, 00:00:00) [GCC 11.2.1 20210728 (Red Hat 11.2.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.9/site-packages (2.9.27)
Requirement already satisfied: jinja2 in /usr/lib/python3.9/site-packages (from ansible) (2.11.3)
Requirement already satisfied: PyYAML in /usr/lib64/python3.9/site-packages (from ansible) (5.4.1)
Requirement already satisfied: cryptography in /usr/lib64/python3.9/site-packages (from ansible) (3.4.6)
Requirement already satisfied: cffi>=1.12 in /usr/lib64/python3.9/site-packages (from cryptography->ansible) (1.14.5)
Requirement already satisfied: pycparser in /usr/lib/python3.9/site-packages (from cffi>=1.12->cryptography->ansible) (2.20)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib64/python3.9/site-packages (from jinja2->ansible) (1.1.1)
Requirement already satisfied: ply==3.11 in /usr/lib/python3.9/site-packages (from pycparser->cffi>=1.12->cryptography->ansible) (3.11)
4. Testování Ansible instalace
Ansible používá ssh k připojení a provádění příkazů na vzdáleném serveru. Aby tedy Ansible fungoval, musíme zajistit, ž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.