Настройка ansible debian 10
Создадим тестовую группу хостов, на которой будем тестировать удаленную установку приложения.
Открываем файл хостов ansible:
Добавляем группу хостов или редактируем ее:
* в данном примере мы создаем 2 группы хостов — redhat-servers для серверов семейства Red Hat и debian-servers — для deb-серверов. В каждую группу входят по одному серверу — 192.168.0.11 и 192.168.0.12.
Проверить доступность хостов для ansible можно командой:
ansible -m ping all -u ansible -k
* данной командой мы пропингуем все хосты из инвентаризационного файла hosts.
Создание плейбука
Создаем файл для playbook:
- --- — начало файла YAML . Данный формат имеет строгую структуру — важен каждый пробел;
- hosts — группа хостов, к которым будут применяться правила плейбука (если мы хотим, чтобы правила применялись ко всем хостам, указываем hosts: all);
- become — указывает на необходимость эскалации привилегий;
- become_method — метод эскалации привилегий;
- become_user — пользователь под которым мы заходим с помощью become_method;
- remote_user — пользователь, под которым будем подключаться к удаленным серверам;
- roles — список ролей, которые будут применяться для плейбука.
* В данном случае мы задействуем нашу группы хостов, которые создали в самом начале; повышаем привилегии методом su под пользователем root (su - root) для группы redhat-servers и методом sudo для debian-servers; подключение к серверам выполняется от пользователя ansible; используем созданную нами роль nginx (саму роль мы создадим позже). Для систем RPM сначала выполним роль epel — она будет отвечать за установку репозитория EPEL , так как в стандартном репозитории nginx нет.
Стоит отдельно уделить внимание вопросу повышения привилегий. IT-среды могут применять разные политики относительно безопасности. Например, на серверах CentOS, по умолчанию, нет sudo и повышать привилегии нужно с помощью su. В Ubuntu наоборот — по умолчанию есть sudo, а su не работает, так как пароль на root не устанавливается. В данном случае есть несколько путей при работе с Ansible:
- Как в нашем примере, разделить группы хостов на разные семейства операционных систем и применять к ним разные методы повышения привилегий. Чтобы данный плейбук корректно отработал, учетная запись, под которой идет удаленное подключение к серверу (в нашем примере ansible) должна иметь такой же пароль, как у пользователей root на серверах семейства Red Hat. Данный метод удобен с точки зрения отсутствия необходимости приводить к единому виду безопасность серверов разного семейства. Однако, с точки зрения безопасности лучше, чтобы пароли у root и ansible были разные.
- Использовать метод для создания плейбука, как описан выше, но запускать его с ключом --limit, например, ansible-playbook --limit=debian-servers … — таким образом, мы запустим отдельные задания для каждого семейства операционных систем и сможем ввести индивидуальные пароли для каждого случая.
- Мы можем на всех серверах deb установить пароль для пользователя root, таким образом, получив возможность для become_method: su.
- И наконец, можно для серверов Red Hat установить sudo и проходить become с помощью метода sudo.
Создание роли
Роли в Ansible используются для логического разделения плейбука. Они имеют строгий синтаксис и файловую структуру. Таким образом, конфигурация становится более упорядоченной и понятной для дальнейшей поддержки.
И так, для ролей должна быть четкая файловая структура — создаем каталоги:
Ansible на Debian может работать также успешно как и на Centos, клиентами могут быть машины с любыми ОС.
Управление конфигурацией серверов осуществляется при помощи так называемых playbooks, которые являются файлами в формате yml. Инструкции довольно просты, чтобы освоить синтаксис достаточно прочитать соответствующий раздел документации к пакету.
Рассмотрим установку и настройку пакета Ansible на Debian 7 Wheezy
Обновляем список репозиториев
Пробуем установить пакет из репозитория
В стандартном репозитории пакета нет, но можно поискать его, он может встречаться в других подключенных репозиториях
Установка Ansible на Debian 7 из бэкпортов
Подключаем репозитоирй с бэкпортами для wheezy
Далее вновь обновляем информацию и устанавливаем пакет из бэкпортов
Затем проверяем версию, если никаких ошибок при установке не возникло отобразится примерно такая информация:
Установка Ansible на Debian сервер завершена, переходим в каталог с конфигурационными файлами
Просматриваем основной конфиг
В нем задаются все параметры работы пакета, самым важным является hostfile = /etc/ansible/hosts, определяющим из какого файла будет браться список хостов на который распространяется конфигурация
Ansible получает доступ к серверам по ssh, в конфиге среди прочего задается таймаут соединения (по умолчанию это 10 секунд)
После этого генерируем ключи и отправляем публичный ключ на все сервера, которые были добавлены в hosts на предыдущем шаге
Если возникают ошибки может потребоваться установить некоторые дополнительные пакеты
apt-get install libffi-dev g++ libssl-dev
Попробуем вывести в консоль hostname всех серверов из hosts
Это один из стандартных сценариев из репозитория Ansible на github. Они находятся в свободном доступе и их можно использовать.
Конфигурация применится ко всем серверам при выполнении следующей команды:
Главное меню » Операционная система Linux » Краткое руководство: Как установить и настроить Ansible в Linux для автоматизации
(1 оценок, среднее: 5,00 из 5)Почему необходимо установить и настроить Ansible в Linux.
С помощью использования систем управления конфигурацией мы можем контролировать большое количество серверов, которые облегчают жизнь системных администраторов. В двух словах, мы можем контролировать или управлять огромным количеством серверов или систем с одного центрального сервера с помощью средств автоматизации.Есть много таких инструментов, доступных для автоматизации, таких как Chef или Puppet. Однако эти инструменты имеют сложности в настройке. У нас есть отличная альтернатива для этих вариантов, это Ansible. С помощью ее, вы можете очень легко установить и настроить Ansible в Linux.
Это руководство быстро расскажет вам о том, как установить и настроить Ansible в Linux.
Сколько Ansible работает!
Ansible не использует какие-либо средства для выполнения задач автоматизации, а это значит, что нет никаких фоновых процессов работающих на клиентах. Вместо этого, Ansible делает соединение с использованием SSH для осуществления своих операций.
Детали установки для установки Ansible.
Детали для сервера управления Ansible:
Детали машины клиента:
Шаг 1: Установка Ansible на сервере управления.
Для Linux Mint, Ubuntu и Debian
Для RHEL, CentOS и Fedora
Пожалуйста, обратите внимание, что нет никакого официального репозитория Ansible для RedHat, мы все еще можем установить Ansible, добавляя репозиторий Epel под RHEL или Centos.
После установки Ansible вы можете проверить версию с помощью следующей команды.
Шаг 2: Настройка SSH для настройки Ansible.
Для развертывания или управления на клиентской машине с нашего сервера управления «destroyer», нам нужно установить пароль на SSH между ними. В этой демонстрации мы настроили пользователя lradmin для пароля SSH.
Генерировать ключи SSH на сервере управления для пользователя lradmin.
Здесь мы сделали генерацию ключей, в следующем шаге нам необходимо скопировать содержимое «/root/.ssh/id_rsa.pub» на клиентскую систему для пользователя lradmin. Пожалуйста, следуйте инструкциям, приведенные в этом посте, так чтобы пароль имел связь между сервером управления и машиной клиента web1 и web2.
После того, как вы закончите с паролем конфигурации, вы можете перепроверить, делая SSH, как показано ниже.
Шаг 3: Создание файла инвентаризации для Ansible.
На следующем этапе нам нужно создать файл инвентаризации для списка клиентов. В основном его список IP клиента или имя хоста для машин, которые используются для автоматизации.
Пожалуйста, добавьте ниже строки кода в файл “/etc/Ansible/hosts” на нашем сервере управления.
Приведенные выше строки кода описывают, как список клиентских машин подпадает под категорию веб-пользователя, имеющего Ansible как lradmin.
Шаг 4: Проверьте соединение.
Теперь пришло время, чтобы проверить, является ли наша конфигурация правильно установлена или нет. Для этого мы будем использовать пинг в Ansible.
Шаг 4: Выполнение удаленных команд на клиентских машинах.
Теперь мы имеем возможность запускать произвольные команды на клиентских машинах, чтобы извлечь некоторую информацию о них. Таким образом, чтобы сделать это, необходимо использовать модуль «command» в пределах Ansiblensible.
- В случае, если вы хотите использовать файловую систему на клиентской машине.
Проверка бесперебойной работы клиентских машин.
Вывод:
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Когда я говорю об инструментах управления конфигурацией, чаще всего упоминается название Ansible. Это кроссплатформенный инструмент, предназначенный для обработки системных конфигураций при работе с операционными системами Linux, macOS и Windows.
- Как установить Gradle на Debian 10
- Как установить Qmmp в Debian 10
Сегодня, Советы представит процесс установки Ansible в Debian 10.
Установка Ansible на Debian 10
Чтобы установить Ansible в Debian 10, вам нужно сделать три простых шага:
Шаг 1. Обновите свою систему Debian 10
Перед установкой Ansible в Debian 10 вы должны обновить его, используя команду, показанную ниже:
После обновления вашей системы Debian 10 вы должны увидеть в Терминале информацию, как показано на следующем изображении:
Шаг 2. Установите Ansible в системе Debian 10
После завершения обновления системы вы можете установить Ansible в Debian 10, используя команду, показанную ниже:
Шаг 3: Подтверждение установки Ansible в системе Debian 10
Установка Ansible в системе Debian 10 настолько проста, что ее нужно выполнить за два шага, описанных выше. Однако вы все равно можете проверить, был ли он успешно установлен в вашей системе Debian 10. Это можно сделать, проверив версию Ansible с помощью следующей команды:
Версия Ansible, установленная в системе Debian 10 в этом примере, - 2.7.7.
Отредактируйте хост файла / etc / ansible / hosts чтобы добавить систему, которой вы хотите управлять с помощью Ansible.
Пожалуйста, добавьте следующее:
И сохраните файл.
Использовать Ansible
Во-первых, вы должны настроить SSH-ключ для клиентского узла, поскольку Ansible использует протокол SSH для передачи команд клиентской системе.
Используйте эту команду для генерации ключа SSH и аутентификации на основе ключа:
Выход:
Следующим шагом является копирование вновь созданного ключа в другую систему. Выполните эту команду:
IP 192.168.0.2 в приведенной выше команде следует заменить IP-адресом системы, которой вы хотите управлять с помощью Ansible.
Выход:
Теперь, когда пришло время провести первый тест, войдите в систему на другом компьютере, используя эту команду SSH:
Теперь логин должен работать без пароля.
Тестовый запуск Ansible
Установка завершена, теперь вы можете приступить к тестированию Ansible.
Выполните эту команду, чтобы проверить соединение:
Выход:
Если вы определили несколько клиентов, вы можете проверить все соединения с помощью следующей команды:
Теперь пора запустить команду в удаленной системе и получить результаты. В этом примере будет использоваться команда df.
Выход:
Результаты показывают использование жесткого диска в удаленной системе. Вы можете выполнить любую команду оболочки Linux, подобную этой, с помощью Ansible, а также создать полный сценарий для настройки и обслуживания сервера.
Читайте также: