Ansible описание
Ansible – это инструмент автоматизации для управления несколькими удаленными хостами с одной машины.
Он предоставляет вам легкую настройку для большого количества удаленных хостов.
Например, вы выполняете одни и те же задачи на нескольких компьютерах, Ansible предоставляет вам возможность автоматизировать эти задачи.
Этот учебник поможет вам установить Ansible на Ubuntu 18.04 (Bionic) LTS
Шаг 1 – Настройка доступа по SSH
Вы можете настроить ssh на основе ключей для удаленных хостов Linux Ansible.
Поэтому для SSH пароль не потребуется.
Ansible также позволяет использовать пароль для ssh, но основанный на ключах ssh более безопасен.
Создайте пару ssh-ключей на сервере Ansible:
ssh-keygen
Скопируйте открытый ключ на все удаленные хосты, которые необходимо подключить с помощью этого ключа ssh.
ssh-copy-id -i ~/.ssh/id_rsa.pub ssh_user@remote_host
Шаг 2 – Установка Ansible на Ubuntu 18.04
Ansible предоставляет официальный PPA для установки в системах Ubuntu.
Выполните следующую команду, чтобы настроить Ansible PPA в вашей системе Ubuntu 18.04.
После добавления репозитория Ansible выполните следующие команды для установки.
sudo apt update sudo apt install ansible
Шаг 3 – Настройка Ansible: хосты и группы
Ваш сервер с Ansible готов для удаленного управления хостами и автоматизации.
Вы можете иметь несколько хостов, которые вам нужны, и управлять ими с помощью одного сервера Ansible.
Здесь вам нужно определить свои удаленные системы в файле Ansible hosts (/etc/ansible/hosts). Вы также можете создавать группы хостов с похожими типами. Здесь вам необходимо правильно организовать свои хосты в группы. Группы используются для выполнения одной задачи на всех удаленных хостах, определенных под ней.
Измените файл конфигурации Ansible hosts:
sudo nano /etc/ansible/hosts
Добавьте свои хосты и организуйте их группами. Хост может быть добавлен в несколько групп.
[webservers] web-host1 web-host2 [dbservers] db-host1
Картинка ниже поможет вам понять как организоны группы и хосты в группах.
Конфигурация единого хоста
Вам необходимо определить настройки для ваших хостов. Файл с конкретным хостом должен иметь то же имя, что и хост (например: web-host1) в каталоге host_vars.
sudo mkdir /etc/ansible/host_vars sudo vi /etc/ansible/host_vars/web-host1
Добавьте настройки SSH в этот файл для веб-хоста1.
ansible_ssh_host: 192.168.1.15 ansible_ssh_port: 22 ansible_ssh_user: root
Если вы не использовали настройки shh в шаге 1 , вы можете выполнить настройку аутентификации:
ansible_ssh_pass: secret_password ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem
Конфигурация группы Vars
Вы можете править общие настройки переменных для группы в групповых конфигурациях.
Имя файла группы должно быть таким же, как имя группы (например: webservers) в каталоге group_vars.
sudo mkdir /etc/ansible/group_vars sudo vi /etc/ansible/group_vars/webservers
Добавьте общие переменные в этот файл, используемые всеми хостами, добавленными в эту группу.
ansible_ssh_port: 22 ansible_ssh_user: root
Шаг 4 – Тестирование Ansible
Ваша установка Ansible готова к тестированию. Чтобы проверить подключение всех хостов с помощью модуля ping, выполните:
ansible -m ping all
Проверить возможности подключения для определенного хоста или группы хостов:
ansible -m ping web-host1 ## хост ansible -m ping webservers ## группа
Вы также можете запустить команду с использованием shell-модуля.
Например, проверьте свободную память на web-host1.
Вы также можете выполнить одну и ту же задачу для группы.
Просто используйте имя группы вместо имени хоста.
ansible -m shell -a 'free -m' web-host1