Spec-Zone.ru › Ansible 2.11

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

После того, как вы прочитали руководство по установке и установили Ansible на контрольном узле, вы готовы узнать, как работает Ansible. Команда или playbook Ansible:

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

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

  • Выбор машин из инвентаря

    • Действие: создание базового инвентаря
    • Выходя за рамки основ
  • Подключение к удалённым узлам

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

Ресурсы

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

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

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

Spec-Zone.ru

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