Установка Ansible
Ansible — это инструмент автоматизации без агентов, который устанавливается на один хост (называемый узлом управления).
С узла управления Ansible может удалённо управлять целым флотом машин и других устройств (называемых управляемыми узлами) с помощью SSH, Powershell remoting и многих других транспортов, всё из простого командного интерфейса без необходимости в базах данных или демонах.
- Требования к узлу управления
- Требования к управляемому узлу
- Резюме требований к узлам
- Выбор пакета и версии Ansible для установки
- Установка Ansible в контейнеры
- Подтверждение установки
Требования к узлу управления
Для узла управления (машины, на которой выполняется Ansible) можно использовать практически любую машину на основе UNIX с установленным Python. Это включает Red Hat, Debian, Ubuntu, macOS, BSD и Windows в рамках распределения Windows Subsystem for Linux (WSL). Windows без WSL не поддерживается в качестве узла управления; см. статью в блоге Мэтта Дэвиса для получения дополнительной информации.
Требования к управляемому узлу
На управляемом узле (машине, которой управляет Ansible) не требуется устанавливать Ansible, но необходимо установить Python для выполнения сгенерированного Ansible кода Python. Управляемый узел также нуждается в учётной записи пользователя, которая может подключаться по SSH к узлу с интерактивной оболочкой POSIX.
Примечание
Могут быть исключения в требованиях модулей. Например, сетевые модули не требуют Python на управляемом устройстве. См. документацию по используемым модулям.
Резюме требований к узлам
Подробные сведения о требованиях к узлам управления и управляемым узлам, включая версии Python, для каждой версии Ansible можно найти в разделах поддержка Python для узла управления ansible-core и матрица поддержки ansible-core.
Выбор пакета и версии Ansible для установки
Пакеты Ansible сообщества распространяются двумя способами:
- Минимальный пакет языка и среды выполнения, содержащий набор Ansible.Builtin.
- Гораздо больший пакет «включающий всё необходимое», который добавляет коллекцию, отобранную сообществом, из коллекций 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
Вы можете установить минимальный пакет
$ pipx install ansible-core:
$ pipx install ansible-core
В качестве альтернативы, вы можете установить определённую версию
$ pipx upgrade --include-injected ansible:
$ 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
Установка и обновление Ansible с помощью pip
Нахождение Python
Найдите и запомните путь к интерпретатору Python, который вы хотите использовать для запуска Ansible. В следующих инструкциях этот Python называется python3. Например, если вы определили, что хотите использовать 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
Вы можете заменить devel в указанном выше URL любой другой веткой или тегом на GitHub для установки более старых версий Ansible, тегированных как альфа или бета, и кандидатов в релиз.
Запуск ветки 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
-
Обновить ветку
develansible-coreна вашей локальной машинеИспользуйте pull-with-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
Есть 2 способа настроить 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
См. также
- Введение в команды ad hoc
-
Примеры основных команд
- Работа с playbook
-
Изучение языка управления конфигурацией Ansible
- Как обработать зависимости пакетов, необходимые пакетом Ansible, во время установки Ansible?
-
Вопросы и ответы, связанные с установкой Ansible
- Форум
-
Присоединяйтесь к форуму сообщества Ansible, чтобы получить помощь и поделиться знаниями
- Чат в реальном времени
-
Как присоединиться к каналам чата Ansible
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html