Установка 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 в чистом Linux

  • Установка Ansible с помощью pip

    • Обновление Использование Ansible от версии 2.9 и старше до версии 2.10 или новее

    • Установка разрабатываемой версии ansible-base

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

  • Запуск ansible -base из исходного кода (разработка)

  • Поиск архивов релизов с тегами

  • Автоматическое завершение командной оболочки

    • Установка 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 не поддерживается для элемента управления node, подробнее об этом читайте в блоге Мэтта Дэвиса.

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

Примечание

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

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

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

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

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

Примечание

  • Если у вас включен SELinux на удаленных узлах, вы также захотите установить на нихllibselinux-python перед использованием любых функций, связанных с копированием/файлом/шаблоном в Ansible. Вы можете использовать модуль yum или dnf в Ansible, чтобы установить этот пакет в удаленных системах, в которых его нет.

  • По умолчанию перед первым модулем Python в playbook выполняется на хосте, Ansible пытается найти на этом хосте подходящий интерпретатор Python. Вы можете переопределить поведение обнаружения, установив для переменной инвентаря ansible_python_interpreter конкретный интерпретатор и другими способами. Подробности см. В разделе Interpreter Discovery.

  • Необработанный модуль Ansible и модуль сценария не зависят от установки Python на стороне клиента. Технически, вы можете использовать Ansible для установки совместимой версии Python с использованием необработанного модуля, который затем позволяет вам использовать все остальное. Например, если вам нужно загрузить 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 - включить rhel-7-server-ansible-2.9-rpms 

RPM для текущей поддержки ed версии RHEL и CentOS также доступны в EPEL.

Примечание

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

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

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

сборки Ubuntu доступны в PPA здесь.

Чтобы настроить 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 «общие свойства программного обеспечения» называются «python-software- свойства ». Вы можете использовать apt-get вместо apt в более старых версиях. Также имейте в виду, что только более новые дистрибутивы (другими словами, 18.04, 18.10 и т. Д.) Имеют флаг -u или - update , поэтому соответствующим образом настройте свой сценарий.

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

 $ make deb 

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

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

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

Добавьте следующую строку в/ и т.д/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. Следует отметить, что 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 доступен в репозитории сообщества:

 $ pacman -S ansible 

В AUR есть PKGBUILD для извлечения напрямую из GitHub под названием ansible-git.

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

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

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

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

 # sqg -p ansible 

Build и установите пакеты из созданного файла очереди (ответьте на вопрос о том, следует ли 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, вы увидите следующее сообщение, и никакие изменения не будут внесены:

 Невозможно установить ansible-base с уже существующей установкой ansible == 2.x. Известно, что установка ansible-base с помощью ansible-2.9 или более ранней версии, установленной на данный момент withpip, вызывает проблемы.  Удалите ansible и установите новую версию: pip uninstall ansiblepip 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 непосредственно из источника, w без необходимости установки.

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

Примечание

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

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

 $ python -m virtualenv ansible # Создать виртуальную среду, если она еще не существует $ source ansible/bin/activate # Активировать виртуальную среду $ python -m pip install ansible 

Запуск ansible-base из исходного кода (разработка) ¶

В 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

Once 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 также использует t следующие модули Python, которые необходимо установить 1:

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

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

 $ git pull --rebase 

 $ git pull --rebase  # то же самое, что и выше $ 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».

Поиск архивов с тегами релизов¶

Упаковка Ansible или вы хотите создать локальный пакет самостоятельно, но не хотите выполнять проверку с помощью git? Тарбалы выпусков доступны из 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 

iv>

Настройка 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. Здесь же мы храним средство отслеживания проблем для обмена сообщениями об ошибках и идеями функций.

См. Также

Введение в специальное решение команды

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

Работа с учебниками

Обучение Язык управления конфигурацией ansible

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

Установки Ansible к часто задаваемым вопросам

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

Есть вопросы? Помогите? Идеи? Заходите по списку в группах Google

irc.freenode.net

#ansible IRC канал чата

1 (1,2)

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

2

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

Оцените статью
Botgadget.ru
Добавить комментарий