Как установить Ansible в Ubuntu 20.04 LTS / 21.04
Ansible — это бесплатный инструмент для автоматизации и настройки ИТ с открытым исходным кодом. Он доступен почти для всех дистрибутивов Linux и может использоваться для управления системами Linux и Windows. Сегодня Ansible также используется для управления экземплярами EC2 в AWS, виртуальных машинах, контейнерах и т. Д. Для него не требуется никакого агента на управляемых хостах, но требуется только соединение ssh.
В этой статье мы расскажем, как установить последнюю версию Ansible на Ubuntu 20.04 LTS / 21.04.
Системные требования для Ansible
- Минимально установленная Ubuntu 20.04 LTS / 21.04
- пользователь sudo с привилегиями root
- 2 ЦП / ВЦП
- 2 ГБ ОЗУ или больше
- Жесткий диск 20 ГБ
- Подключение к Интернету (если у вас нет локально настроенного сервера репозитория apt)
Ниже приведены сведения о моей лабораторной настройке для демонстрации возможности.
- Узел управления Ansible — control.example.com (192.168.1.112)
- Управляемые узлы Ansible — node1.example.com и node2.example.com
- sysops sudo user на управляющих и управляемых узлах с привилегиями.
Примечание. Здесь node1 — это система Ubuntu, node2 — это система CentOS, а control node — это система, в которую мы будем устанавливать ansible. Я предполагаю, что сисопы уже созданы на каждом хосте.
Чтобы настроить пользователя sudo (sysops) для выполнения всех команд без запроса пароля, выполните следующую команду на каждом управляемом хосте.
echo "sysops ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sysops
Давайте перейдем к этапам установки Ansible
Шаг 1) Примените обновления на узле управления
Войдите в систему Ubuntu 20.04 LTS / 21.04 и выполните следующие команды apt, чтобы применить обновления.
$ sudo apt update $ sudo apt updgrade -y
После установки всех обновлений перезагрузите систему один раз.
$ sudo reboot
Шаг 2) Установите зависимости и настройте Ansible Repository
Установите доступные зависимости, выполнив следующую команду apt,
$ sudo apt install -y software-properties-common
После установки зависимостей настройте репозиторий PPA на доступность, запустите
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
Теперь обновите репозиторий, выполнив команду apt.
$ sudo apt update
Шаг 3) Установите последнюю версию ansible
Теперь мы готовы установить последнюю версию Ansible на Ubuntu 20.04 LTS / 21.04, выполните следующую команду.
$ sudo apt install -y ansible
После успешной установки Ansible проверьте его версию, выполнив команду
$ ansible --version
Отлично, приведенный выше вывод подтверждает, что установлена версия Ansible 2.9.6.
Шаг 4) Настройте ключи SSH и поделитесь ими между управляемыми узлами
Теперь давайте сгенерируем ключи SSH для пользователя sysops из управляющего узла и поделимся ими между управляемыми хостами. Запустите команду ssh-keygen
$ ssh-keygen
Нажмите Enter при запросе ввода, результат показан ниже.
Примечание. Добавьте записи управляемого хоста в файл / etc / hosts на управляющем узле. Это требуется только в том случае, если у вас не настроен локальный DNS-сервер.
192.168.1.115 node1.example.com 192.168.1.120 node2.example.com
Чтобы поделиться ключами ssh между элементами управления и управляемыми хостами, выполните команду ssh-copy-id, пример показан ниже.
$ ssh-copy-id node1.example.com $ ssh-copy-id node2.example.com
Вывод вышеперечисленных команд будет выглядеть так, как показано ниже
Шаг 5) Создайте доступный cfg и файл инвентаризации
Всегда рекомендуется иметь отдельный файл ansible.cfg и файл инвентаризации для каждого проекта. В демонстрационных целях я использую demo в качестве названия проекта. Итак, сначала создайте папку проекта, выполнив команду mkdir.
$ mkdir demo
Скопируйте файл ansble.cfg по умолчанию в папку ~/demo,
$ cp /etc/ansible/ansible.cfg ~/demo/
Отредактируйте файл ~/demo/ansible.cfg, установите следующие параметры,
$ vi ~/demo/ansible.cfg
В разделах по умолчанию
inventory = /home/sysops/demo/inventory remote_user = sysops host_key_checking = False
Под privilege_escalation раздел
become=True become_method=sudo become_user=root become_ask_pass=False
Сохраните и закройте файл. Теперь давайте создадим файл инвентаризации, который мы определили в файле ~/demo/ansible.cfg.
$ vi ~/demo/inventory [dev] node1.example.com [prod] node2.example.com
сохранить и выйти из файла
Теперь, наконец, проинструктируйте ansible использовать файл ansible.cfg демонстрационного проекта, объявив переменную ANSIBLE_CONFIG , выполните следующие команды:
$ export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg $ echo "export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg" >> ~/.profile
Запустите команду ansible –version из демонстрационной папки, чтобы проверить конфигурацию ansible.
$ cd demo/ $ ansible --version
Отлично, теперь Ansible читает файл конфигурации ansible нашего проекта. Давайте проверим подключение управляемых узлов с помощью специальной команды ansible,
$ ansible all -m ping
Примечание. Убедитесь, что команда ansible запускается из демонстрационной папки.
Вывод команды будет выглядеть следующим образом:
Эти выходные данные подтверждают наличие подключения от узла управления к управляемым узлам.
Шаг 6) Создайте Ansible playbook для установки пакетов на управляемых хостах
Чтобы проверить установку и настройку ansible, давайте создадим образец плейбука с именем packages.yaml в папке demo.
$ vi packages.yaml --- - name: Playbook to Install Packages hosts: - dev - prod tasks: - name: Install php and mariadb package: name: - php - mariadb-server state: present
Сохраните и закройте файл
Теперь запустите playbook с помощью команды ansible-playbook,
$ ansible-playbook packages.yaml
Вывод:
Приведенный выше вывод подтверждает, что playbook был успешно выполнен. Чтобы проверить результат, выполните следующие специальные команды:
$ ansible dev -m shell -a 'dpkg -l | grep -E "php|mariadb"' $ ansible prod -m shell -a 'rpm -qa | grep -E "php|mariadb"'
На этом статья завершается. Если вы нашли эту статью информативной, не стесняйтесь поделиться ею. Если у вас есть какие-либо вопросы, пожалуйста, оставьте их в комментариях ниже.