Как установить Ansible в Ubuntu 20.04 LTS / 21.04

Как установить 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 в Ubuntu 20.04 LTS

Отлично, приведенный выше вывод подтверждает, что установлена ​​версия Ansible 2.9.6.

Шаг 4) Настройте ключи SSH и поделитесь ими между управляемыми узлами

Теперь давайте сгенерируем ключи SSH для пользователя sysops из управляющего узла и поделимся ими между управляемыми хостами. Запустите команду ssh-keygen

$ ssh-keygen

Нажмите Enter при запросе ввода, результат показан ниже.

Как установить Ansible в Ubuntu 20.04 LTS

Примечание. Добавьте записи управляемого хоста в файл / 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

Вывод вышеперечисленных команд будет выглядеть так, как показано ниже

Как установить Ansible в Ubuntu 20.04 LTS

Шаг 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 в Ubuntu 20.04 LTS

Отлично, теперь Ansible читает файл конфигурации ansible нашего проекта. Давайте проверим подключение управляемых узлов с помощью специальной команды ansible,

$ ansible all -m ping

Примечание. Убедитесь, что команда ansible запускается из демонстрационной папки.

Вывод команды будет выглядеть следующим образом:

Как установить Ansible в Ubuntu 20.04 LTS

Эти выходные данные подтверждают наличие подключения от узла управления к управляемым узлам.

Шаг 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

Вывод:

Как установить Ansible в Ubuntu 20.04 LTS

Приведенный выше вывод подтверждает, что playbook был успешно выполнен. Чтобы проверить результат, выполните следующие специальные команды:

$ ansible dev -m shell -a 'dpkg -l | grep -E "php|mariadb"'
$ ansible prod -m shell -a 'rpm -qa | grep -E "php|mariadb"'

На этом статья завершается. Если вы нашли эту статью информативной, не стесняйтесь поделиться ею. Если у вас есть какие-либо вопросы, пожалуйста, оставьте их в комментариях ниже.