Spec-Zone.ru › Ansible 2.10

Установка Ansible

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

  • Предварительные требования

    • Требования к контрольному узлу
    • Требования к управляемым узлам
  • Выбор версии Ansible для установки
  • Установка Ansible на RHEL, CentOS или Fedora
  • Установка Ansible на Ubuntu
  • Установка Ansible на Debian
  • Установка Ansible на Gentoo с portage
  • Установка Ansible на FreeBSD
  • Установка Ansible на macOS
  • Установка Ansible на Solaris
  • Установка Ansible на Arch Linux
  • Установка Ansible на Slackware Linux
  • Установка Ansible на Clear Linux
  • Установка Ansible с pip

    • Обновление Ansible с версии 2.9 и более ранних до версии 2.10 или более поздней
    • Установка разработки версии ansible-base
    • Виртуальные среды
  • Запуск ansible-base из исходного кода (devel)
  • Поиск tar-архивов помеченных релизов
  • Завершение команд Ansible

    • Установка argcomplete на RHEL, CentOS или Fedora
    • Установка argcomplete с apt
    • Установка argcomplete с pip
    • Настройка argcomplete

      • Глобально
      • По команде
    • argcomplete с zsh или tcsh
  • ansible-base в GitHub

Предварительные требования

Вы устанавливаете Ansible на контрольный узел, который затем использует SSH (по умолчанию) для связи с управляемыми узлами (устройствами, которые вы хотите автоматизировать).

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

В настоящее время Ansible можно запустить на любой машине с установленным Python 2 (версия 2.7) или Python 3 (версии 3.5 и выше). Это включает Red Hat, Debian, CentOS, macOS, любые BSD и так далее. Windows не поддерживается для контрольного узла, подробнее об этом в посте в блоге Мэтта Дэвиса.

При выборе контрольного узла помните, что любая система управления выигрывает от запуска рядом с управляемыми машинами. Если вы запускаете Ansible в облаке, рассмотрите возможность запуска его с машины внутри этого облака. В большинстве случаев это будет работать лучше, чем через открытый Интернет.

Примечание

macOS по умолчанию настроен на небольшое количество дескрипторов файлов, поэтому если вы хотите использовать 15 или более вилок, вам нужно увеличить ulimit с помощью sudo launchctl limit maxfiles unlimited. Эта команда также может исправить любые ошибки «Слишком много открытых файлов».

Предупреждение

Обратите внимание, что некоторые модули и плагины имеют дополнительные требования. Для модулей эти требования должны быть выполнены на целевой машине (управляемом узле) и должны быть перечислены в документации по конкретному модулю.

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

На управляемых узлах вам нужен способ связи, который обычно является SSH. По умолчанию это использует SFTP. Если это недоступно, вы можете переключиться на SCP в ansible.cfg. Вам также нужен Python 2 (версия 2.6 или выше) или Python 3 (версия 3.5 или выше).

Примечание

  • Если на удаленных узлах включен SELinux, вам также нужно установить libselinux-python на них перед использованием функций, связанных с копированием/файлами/шаблонами в Ansible. Вы можете использовать модуль yum или dnf в Ansible для установки этого пакета на удаленные системы, на которых его нет.
  • По умолчанию, перед запуском первого Python-модуля в книге задач на хосте, Ansible пытается обнаружить подходящий интерпретатор Python на этом хосте. Вы можете переопределить поведение обнаружения, установив переменную инвентаризации ansible_python_interpreter на определенный интерпретатор и другими способами. См. Обнаружение интерпретатора для получения подробной информации.
  • Модули Ansible raw и script не зависят от установки клиента Python для работы. Технически вы можете использовать Ansible для установки совместимой версии Python с помощью модуля raw, что затем позволяет использовать все остальное. Например, если вам нужно запустить Python 2 на системе на основе RHEL, вы можете установить его следующим образом:

    $ ansible myhost --become -m raw -a "yum install -y python2"
    

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

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

  • Установите последнюю версию с помощью менеджера пакетов вашей ОС (для Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian или Ubuntu).
  • Установите с помощью pip (менеджер пакетов Python).
  • Установите ansible-base из исходного кода, чтобы получить доступ к версии разработки (devel) для разработки или тестирования последних функций.

Примечание

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

