Начало работы
После прочтения руководства по установке и установки Ansible на контрольном узле вы готовы узнать, как работает Ansible. Команда или плейбук Ansible:
- выбирает машины для выполнения из инвентаризации
- подключается к этим машинам (или сетевым устройствам, или другим управляемым узлам), обычно по SSH
- копирует один или несколько модулей на удалённые машины и запускает выполнение там
Ansible может делать гораздо больше, но вы должны понять наиболее распространённый случай использования, прежде чем изучать все мощные возможности конфигурации, развертывания и оркестрации Ansible. Эта страница иллюстрирует базовый процесс с помощью простой инвентаризации и команды ad-hoc. После того, как вы поймёте, как работает Ansible, вы можете прочитать более подробные сведения о командах ad-hoc, организовать свою инфраструктуру с помощью инвентаризации и воспользоваться всей мощью Ansible с помощью плейбуков.
Выбор машин из инвентаризации
Ansible считывает информацию о том, какие машины вы хотите управлять, из вашей инвентаризации. Хотя вы можете передать IP-адрес в команду ad-hoc, вам нужна инвентаризация, чтобы воспользоваться полной гибкостью и повторяемостью Ansible.
Действие: создание базовой инвентаризации
Для этой базовой инвентаризации отредактируйте (или создайте) /etc/ansible/hosts и добавьте несколько удалённых систем в неё. Для этого примера используйте IP-адреса или FQDN:
192.0.2.50 aserver.example.org bserver.example.org
Выше базового уровня
Ваша инвентаризация может хранить гораздо больше, чем IP-адреса и FQDN. Вы можете создать псевдонимы, установить значения переменных для одного хоста с помощью переменных хоста или установить значения переменных для нескольких хостов с помощью переменных группы.
Подключение к удалённым узлам
Ansible взаимодействует с удалёнными машинами по протоколу SSH. По умолчанию Ansible использует собственный OpenSSH и подключается к удалённым машинам с использованием вашего текущего имени пользователя, как и SSH.
Действие: проверка подключений SSH
Убедитесь, что вы можете подключиться к SSH ко всем узлам в вашей инвентаризации с использованием того же имени пользователя. При необходимости добавьте свой открытый ключ SSH в файл authorized_keys на этих системах.
Выше базового уровня
Вы можете переопределить имя пользователя по умолчанию для удалённого подключения несколькими способами, включая:
- передачу параметра
-uв командной строке - установку информации о пользователе в файле инвентаризации
- установку информации о пользователе в вашем конфигурационном файле
- установку переменных окружения
Подробные сведения о (иногда неинтуитивном) приоритете каждого метода передачи информации о пользователе см. в разделе Управление поведением Ansible: правила приоритета. Вы можете прочитать больше о подключениях в Способы подключения и подробные сведения.
Копирование и выполнение модулей
После подключения Ansible передаёт модули, необходимые вашей команде или плейбуку, на удалённую(ые) машину(ы) для выполнения.
Действие: выполнение ваших первых команд Ansible
Используйте модуль ping, чтобы отправить запрос ping всем узлам в вашей инвентаризации:
$ ansible all -m ping
Теперь выполните живую команду на всех ваших узлах:
$ ansible all -a "/bin/echo hello"
Вы должны увидеть вывод для каждого хоста в вашей инвентаризации, аналогичный этому:
aserver.example.org | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
Выше базового уровня
По умолчанию Ansible использует SFTP для передачи файлов. Если машина или устройство, которое вы хотите управлять, не поддерживает SFTP, вы можете переключиться на режим SCP в Конфигурирование Ansible. Файлы помещаются во временную директорию и выполняются оттуда.
Если вам нужна эскалация привилегий (sudo и аналогичные) для выполнения команды, передайте флаги become.
# as bruce $ ansible all -m ping -u bruce # as bruce, sudoing to root (sudo is default method) $ ansible all -m ping -u bruce --become # as bruce, sudoing to batman $ ansible all -m ping -u bruce --become --become-user batman
Вы можете прочитать больше об эскалации привилегий в Понимание эскалации привилегий: become.
Поздравляем! Вы связались со своими узлами с помощью Ansible. Вы использовали базовый файл инвентаризации и команду ad-hoc, чтобы направить Ansible на подключение к определённым удалённым узлам, копирование файла модуля туда и его выполнение, и получение вывода. У вас полностью рабочая инфраструктура.
Ресурсы
Следующие шаги
Далее вы можете прочитать о других реальных случаях в Введение в команды ad-hoc, изучить, что вы можете сделать с разными модулями, или прочитать о языке Ansible Работа с плейбуками. Ansible не просто о выполнении команд, он также обладает мощными возможностями управления конфигурацией и развертывания.
См. также
- Как создать свою инвентаризацию
-
Дополнительная информация об инвентаризации
- Введение в команды ad-hoc
-
Примеры основных команд
- Работа с плейбуками
-
Изучение языка управления конфигурацией Ansible
- Демонстрации Ansible
-
Демонстрации различных сценариев использования Ansible
- RHEL Labs
-
Практикумы для получения дополнительных знаний по различным темам
- Список рассылки
-
Вопросы? Помощь? Идеи? Загляните на список на Google Groups
- irc.freenode.net
-
Канал IRC-чата #ansible
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/user_guide/intro_getting_started.html