Spec-Zone.ru › Ansible 2.10

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

После прочтения руководства по установке и установки 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 на подключение к определённым удалённым узлам, копирование файла модуля туда и его выполнение, и получение вывода. У вас полностью рабочая инфраструктура.

Ресурсы

  • Демонстрации продуктов
  • Katacoda
  • Рабочие мастер-классы
  • Примеры Ansible
  • Ansible Baseline

Следующие шаги

Далее вы можете прочитать о других реальных случаях в Введение в команды 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

Spec-Zone.ru

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