Spec-Zone.ru › Ansible

Установка Ansible

Ansible — это средство автоматизации без агентов, которое устанавливается на одном хосте (называемом управляющим узлом).

С управляющего узла Ansible может удалённо управлять всем парком машин и других устройств (называемых управляемыми узлами) с помощью SSH, удалённого взаимодействия PowerShell и множества других способов подключения — через простой интерфейс командной строки, без необходимости в базах данных или службах.

  • Требования к управляющему узлу
  • Требования к управляемому узлу
  • Сводка требований к узлам
  • Выбор пакета и версии Ansible для установки
  • Установка и обновление Ansible с помощью pipx

    • Установка Ansible
    • Обновление Ansible
    • Установка дополнительных зависимостей Python
  • Установка и обновление Ansible с помощью pip

    • Поиск Python
    • Проверка доступности pip
    • Установка Ansible
    • Обновление Ansible
  • Установка Ansible в контейнеры
  • Установка для разработки

    • Установка devel из GitHub с помощью pip
    • Запуск ветки devel из клона
  • Проверка установки
  • Добавление автодополнения команд Ansible в командной оболочке

    • Установка argcomplete
    • Настройка argcomplete

      • Глобальная настройка
      • Настройка для отдельных команд
      • Использование argcomplete с zsh или tcsh

Требования к управляющему узлу

В качестве управляющего узла (машины, на которой запускается Ansible) можно использовать практически любую UNIX-подобную машину с установленным Python. Сюда входят Red Hat, Debian, Ubuntu, macOS, BSD и Windows с дистрибутивом подсистемы Windows для Linux (WSL). Windows без WSL не поддерживается в качестве управляющего узла; дополнительную информацию см. в публикации в блоге Мэтта Дэвиса.

Требования к управляемому узлу

На управляемом узле (машине, которой управляет Ansible) не требуется устанавливать Ansible, однако для выполнения сгенерированного Ansible кода Python необходим Python. Кроме того, на управляемом узле нужна учётная запись пользователя, которая может подключаться к узлу по SSH с помощью интерактивной оболочки POSIX.

Примечание

Требования к модулям могут быть исключением. Например, сетевым модулям не требуется Python на управляемом устройстве. См. документацию к используемым модулям.

Сводка требований к узлам

Подробную информацию о требованиях к управляющим и управляемым узлам, включая версии Python, для каждой версии Ansible можно найти в разделах Поддержка Python на управляющем узле в ansible-core и Матрица поддержки ansible-core.

Выбор пакета и версии Ansible для установки

Пакеты Ansible для сообщества распространяются в двух вариантах:

  • ansible-core: минималистичный пакет языка и среды выполнения, содержащий набор встроенных модулей и плагинов.
  • ansible: гораздо более крупный пакет «всё включено», дополненный подобранной сообществом коллекцией коллекций Ansible для автоматизации широкого спектра устройств.

Выберите пакет, который соответствует вашим потребностям. В приведённых ниже инструкциях в качестве имени пакета используется ansible, но при желании можно заменить его на ansible-core, чтобы начать с минимального пакета и отдельно установить только необходимые коллекции Ansible.

Пакеты ansible или ansible-core могут быть доступны в менеджере пакетов вашей операционной системы; вы можете установить их любым удобным способом. Дополнительную информацию см. в руководстве Установка Ansible в определённых операционных системах. В этих инструкциях описаны только официально поддерживаемые способы установки пакетов Python с помощью pip.

В таблице статуса выпусков пакетов Ansible указана версия ansible-core, включённая в пакет.

Установка и обновление Ansible с помощью pipx

В некоторых системах установить Ansible с помощью pip может быть невозможно из-за решений разработчиков операционной системы. В таких случаях широко доступной альтернативой является pipx.

В этих инструкциях не рассматривается установка pipx; если вам нужны такие инструкции, дополнительную информацию см. в инструкциях по установке pipx.

Установка Ansible

Используйте pipx в своей среде для установки полного пакета Ansible:

$ pipx install --include-deps ansible

Можно установить минимальный пакет ansible-core:

$ pipx install ansible-core

Также можно установить определённую версию ansible-core:

$ pipx install ansible-core==2.12.3

Обновление Ansible

Чтобы обновить существующую установку Ansible до последней выпущенной версии:

$ pipx upgrade --include-injected ansible

Установка дополнительных зависимостей Python

Чтобы установить необходимые дополнительные зависимости Python, например пакет Python argcomplete, как описано ниже:

$ pipx inject ansible argcomplete

Добавьте параметр --include-apps, чтобы приложения из дополнительной зависимости Python стали доступны в PATH. Это позволит запускать команды этих приложений из командной оболочки.

$ pipx inject --include-apps ansible argcomplete

Если вам нужно установить зависимости из файла требований, например при установке коллекции Azure, можно использовать runpip.

$ pipx runpip ansible install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt

Установка и обновление Ansible с помощью pip

Поиск Python

Найдите и запомните путь к интерпретатору Python, с помощью которого вы хотите запускать Ansible. В следующих инструкциях этот Python обозначается как python3. Например, если вы решили установить Ansible под Python, расположенный по пути /usr/bin/python3.9, укажите его вместо python3.

Проверка доступности pip

Чтобы проверить, установлен ли уже pip для выбранного вами Python:

$ python3 -m pip -V

Если всё в порядке, вы увидите примерно следующее:

$ python3 -m pip -V
pip 21.0.1 from /usr/lib/python3.9/site-packages/pip (python 3.9)

Если это так, pip доступен, и можно перейти к следующему шагу.