Ansible выпускает новые релизы два или три раза в год. Из-за этого короткого цикла выпуска небольшие ошибки обычно исправляются в следующем выпуске, а не поддерживаются в виде бэкапов стабильной ветки. Серьезные ошибки будут иметь релизы с поддержкой по мере необходимости, хотя такие релизы встречаются редко.

Установка Ansible на RHEL, CentOS или Fedora

В Fedora:

$ sudo dnf install ansible

В RHEL и CentOS:

$ sudo yum install ansible

RPM-пакеты для RHEL 7 и RHEL 8 доступны из репозитория Ansible Engine.

Для включения репозитория Ansible Engine в RHEL 8 выполните следующую команду:

$ sudo subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms

Для включения репозитория Ansible Engine в RHEL 7 выполните следующую команду:

$ sudo subscription-manager repos --enable rhel-7-server-ansible-2.9-rpms

RPM-пакеты для поддерживаемых версий RHEL и CentOS также доступны из EPEL.

Примечание

Так как Ansible 2.10 для RHEL в настоящее время недоступен, продолжайте использовать Ansible 2.9.

Ansible может управлять более старыми операционными системами, содержащими Python 2.6 или выше.

Установка Ansible на Ubuntu

Пакеты Ubuntu доступны здесь.

Для настройки PPA на вашей машине и установки Ansible выполните эти команды:

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

Примечание

В более старых дистрибутивах Ubuntu «software-properties-common» называется «python-software-properties». Вы можете использовать apt-get вместо apt в более старых версиях. Также обратите внимание, что только в более новых дистрибутивах (т.е. 18.04, 18.10 и т.д.) есть флаг -u или --update, поэтому скорректируйте свой скрипт соответствующим образом.

Пакеты Debian/Ubuntu также можно создать из исходного кода, выполните:

$ make deb

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

Установка Ansible на Debian

Пользователи Debian могут воспользоваться тем же источником, что и PPA Ubuntu.

Добавьте следующую строку в /etc/apt/sources.list:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Затем выполните эти команды:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible

Примечание

Этот метод был проверен с источниками Trusty в Debian Jessie и Stretch, но может не поддерживаться в более ранних версиях. В более старых версиях вы можете использовать apt-get вместо apt.

Установка Ansible на Gentoo с portage

$ emerge -av app-admin/ansible

Чтобы установить последнюю версию, возможно, потребуется размаскировать пакет Ansible перед использованием команды emerging:

$ echo 'app-admin/ansible' >> /etc/portage/package.accept_keywords

Установка Ansible на FreeBSD

Хотя Ansible работает с версиями Python 2 и 3, FreeBSD имеет разные пакеты для каждой версии Python. Поэтому для установки вы можете использовать:

$ sudo pkg install py27-ansible

или:

$ sudo pkg install py36-ansible

Вы также можете установить пакет из портов, выполнив:

$ sudo make -C /usr/ports/sysutils/ansible install

Вы также можете выбрать определённую версию, например ansible25.

Более старые версии FreeBSD работали с чем-то подобным (замените на свой менеджер пакетов):

$ sudo pkg install ansible

Установка Ansible на macOS

Предпочтительный способ установки Ansible на Mac — с помощью pip.

Инструкции можно найти в Установка Ansible с помощью pip. Если вы используете macOS версии 10.12 или более ранней, вам следует обновить до последней версии pip для безопасного подключения к Python Package Index. Следует отметить, что pip необходимо запускать как модуль на macOS, и связанные инструкции pip покажут вам, как это сделать.

Примечание

Если у вас установлен Ansible 2.9 или более ранней версии, вам необходимо сначала использовать pip uninstall ansible для удаления более старых версий Ansible перед повторной установкой.

Если вы устанавливаете на macOS Mavericks (10.9), вы можете столкнуться с некоторыми шумами от вашего компилятора. Обходным путём является выполнение следующих действий:

$ CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install --user ansible

Установка Ansible на Solaris

Ansible доступен для Solaris как пакет SysV от OpenCSW.

# pkgadd -d http://get.opencsw.org/now
# /opt/csw/bin/pkgutil -i ansible

Установка Ansible на Arch Linux

Ansible доступен в репозитории Community:

$ pacman -S ansible

AUR содержит PKGBUILD для прямого скачивания с GitHub под названием ansible-git.

Также см. страницу Ansible на ArchWiki.

