Установка Ansible
Ansible — это средство автоматизации без агентов, которое устанавливается на одном хосте (называемом управляющим узлом).
С управляющего узла Ansible может удалённо управлять всем парком машин и других устройств (называемых управляемыми узлами) с помощью SSH, удалённого взаимодействия PowerShell и множества других способов подключения — через простой интерфейс командной строки, без необходимости в базах данных или службах.
- Требования к управляющему узлу
- Требования к управляемому узлу
- Сводка требований к узлам
- Выбор пакета и версии Ansible для установки
- Установка Ansible в контейнеры
- Проверка установки
-
Добавление автодополнения команд Ansible в командной оболочке
Требования к управляющему узлу
В качестве управляющего узла (машины, на которой запускается 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, и устанавливать программное обеспечение не требуется. Не нужно настраивать службы или базы данных.
-
Клонируйте репозиторий
ansible-core$ git clone https://github.com/ansible/ansible.git $ cd ./ansible
-
Настройте среду Ansible
-
Для Bash
$ source ./hacking/env-setup
-
Для Fish
$ source ./hacking/env-setup.fish
-
Чтобы отключить ложные предупреждения и ошибки, используйте
-q$ source ./hacking/env-setup -q
-
-
Установите зависимости Python
$ python3 -m pip install --user -r ./requirements.txt
-
Обновите ветку
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
См. также
- Введение в разовые команды
-
Примеры основных команд
- Работа с плейбуками
-
Изучение языка управления конфигурацией 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