Если появится ошибка, например No module named pip, прежде чем продолжить, необходимо установить pip для выбранного интерпретатора Python. Возможно, потребуется установить дополнительный пакет ОС (например, python3-pip) или установить последнюю версию pip непосредственно из Python Packaging Authority, выполнив следующую команду:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user

Прежде чем запускать Ansible, может потребоваться выполнить дополнительную настройку. Дополнительную информацию см. в документации Python о установке в пользовательский каталог.

Установка Ansible

Используйте pip в выбранной среде Python, чтобы установить полный пакет Ansible для текущего пользователя:

$ python3 -m pip install --user ansible

Для текущего пользователя можно установить минимальный пакет ansible-core:

$ python3 -m pip install --user ansible-core

Также можно установить определённую версию ansible-core:

$ python3 -m pip install --user ansible-core==2.12.3

Обновление Ansible

Чтобы обновить существующую установку Ansible в этой среде Python до последней выпущенной версии, просто добавьте --upgrade к приведённой выше команде:

$ python3 -m pip install --upgrade --user ansible

Установка Ansible в контейнеры

Вместо ручной установки содержимого Ansible можно просто создать образ контейнера среды выполнения или использовать один из доступных образов сообщества в качестве управляющего узла. Подробнее см. в разделе Начало работы со средами выполнения.

Установка для разработки

Если вы тестируете новые функции, исправляете ошибки или иным образом работаете с командой разработки над изменениями основного кода, вы можете установить и запускать исходный код из GitHub.

Примечание

Устанавливайте и запускайте ветку devel только в том случае, если вы изменяете ansible-core или пробуете функции, находящиеся в разработке. Исходный код часто меняется и в любой момент может стать нестабильным.

Дополнительную информацию об участии в проекте Ansible см. в руководстве сообщества Ansible.

Дополнительную информацию о создании модулей и коллекций Ansible см. в руководстве разработчика.

Установка devel из GitHub с помощью pip

Ветку devel проекта ansible-core можно установить непосредственно из GitHub с помощью pip:

$ python3 -m pip install --user https://github.com/ansible/ansible/archive/devel.tar.gz

Чтобы установить более старые версии Ansible, версии alpha или beta с тегами, а также кандидаты на выпуск, замените devel в указанном выше URL на любую другую ветку или тег в GitHub.

Запуск ветки devel из клона

Запустить ansible-core из исходного кода очень просто. Для его использования не нужны права root, и устанавливать программное обеспечение не требуется. Не нужно настраивать службы или базы данных.

  1. Клонируйте репозиторий ansible-core

    $ git clone https://github.com/ansible/ansible.git
    $ cd ./ansible
    
  2. Настройте среду Ansible

    • Для Bash

      $ source ./hacking/env-setup
      
    • Для Fish

      $ source ./hacking/env-setup.fish
      
    • Чтобы отключить ложные предупреждения и ошибки, используйте -q

      $ source ./hacking/env-setup -q
      
  3. Установите зависимости Python

    $ python3 -m pip install --user -r ./requirements.txt
    
  4. Обновите ветку devel проекта ansible-core на локальном компьютере

    Используйте команду извлечения с rebase, чтобы повторно применить все локальные изменения.

    $ git pull --rebase
    

Проверка установки

Проверить правильность установки Ansible можно, запросив версию:

$ ansible --version

Версия, отображаемая этой командой, относится к установленному пакету ansible-core.

Чтобы проверить версию установленного пакета ansible:

$ ansible-community --version

Добавление автодополнения команд Ansible в командной оболочке

Автодополнение утилит командной строки Ansible можно включить, установив необязательную зависимость argcomplete. Она поддерживает bash и частично поддерживает zsh и tcsh.

Дополнительную информацию об установке и настройке см. в документации argcomplete.

Установка argcomplete

Если вы выбрали инструкции по установке pipx:

$ pipx inject --include-apps ansible argcomplete

Если вы выбрали инструкции по установке pip:

$ python3 -m pip install --user argcomplete

Настройка argcomplete

Есть два способа настроить argcomplete для автодополнения утилит командной строки Ansible: глобально или отдельно для каждой команды.

Глобальная настройка

Для глобального автодополнения требуется bash 4.2.

$ activate-global-python-argcomplete --user

Эта команда запишет файл автодополнения bash в пользовательский каталог. Используйте --dest, чтобы изменить расположение, или sudo, чтобы настроить автодополнение глобально.

Настройка для отдельных команд

Если у вас нет bash 4.2, необходимо зарегистрировать каждый скрипт отдельно.

$ eval $(register-python-argcomplete ansible)
$ eval $(register-python-argcomplete ansible-config)
$ eval $(register-python-argcomplete ansible-console)
$ eval $(register-python-argcomplete ansible-doc)
$ eval $(register-python-argcomplete ansible-galaxy)
$ eval $(register-python-argcomplete ansible-inventory)
$ eval $(register-python-argcomplete ansible-playbook)
$ eval $(register-python-argcomplete ansible-pull)
$ eval $(register-python-argcomplete ansible-vault)

Добавьте приведённые выше команды в файл профиля командной оболочки, например ~/.profile или ~/.bash_profile.

Использование argcomplete с zsh или tcsh

См. документацию argcomplete.

См. также

Введение в разовые команды

Примеры основных команд

Работа с плейбуками

Изучение языка управления конфигурацией Ansible

Как обрабатывать зависимости пакетов, необходимые Ansible во время установки?

Часто задаваемые вопросы об установке Ansible

Форум

Присоединяйтесь к форуму сообщества Ansible, чтобы получить помощь и поделиться опытом

Чат в реальном времени

Как присоединиться к каналам чата Ansible

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/installation_guide/intro_installation.html

Spec-Zone.ru

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