Установка Ansible на Slackware Linux

Скрипт сборки Ansible доступен в репозитории SlackBuilds.org. Его можно собрать и установить с помощью sbopkg.

Создайте очередь с Ansible и всеми зависимостями:

# sqg -p ansible

Соберите и установите пакеты из созданного файла очереди (ответьте Q на вопрос, если sbopkg должен использовать очередь или пакет):

# sbopkg -k -i ansible

Установка Ansible на Clear Linux

Ansible и его зависимости доступны как часть пакета управления хостами sysadmin:

$ sudo swupd bundle-add sysadmin-hostmgmt

Обновление программного обеспечения будет управляться инструментом swupd:

$ sudo swupd update

Установка Ansible с pip

Ansible можно установить с помощью pip, менеджера пакетов Python. Если pip ещё не доступен в вашей системе Python, выполните следующие команды для его установки:

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

Примечание

Если у вас установлен Ansible 2.9 или более ранней версии, вам необходимо сначала использовать pip uninstall ansible для удаления старых версий Ansible перед повторной установкой.

Затем установите Ansible 1:

$ python -m pip install --user ansible

Для использования плагина подключения paramiko или модулей, требующих paramiko, установите необходимый модуль 2:

$ python -m pip install --user paramiko

Если вы хотите установить Ansible глобально, выполните следующие команды:

$ sudo python get-pip.py
$ sudo python -m pip install ansible

Примечание

Запуск pip с sudo внесёт глобальные изменения в систему. Поскольку pip не координируется с системными менеджерами пакетов, он может внести изменения в вашу систему, которые оставят её в несогласованном или нерабочем состоянии. Это особенно верно для macOS. Рекомендуется установка с помощью --user, если вы не полностью понимаете последствия изменения глобальных файлов в системе.

Примечание

Более старые версии pip по умолчанию используют http://pypi.python.org/simple, который больше не работает. Убедитесь, что у вас установлена последняя версия pip перед установкой Ansible. Если у вас установлена более старая версия pip , вы можете обновить её, следуя инструкциям по обновлению pip по ссылке .

Обновление Ansible с версии 2.9 и более ранней до версии 2.10 или более поздней

Начиная с версии 2.10, Ansible состоит из двух пакетов. Вам необходимо сначала удалить старую версию Ansible (2.9 или более раннюю), прежде чем обновлять её. Если вы не удалите более старую версию Ansible, вы увидите следующее сообщение, и никаких изменений не будет:

Cannot install ansible-base with a pre-existing ansible==2.x installation.

Installing ansible-base with ansible-2.9 or older currently installed with
pip is known to cause problems. Please uninstall ansible and install the new
version:

pip uninstall ansible
pip install ansible-base

...

Как указано в сообщении, для обновления необходимо сначала удалить установленную версию Ansible, а затем установить последнюю версию.

$ pip uninstall ansible
$ pip install ansible

Установка развивающейся версии ansible-base

В Ansible 2.10 и более поздних версиях репозиторий ansible/ansible содержит код основных функций и возможностей, таких как копирование кода модулей на управляемые узлы. Этот код также известен как ansible-base.

Примечание

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

Примечание

Если у вас установлен Ansible 2.9 или более ранней версии, вам необходимо сначала использовать pip uninstall ansible для удаления старых версий Ansible перед повторной установкой.

Вы можете установить развивающуюся версию ansible-base напрямую с GitHub с помощью pip.

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

Замените devel в указанном выше URL на любой другой ветвь или метку на GitHub, чтобы установить более старые версии Ansible (до ansible-base 2.10). Это устанавливает весь Ansible.

$ python -m pip install --user https://github.com/ansible/ansible/archive/stable-2.9.tar.gz

См. Запуск ansible-base из исходного кода (devel) для получения инструкций по запуску ansible-base напрямую из исходного кода без необходимости установки.

Виртуальные среды

Примечание

Если у вас установлен Ansible 2.9 или более ранней версии, вам необходимо сначала использовать pip uninstall ansible для удаления старых версий Ansible перед повторной установкой.

Ansible также можно установить внутри новой или существующей virtualenv:

$ python -m virtualenv ansible  # Create a virtualenv if one does not already exist
$ source ansible/bin/activate   # Activate the virtual environment
$ python -m pip install ansible

Запуск ansible-base из исходного кода (devel)

