Как создать Ansible Playbook в Ubuntu

Ansible Playbook в Ubuntu Изучение

Ansible — это мощный инструмент автоматизации и удаленного управления, который позволяет администрировать все ваши удаленные машины. Ansible является кроссплатформенным и может работать на большинстве машин без необходимости в дополнительном программном обеспечении. Он также предлагает безопасность, используя SSH и Python на удаленных машинах для выполнения определенных задач.

Он поддерживает два метода управления удаленными машинами: специальные команды и сценарии воспроизведения Ansible. Специальные команды — это необработанные команды, которые вы можете выполнить в терминале для выполнения задачи в одном экземпляре.

С другой стороны, Ansible Playbooks — это файлы, написанные на языке YAML. Они содержат одну или несколько задач, выполняемых на удаленной машине. Из-за строгого характера YAML, сценарии Ansible требуют особого внимания к общему синтаксису.

Это руководство познакомит вас с основами написания Ansible Playbook и выполнения команд на удаленных машинах. Для иллюстраций в этом руководстве мы создадим простую книгу, которая устанавливает и настраивает веб-сервер Apache.

ПРИМЕЧАНИЕ: это руководство не предназначено для обучения вас Ansible. Все, что он делает, это дает вам советы и рекомендации по написанию сборника пьес на Ansible.

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

Чтобы получить максимальную отдачу от этого руководства, мы рекомендуем следовать ему. Вам потребуются следующие вещи.

Ubuntu или дистрибутив на основе Debian — это машина, которую мы используем для подключения к удаленным машинам с помощью SSH.
Удаленная машина для управления с помощью Ansible — мы рекомендуем приобрести систему Linux, такую ​​как Debian Server.

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

Как установить Ansible в Debian / Ubuntu

Самый первый шаг — убедиться, что у нас установлен и запущен Ansible на нашем локальном компьютере. В этом уроке я буду использовать Ubuntu.

Шаг 1
Начните с обновления вашей системы, используя следующие команды:

sudo apt-get update
sudo apt-get dist-upgrade -y

Шаг 2
Затем используйте приведенные ниже команды, чтобы установить Ansible в Ubuntu.

sudo apt install software-properties-common
sudo add-apt-repository —yes —update ppa:ansible/ansible
sudo apt install ansible -y

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

Как настроить Ansible Inventory

Чтобы управлять удаленными серверами с помощью Ansible, вам необходимо сообщить об этом Ansible. Мы делаем это, создавая файл инвентаризации, содержащий IP-адреса или имена хостов удаленных машин.

По умолчанию файл инвентаризации хоста находится в / etc / ansible / hosts.

Чтобы узнать, как создать собственный файл инвентаризации хоста в Ansible, рассмотрите одно из наших руководств.

Отредактируйте файл / etc / ansible / hosts и добавьте IP-адрес вашего удаленного компьютера, как показано ниже:

hosts и добавьте IP-адрес вашего удаленного компьютера

В приведенном выше примере инвентаризации мы создаем группу серверов (linuxhint), которыми будем управлять в этом руководстве. У вас могут быть другие группы, такие как веб-серверы, серверы баз данных и т.д.

Как настроить пару ключей SSH

Ansible использует SSH для входа на указанные удаленные машины и выполняет задачи, определенные в playbook. Поэтому, чтобы минимизировать взаимодействие и создать полностью автоматизированный рабочий процесс, лучше всего создать пару SSH для входа на удаленный компьютер.

Шаг 1

Первым шагом является создание пары ключей SSH с помощью инструмента ssh-keygen. Используйте команду как:

ssh-keygen

Это интерактивно попросит вас сгенерировать пару ключей SSH. Для простоты примите значения по умолчанию и не добавляйте парольную фразу.

Результат для этого ниже:

Это интерактивно попросит вас сгенерировать пару ключей SSH

Шаг 2

Затем нам нужно скопировать ключ SSH на удаленные машины с помощью инструмента ssh-copy-id. Используйте команду как:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_ip

Как написать Ansible Playbook

Как я упоминал ранее, в плейбуках Ansible используется YAML, и, следовательно, вам необходимо соблюдать строгие синтаксические соглашения.

