Поиск по сайту:

Как установить и настроить инструмент автоматизации Ansible для управления ИТ. Часть 1


Ansible — это мощное программное обеспечение для автоматизации с открытым исходным кодом, позволяющее настраивать, управлять и развертывать программные приложения на узлах без простоев, просто используя SSH. Сегодня большинство инструментов ИТ-автоматизации работают как агенты на удаленном хосте, но для выполнения своих действий Ansible просто требуется SSH-соединение и Python (2.4 или более поздняя версия) на удаленных узлах.

Как работает Ансибль?

Доступно множество подобных инструментов автоматизации, таких как Puppet, Capistrano, Chef, Salt, Space Walk и т. д., но Ansible подразделяется на два типа серверов: управляющие машины и узлы.

Управляющая машина, на которой установлен Ansible и узлы управляются этой управляющей машиной через SSH. Расположение узлов определяется управляющей машиной через ее инвентарь.

Управляющая машина (Ansible) развертывает модули на узлах с использованием протокола SSH, и эти модули временно хранятся на удаленных узлах и взаимодействуют с машиной Ansible через соединение JSON через стандартный вывод.

Ansible не требует агентов, что означает, что нет необходимости устанавливать какие-либо агенты на удаленных узлах, а это означает, что для Ansible не выполняются никакие фоновые демоны или программы, когда он не управляет какими-либо узлами.

Ansible может обрабатывать сотни узлов из одной системы через соединение SSH, и вся операция может обрабатываться и выполняться одной единственной командой «ansible». Но в некоторых случаях, когда для развертывания требуется выполнить несколько команд, здесь мы можем создать сборники сценариев.

Книги воспроизведения — это набор команд, которые могут выполнять несколько задач, и каждая книга игр имеет формат файла YAML.

Какая польза от Ansible

Ansible можно использовать в ИТ-инфраструктуре для управления и развертывания программных приложений на удаленных узлах. Например, предположим, что вам нужно развернуть одно программное обеспечение или несколько программ на 100 узлах с помощью одной команды, здесь на сцену выходит ansible. С помощью Ansible вы можете развернуть столько же приложений на многих узлах с помощью одной единственной команды, но для понимания ansible-скриптов вам необходимо иметь немного знаний в области программирования.

Мы составили серию статей об Ansible под названием «Подготовка к развертыванию вашей ИТ-инфраструктуры с помощью Ansible IT Automation Tool», части 1–4, и охватывают следующие темы.

В этой статье мы покажем вам, как установить Ansible в системах RHEL/CentOS 7/6, Fedora 21-19, Ubuntu 14.10-13.04 и Debian 7/6, а также рассмотрим некоторые основы управления сервер, устанавливая пакеты, применяя обновления и многое другое, от базового до профессионального.

Предварительные условия

  1. Операционная система: RHEL/CentOS/Fedora и Ubuntu/Debian/Linux Mint.
  2. Jinja2: современный, быстрый и простой в использовании автономный механизм шаблонов для Python.
  3. PyYAML: анализатор и генератор YAML для языка программирования Python.
  4. parmiko: собственная библиотека каналов SSHv2 Python.
  5. httplib2: комплексная клиентская библиотека HTTP.
  6. sshpass: неинтерактивная аутентификация по паролю ssh.

Моя настройка среды

Управляющая машина – Ansible
Operating System :	Linux Mint 17.1 Rebecca
IP Address	 :	192.168.0.254
Host-name	 :	tecmint.instrcutor.com
User		 :	tecmint
Удаленные узлы
Node 1: 192.168.0.112
Node 2: 192.168.0.113
Node 3: 192.168.0.114

Шаг 1. Установка управляющей машины — Ansible

1. Перед установкой Ansible на сервер давайте сначала проверим данные сервера, такие как имя хоста и IP-адрес. Войдите на сервер как пользователь root и выполните приведенную ниже команду, чтобы подтвердить настройки системы, которые мы собираемся использовать для этой настройки.

sudo ifconfig | grep inet

2. После подтверждения настроек системы пришло время установить в систему программное обеспечение Ansible.

В Ubuntu/Debian/Linux Mint

Здесь мы собираемся использовать официальный репозиторий Ansible PPA в системе, просто запустите приведенные ниже команды, чтобы добавить репозиторий.

sudo apt-add-repository ppa:ansible/ansible -y
sudo apt-get update && sudo apt-get install ansible -y

На RHEL/CentOS/Fedora

К сожалению, официального репозитория Ansible для клонов на основе RedHat не существует, но мы можем установить Ansible, включив репозиторий epel в RHEL/CentOS 6, 7 и поддерживаемых в настоящее время дистрибутивах Fedora.

Пользователи Fedora могут напрямую установить Ansible через репозиторий по умолчанию, но если вы используете RHEL/CentOS 6, 7, вам необходимо включить репозиторий EPEL.

После настройки репозитория epel вы можете установить Ansible, используя следующую команду.

sudo yum install ansible -y

После успешной установки вы можете проверить версию, выполнив команду ниже.

ansible --version

Шаг 2. Подготовка ключей SSH для удаленных хостов

4. Чтобы выполнить любое развертывание или управление с локального хоста на удаленный хост, сначала нам необходимо создать и скопировать ключи ssh на удаленный хост. На каждом удаленном хосте будет учетная запись пользователя tecmint (в вашем случае это может быть другой пользователь).

Сначала давайте создадим ключ SSH, используя команду ниже, и скопируем его на удаленные хосты.

ssh-keygen -t rsa -b 4096 -C "[email "

5. После успешного создания SSH-ключа скопируйте созданный ключ на все три удаленных сервера.

ssh-copy-id [email 
ssh-copy-id [email 
ssh-copy-id [email 

6. После копирования всех ключей SSH на удаленный хост теперь выполните аутентификацию по ключу ssh на всех удаленных хостах, чтобы проверить, работает ли аутентификация или нет.

ssh [email 
ssh [email 
ssh [email