В Ansible 2.10 и более поздних версиях репозиторий ansible/ansible содержит код основных функций и возможностей, таких как копирование кода модулей на управляемые узлы. Этот код также известен как ansible-base.

Примечание

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

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

Примечание

Если вы хотите использовать Ansible Tower в качестве управляющего узла, не используйте установку Ansible из исходного кода. Используйте менеджер пакетов ОС (например, apt или yum) или pip для установки стабильной версии.

Для установки из исходного кода скопируйте репозиторий ansible-base git:

$ git clone https://github.com/ansible/ansible.git
$ cd ./ansible

После того, как git скопировал репозиторий ansible-base , настройте среду Ansible:

Используя Bash:

$ source ./hacking/env-setup

Используя Fish:

$ source ./hacking/env-setup.fish

Если вы хотите подавить ложные предупреждения/ошибки, используйте:

$ source ./hacking/env-setup -q

Если у вас не установлен pip в вашей версии Python, установите его:

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

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

$ python -m pip install --user -r ./requirements.txt

Для обновления ansible-base проверок используйте pull-with-rebase, чтобы все локальные изменения были воспроизведены.

$ git pull --rebase
$ git pull --rebase #same as above
$ git submodule update --init --recursive

После запуска скрипта env-setup вы будете запускать из проверки, и файлом инвентаризации по умолчанию будет /etc/ansible/hosts. Вы можете указать другой файл инвентаризации (см. Как создать свою инвентаризацию), отличную от /etc/ansible/hosts:

$ echo "127.0.0.1" > ~/ansible_hosts
$ export ANSIBLE_INVENTORY=~/ansible_hosts

Вы можете прочитать больше о файле инвентаризации на Как создать свою инвентаризацию.

Теперь протестируем всё командой ping:

$ ansible all -m ping --ask-pass

Вы также можете использовать «sudo make install».

Поиск файлов tar с помеченными выпусками

Упаковывание Ansible или желание создать собственный локальный пакет, но не хочется выполнять git checkout? Архивы релизов доступны на pypi в виде https://pypi.python.org/packages/source/a/ansible/ansible-{{VERSION}}.tar.gz. Вы можете сделать VERSION переменной в вашей системе управления пакетами, которую вы обновляете в одном месте всякий раз, когда вы упаковываете новую версию. В качестве альтернативы, вы можете загрузить https://pypi.python.org/project/ansible, чтобы получить последнюю стабильную версию.

Примечание

Если вы создаёте свой собственный пакет Ansible, вы также должны загрузить или упаковать ansible-base как часть вашего пакета Ansible. Вы можете загрузить его как https://pypi.python.org/packages/source/a/ansible-base/ansible-base-{{VERSION}}.tar.gz.

Эти релизы также помечены в репозитории git с версией релиза.

Автозаполнение командной строки Ansible

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

Вы можете установить python-argcomplete из EPEL в дистрибутивах на базе Red Hat Enterprise и/или из стандартных репозиториев ОС для многих других дистрибутивов.

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

Установка argcomplete в RHEL, CentOS или Fedora

В Fedora:

$ sudo dnf install python-argcomplete

В RHEL и CentOS:

$ sudo yum install epel-release
$ sudo yum install python-argcomplete

Установка argcomplete с apt

$ sudo apt install python-argcomplete

Установка argcomplete с pip

$ python -m pip install argcomplete

Настройка argcomplete

Существует 2 способа настроить argcomplete для включения автозаполнения утилит командной строки Ansible: глобально или по команде.

Глобально

Глобальное автозаполнение требует bash 4.2.

$ sudo activate-global-python-argcomplete

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

По команде

Если у вас нет 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-base в GitHub

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

См. также

Введение в ad-hoc команды

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

Работа с playbook

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

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

Вопросы и ответы, связанные с установкой Ansible

Список рассылки

Вопросы? Помощь? Идеи? Заходите на список рассылки на Google Groups

irc.freenode.net

Канал IRC-чата #ansible

1(1,2)

Если у вас есть проблемы с установкой пакета «pycrypto» на macOS, вам может потребоваться попробовать CC=clang sudo -E pip install pycrypto.

2

paramiko был включён в requirements.txt Ansible до версии 2.8.

© 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/installation_guide/intro_installation.html

Spec-Zone.ru

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