Руководство по установке
- Основы / Что будет установлено
- Какую версию выбрать?
- Требования к контрольному узлу
- Требования к управляемому узлу
-
Установка контрольного узла
- Последняя версия через DNF или Yum
- Последние версии через Apt (Ubuntu)
- Последние версии через Apt (Debian)
- Последние версии через Portage (Gentoo)
- Последние версии через pkg (FreeBSD)
- Последние версии на macOS
- Последние версии через OpenCSW (Solaris)
- Последние версии через Pacman (Arch Linux)
- Последние версии через sbopkg (Slackware Linux)
- Последняя версия через swupd (Clear Linux)
- Последние версии через Pip
- Архивы (tarballs) помеченных релизов
- Запуск из исходного кода
- Ansible на GitHub
Добро пожаловать в руководство по установке Ansible!
Основы / Что будет установлено
Ansible по умолчанию управляет машинами через протокол SSH.
После установки Ansible он не добавит базу данных и не будет запускать или поддерживать работу демонов. Вам нужно установить его только на одной машине (например, ноутбуке), и он сможет управлять всем флотом удалённых машин с этой центральной точки. При управлении удалёнными машинами Ansible не оставляет установленного или запущенного на них программного обеспечения, поэтому нет реальных вопросов о том, как обновлять Ansible при переходе на новую версию.
Какую версию выбрать?
Поскольку он так легко запускается из исходного кода и не требует установки программного обеспечения на удалённых машинах, многие пользователи отслеживают версию разработки.
Циклы выпуска Ansible обычно составляют около четырёх месяцев. Из-за этого короткого цикла выпуска незначительные ошибки обычно будут исправлены в следующем выпуске, а не в рамках поддержания обратных портов на стабильной ветке. Серьёзные ошибки всё же будут иметь поддерживающие релизы при необходимости, хотя такие релизы редки.
Если вы хотите запустить последнюю версию Ansible, и вы используете Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian или Ubuntu, мы рекомендуем использовать менеджер пакетов вашей операционной системы.
Для других вариантов установки мы рекомендуем установку через pip, который является менеджером пакетов Python.
Если вы хотите отслеживать релизы разработки, чтобы использовать и тестировать новейшие функции, мы поделимся информацией о запуске из исходного кода. Запуск из исходного кода не требует установки программы.
Требования к контрольному узлу
В настоящее время Ansible можно запустить на любой машине с установленным Python 2 (версия 2.7) или Python 3 (версии 3.5 и выше). Поддержка Windows для контрольного узла отсутствует.
Это включает Red Hat, Debian, CentOS, macOS, любой из BSD и т.д.
Примечание
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.
-
Модуль Ansible «raw» (для выполнения команд быстрым и грязным способом) и модуль script вообще не требуют установленного Python. Таким образом, технически вы можете использовать Ansible для установки совместимой версии Python с помощью модуля raw, что затем позволит использовать всё остальное. Например, если вам нужно загрузить Python 2 на систему на базе RHEL, вы можете установить его с помощью:
$ ansible myhost --become -m raw -a "yum install -y python2"
Установка контрольного узла
Последняя версия через DNF или Yum
В 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.8-for-rhel-8-x86_64-rpms
Для включения репозитория Ansible Engine в RHEL 7 выполните следующую команду:
$ sudo subscription-manager repos --enable rhel-7-server-ansible-2.8-rpms
RPM-пакеты для поддерживаемых версий RHEL, CentOS и Fedora также доступны из EPEL здесь и здесь.
Ansible версии 2.4 и выше могут управлять более ранними операционными системами, содержащими Python 2.6 или более поздние версии.
Вы также можете самостоятельно создать RPM. Из корня репозитория или архива (tarball) используйте команду make rpm для создания RPM-пакета, который вы можете распространять и устанавливать.
$ git clone https://github.com/ansible/ansible.git $ cd ./ansible $ make rpm $ sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm
Последние версии через Apt (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
Также вы можете запустить установку из исходного кода, чтобы получить последнюю версию, что описано ниже.
Последние версии через Apt (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.
Последние версии через Portage (Gentoo)
$ emerge -av app-admin/ansible
Для установки последней версии, возможно, потребуется размаскировать пакет ansible перед использованием команды emerge:
$ echo 'app-admin/ansible' >> /etc/portage/package.accept_keywords
Последние версии через pkg (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
Последние версии на macOS
Предпочтительный способ установки Ansible на Mac — через pip.
Инструкции можно найти в разделе Последние версии через Pip. Если вы используете macOS версии 10.12 или более раннюю, вам следует обновить до последней версии pip для безопасного подключения к Python Package Index.
Последние версии через OpenCSW (Solaris)
Ansible доступен для Solaris как пакет SysV из OpenCSW.
# pkgadd -d http://get.opencsw.org/now # /opt/csw/bin/pkgutil -i ansible
Последние версии через Pacman (Arch Linux)
Ansible доступен в репозитории Community:
$ pacman -S ansible
AUR содержит PKGBUILD для прямого скачивания с GitHub под названием ansible-git.
Также см. страницу Ansible на ArchWiki.
Последние версии через sbopkg (Slackware Linux)
Скрипт сборки Ansible доступен в репозитории SlackBuilds.org. Его можно собрать и установить с помощью sbopkg.
Создайте очередь с Ansible и всеми зависимостями:
# sqg -p ansible
Соберите и установите пакеты из созданного файла очереди (ответьте Q на вопрос, если sbopkg должен использовать очередь или пакеты):
# sbopkg -k -i ansible
Последняя версия через swupd (Clear Linux)
Ansible и его зависимости доступны как часть пакета управления хостами sysadmin:
$ sudo swupd bundle-add sysadmin-hostmgmt
Обновление программного обеспечения будет управляться инструментом swupd:
$ sudo swupd update
Последние версии через 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 или создать собственный локальный пакет, но не хотите выполнять git checkout, архивы релизов доступны на странице загрузки Ansible.
Эти релизы также помечены в репозитории git с номером версии.
Запуск из исходного кода
Ansible легко запустить из исходного кода. Вам не нужны права root для его использования, и нет программного обеспечения, которое нужно устанавливать. Не требуется настройка демонов или базы данных. Благодаря этому многие пользователи из нашего сообщества постоянно используют разработку Ansible, чтобы воспользоваться новыми функциями при их реализации и легко внести свой вклад в проект. Поскольку ничего не нужно устанавливать, отслеживание развития намного проще, чем в большинстве открытых проектов.
Примечание
Если вы хотите использовать 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».
Ansible на GitHub
Вы также можете следить за проектом GitHub, если у вас есть аккаунт. Здесь же находится система отслеживания проблем для сообщения об ошибках и предложений новых функций.
См. также
- Введение в адхоковые команды
- Примеры основных команд
- Работа с плейбуками
- Изучение языка управления конфигурацией 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.8/installation_guide/intro_installation.html