Как установить и настроить Ansible в Ubuntu 18.04 LTS
Это руководство существует для этих версий ОС
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 18.04 (Bionic Beaver)
На этой странице
- Требования
- Начало работы
- Установка и настройка Ansible
- Настройка ключей SSH для клиентской системы
- Работа с Ansible
Ansible — это бесплатное программное обеспечение с открытым исходным кодом, которое можно использовать для автоматизации подготовки программного обеспечения, управления конфигурацией и развертывания приложений. В отличие от Puppet или Chef, вам не нужно настраивать клиент-серверную среду перед использованием Ansible. Вы можете управлять несколькими хостами из центрального места. Это очень простой, но мощный инструмент для автоматизации сложных многоуровневых сред ИТ-приложений. Ansible обменивается данными по обычным каналам SSH для получения информации с удаленных компьютеров и выполнения задач.
В этом руководстве мы узнаем, как установить и использовать Ansible на сервере Ubuntu 18.04.
Требования
- Две серверные системы Ubuntu 18.04 с установленным сервером OpenSSH.
- Статический IP-адрес 192.168.0.101 установлен в серверной системе, а 192.168.0.104 — в клиентской системе.
- В обеих системах настроен пользователь без полномочий root с привилегиями sudo.
Начиная
Перед запуском обновите свою систему до последней версии с помощью следующей команды:
sudo apt-get update -y
sudo apt-get upgrade -y
Как только ваша система будет обновлена, перезагрузите систему, чтобы применить изменения.
Установите и настройте Ansible
По умолчанию последняя версия Ansible недоступна в стандартном репозитории Ubuntu 18.04. Поэтому вам нужно будет добавить Ansible PPA на ваш сервер. Вы можете сделать это, выполнив следующую команду:
sudo apt-add-repository ppa:ansible/ansible
Затем обновите репозиторий и установите Ansible с помощью следующей команды:
sudo apt-get update -y
sudo apt-get install ansible -y
После завершения установки вы можете проверить версию Ansible с помощью следующей команды:
sudo ansible --version
Вывод:
ansible 2.7.1 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0]
Затем вам нужно будет определить свою клиентскую систему, которой вы хотите управлять, в файле хостов Ansible. Вы можете сделать это, отредактировав файл /etc/ansible/hosts:
sudo nano /etc/ansible/hosts
Добавьте следующие строки:
[Client] node1 ansible_ssh_host=192.168.0.104
Сохраните и закройте файл, когда закончите.
Настройка ключей SSH для клиентской системы
Ansible использует SSH для связи с клиентским хостом. Поэтому вам нужно будет настроить аутентификацию ssh на основе ключей для клиентского хоста.
Сначала сгенерируйте пару ключей SSH с помощью следующей команды:
ssh-keygen
Вывод:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:bTVjTCKqxD8rnIw7/6mB6ZH9cnhzzOFg+/+x4clSOow The key's randomart image is: +---[RSA 2048]----+ | . . . | | . . . + | | o . * | | . o . o o | | . o S o | | O .oo.. . | | * Bo.* + oo | | ..oo+=.E =o = | | ooo*++...+* | +----[SHA256]-----+
Затем скопируйте этот открытый ключ в клиентскую систему с помощью следующей команды:
ssh-copy-id -i ~/.ssh/id_rsa.pub 4
Вывод:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /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 's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh ''" and check to make sure that only the key(s) you wanted were added.
Работа с Ansible
Теперь Ansible установлен и настроен. Пришло время проверить Ansible.
На сервере Ansible попробуйте пропинговать свою клиентскую систему с помощью Ansible с помощью следующей команды.
ansible -m ping Client
Вывод:
node1 | SUCCESS => { "changed": false, "ping": "pong" }
Если у вас настроено несколько клиентов в файле Ansible hosts. Затем вы можете пропинговать всю клиентскую систему с помощью следующей команды:
ansible -m ping all
Вы можете проверить статус веб-сервера Apache в клиентской системе с помощью следующей команды:
ansible -m shell -a 'service apache2 status' Client
Вывод:
node1 | CHANGED | rc=0 >> * apache2 is running
Чтобы проверить размер раздела клиентской системы, выполните следующую команду:
ansible -m shell -a 'df -h' Client
Вывод:
node1 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on /dev/sda1 138G 48G 83G 37% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 1.9G 4.0K 1.9G 1% /dev tmpfs 384M 1.2M 383M 1% /run none 5.0M 0 5.0M 0% /run/lock none 1.9G 67M 1.9G 4% /run/shm none 100M 36K 100M 1% /run/user /dev/sda5 225G 35G 180G 16% /Data
Поздравляем! вы успешно установили и настроили Ansible на сервере Ubuntu 18.04. Теперь вы можете легко использовать Ansible для удаленного выполнения простых задач.