Чтобы оставаться организованным, давайте создадим каталог, в котором мы будем хранить все наши playbook.

cd ~
mkdir anisble-workspace

cd ansible-workspace

Теперь, когда у нас есть каталог, давайте создадим нашу первую Ansible Playbook (файл должен иметь расширение.yaml.

vim test.yaml

Внутри файла YAML добавьте следующее содержимое.


— hosts: all
become: true
become_method: sudo
tasks:
— name: «Show Network Interfaces»
command: ifconfig
register: details
— name: ‘Get Interfaces details’
debug:
msg: «{{ details.stdout }}»

Сохраните файл и запустите его на сервере с помощью команды:

ansible-playbook test.yaml

Команда выведет информацию о сетевых интерфейсах на удаленных машинах, как показано на изображении ниже:

Команда выведет информацию о сетевых интерфейсах на удаленных машинах, как показано на изображении ниже

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

Как регистрировать переменные в Ansible Playbooks

Чтобы создать переменную в пьесе Ansible, мы используем ключевое слово register, за которым следует имя переменной. Вы также можете использовать имя переменной в качестве ключа и установить ее значение, используя запись с двоеточием.

Например, два способа зарегистрировать переменную в Ansible.

register: variable1
variable2: value

Определив переменную, вы можете использовать ее, называя ее имя внутри набора из двух фигурных скобок как:

‘Calling the variable {{ variable1 }} inside a string’
{{ variable2 }}

Повышение привилегий в Ansible

Ansible также позволяет вам повышать привилегии пользователя, использующего сборщик. Метод стать — это логическое значение, указывающее, что задачи внутри playbook должны выполняться от имени пользователя root.

В нашем первом сборнике сценариев мы устанавливаем для параметра stat значение true и устанавливаем метод повышения привилегий как sudo.

Apt Inside Playbooks

Ansible предоставляет нам способы управления пакетами APT в системе на основе Debian. Используя этот метод, вы можете обновлять, устанавливать и удалять пакеты с помощью Ansible playbook.

Рассмотрим файл update.yaml, показанный ниже:


— hosts: all
become: yes
become_method: sudo
tasks:
— name: «Update cache & Full system update»
apt:
update_cache: true
cache_valid_time: 3600
force_apt_get: true

Вышеупомянутые сценарии обновляют кеш репозитория. Это соответствует необработанной команде как:

Sudo apt-get update

Это может быть невероятно полезно при установке программного обеспечения, такого как apache, nginx и т. Д., На удаленный хост.

Пример использования

В этом разделе будет создана инструкция, которая устанавливает веб-сервер Apache в системе Debian и выполняет базовую настройку.

В этом сборнике показаны различные движущиеся части Ansible и представлен хороший пример того, как работают сценарии Ansible.

Начните с создания файла YAML.

vim config_apache.yaml

Внутри YAML введите следующую книгу.


— hosts: all
become: true
become_method: sudo

tasks:
— name: «Update packages and upgrade»
apt:
update_cache: true
upgrade: dist
force_apt_get: true
— name: «Install Apache server»
apt:
name: apache2
state: latest
— name: «Create document root»
file:
path: «/var/www/html»
state: directory
owner: «www-data»
mode: 0755
— name: «Enable Apache on Firewall»
ufw:
rule: allow
port: 80
proto: tcp
— name: «restart apache2 service»
service:
name: apache2
state: restarted

Сохраните файл и запустите его на удаленном сервере с помощью команды:

ansible-playbook —user=»ubuntu» config_apache.yaml

После успешного выполнения вы увидите на выходе, как показано.

После успешного выполнения вы увидите на выходе, как показано

Убедитесь, что сервер работает, используя curl как:

curl 192.168.0.13

Вы должны получить исходный код apache по умолчанию (фрагмент показан ниже).

Вы должны получить исходный код apache по умолчанию (фрагмент показан ниже)

На этом мы закончили этот урок.

Заключение

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

Читайте также:  10 лучших фреймворков Nodejs для разработки приложений в 2023 году
Оцените статью
bestprogrammer.ru
Добавить комментарий