Spec-Zone.ru › Ansible 2.9

Начало работы

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

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

  • Выбор машин из инвентаризации
    • Действие: создание базовой инвентаризации
    • Выше основ
  • Подключение к удалённым узлам
    • Действие: проверка подключений SSH
    • Выше основ
  • Копирование и выполнение модулей
    • Действие: выполнение первых команд 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
Список рассылки
Вопросы? Помощь? Идеи? Зайдите на список в 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.9/user_guide/intro_getting_started.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API