Начало работы
После того, как вы прочитали руководство по установке и установили Ansible на контрольном узле, вы готовы узнать, как работает Ansible. Команда или playbook Ansible:
- выбирает машины для выполнения из инвентаря
- подключается к этим машинам (или сетевым устройствам, или другим управляемым узлам), обычно по SSH
- копирует один или несколько модулей на удалённые машины и запускает выполнение на них
Ansible может делать гораздо больше, но вам следует понять наиболее распространённый случай использования, прежде чем изучать все мощные возможности конфигурации, развертывания и оркестрации Ansible. Эта страница иллюстрирует базовый процесс с простым инвентарём и командой ad hoc. После того, как вы поймёте, как работает Ansible, вы можете узнать больше о командах ad hoc, организовать свою инфраструктуру с инвентарём и использовать весь потенциал Ansible с помощью playbook.
Выбор машин из инвентаря
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 использует native OpenSSH и подключается к удалённым машинам с использованием вашего текущего имени пользователя, как и SSH.
Действие: проверка подключений SSH
Убедитесь, что вы можете подключиться к SSH ко всем узлам в вашем инвентаре с использованием одного и того же имени пользователя. При необходимости добавьте свой открытый SSH-ключ в файл authorized_keys на этих системах.
Выходя за рамки основ
Вы можете переопределить имя удалённого пользователя несколькими способами, включая:
- передачу параметра
-uв командной строке - установку информации о пользователе в вашем файле инвентаря
- установку информации о пользователе в вашем конфигурационном файле
- установку переменных среды
См. Управление поведением Ansible: правила приоритета для получения подробной информации о (иногда неинтуитивном) порядке приоритета каждого метода передачи информации о пользователе. Вы можете узнать больше о подключениях в Методы и подробности подключения.
Копирование и выполнение модулей
После подключения Ansible переносит необходимые модули вашей команды или playbook на удалённую машину(ы) для выполнения.
Действие: выполнение первых команд Ansible
Используйте модуль ping, чтобы отправить ping всем узлам в вашем инвентаре:
$ ansible all -m ping
Вы должны увидеть вывод для каждого узла в вашем инвентаре, подобный этому:
aserver.example.org | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
Теперь выполните живую команду на всех ваших узлах:
$ ansible all -a "/bin/echo hello"
Вы должны увидеть вывод для каждого узла в вашем инвентаре, подобный этому:
aserver.example.org | CHANGED | rc=0 >> hello
Выходя за рамки основ
По умолчанию 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 Работа с playbooks. Ansible не только о выполнении команд, но и обладает мощными функциями управления конфигурацией и развертывания.
См. также
- Как создать свой инвентарь
-
Дополнительная информация об инвентаре
- Вводное руководство по командам ad hoc
-
Примеры основных команд
- Работа с playbooks
-
Изучение языка управления конфигурацией Ansible
- Демонстрации Ansible
-
Демонстрации различных сценариев использования Ansible
- RHEL Labs
-
Практикумы для получения дополнительных знаний по различным темам
- Список рассылки
-
Вопросы? Помощь? Идеи? Обратитесь к списку рассылки на Google Groups
- irc.freenode.net
-
IRC-чат-канал #ansible
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/user_guide/intro_getting_started.html