Spec-Zone.ru › Ansible 2.9

Установка 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 из исходного кода (devel)
  • Поиск tar-архивов помеченных релизов
  • Автозаполнение команд Ansible
    • Установка argcomplete на RHEL, CentOS или Fedora
    • Установка argcomplete с apt
    • Установка argcomplete с pip
    • Настройка argcomplete
      • Глобально
      • По команде
    • argcomplete с zsh или tcsh
  • Ansible на 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 для установки этого пакета на удалённые системы, на которых его нет.
  • По умолчанию Ansible использует интерпретатор Python, расположенный по адресу /usr/bin/python, для запуска своих модулей. Однако в некоторых дистрибутивах Linux может быть установлен только интерпретатор Python 3 по умолчанию в /usr/bin/python3. В этих системах вы можете увидеть ошибку, подобную:

    "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory\r\n"
    

    Вы можете либо установить переменную инвентаризации ansible_python_interpreter (см. Как создать свою инвентаризацию) для указания интерпретатора, либо установить интерпретатор Python 2 для использования модулями. Вам все равно потребуется установить ansible_python_interpreter, если интерпретатор Python 2 не установлен в /usr/bin/python.

  • Модули raw и script Ansible не зависят от установки 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).
  • Установить из исходного кода, чтобы получить версию разработки (devel) для разработки или тестирования последних функций.

Примечание

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

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 и Fedora также доступны из EPEL, а также releases.ansible.com.

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

Вы также можете самостоятельно создать RPM. Из корневой директории развёртывания или tar-архива используйте команду make rpm для создания RPM-пакета, который вы можете распространять и устанавливать.

$ git clone https://github.com/ansible/ansible.git
$ cd ./ansible
$ make rpm
$ sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm

Установка 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 перед его выходом:

$ 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.

Установка 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 [1]:

$ pip install --user ansible

Или, если вы ищете версию разработки:

$ pip install --user git+https://github.com/ansible/ansible.git@devel

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

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

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

$ pip install --user paramiko

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

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

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

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

Примечание

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

Примечание

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

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

Примечание

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

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

Примечание

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

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

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

После того, как git клонировал репозиторий Ansible, настройте среду 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]:

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

Для обновления проверок Ansible используйте 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? Tar-архивы выпусков доступны на странице загрузки Ansible.

Эти выпуски также помечены в репозитории 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

$ 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 на GitHub

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

См. также

Введение в ад-хок команды
Примеры основных команд
Работа с Playbook
Изучение языка управления конфигурациями Ansible
Как обрабатывать зависимости пакетов, необходимые Ansible при установке?
Вопросы и ответы, связанные с установкой Ansible
Список рассылки
Вопросы? Помощь? Идеи? Загляните на список на Google Groups
irc.freenode.net
#ansible IRC чат-канал
[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.9/installation_guide/intro_installation.html

Spec-Zone.ru

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