Руководство по установке
- Основы / Что будет установлено
- Какую версию выбрать?
- Требования к управляющей машине
- Требования к управляемым узлам
-
Установка управляющей машины
- Последняя версия через DNF или Yum
- Последние версии через Apt (Ubuntu)
- Последние версии через Apt (Debian)
- Последние версии через Portage (Gentoo)
- Последние версии через pkg (FreeBSD)
- Последние версии на Mac OSX
- Последние версии через OpenCSW (Solaris)
- Последние версии через Pacman (Arch Linux)
- Последние версии через Pip
- Архивы помеченных релизов
- Запуск из исходного кода
- 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.6 или 2.7) или Python 3 (версии 3.5 и выше) (Windows не поддерживается для управляющей машины).
Это включает Red Hat, Debian, CentOS, OS X, любой из BSD и так далее.
Примечание
Mac OS X по умолчанию настроен на небольшое количество дескрипторов файлов, поэтому если вы хотите использовать 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 --sudo -m raw -a "yum install -y python2"
Установка управляющей машины
Последняя версия через DNF или Yum
В Fedora:
$ sudo dnf install ansible
В RHEL и CentOS:
$ sudo yum install ansible
RPM-пакеты для RHEL 7 доступны из репозитория Ansible Engine.
Для включения репозитория Ansible Engine выполните следующую команду:
$ sudo subscription-manager repos --enable rhel-7-server-ansible-2.6-rpms
RPM-пакеты для текущих поддерживаемых версий RHEL, CentOS и Fedora также доступны из EPEL, а также releases.ansible.com.
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 здесь.
Для настройки PPA на вашей машине и установки ansible выполните эти команды:
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible
Примечание
В более старых дистрибутивах Ubuntu «software-properties-common» называется «python-software-properties».
Пакеты 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-get update $ sudo apt-get install ansible
Примечание
Этот метод был проверен с источниками Trusty в Debian Jessie и Stretch, но может не поддерживаться в более ранних версиях.
Последние версии через Portage (Gentoo)
$ emerge -av app-admin/ansible
Для установки последней версии вам может потребоваться разблокировать пакет ansible перед использованием команды emerge:
$ echo 'app-admin/ansible' >> /etc/portage/package.accept_keywords
Примечание
Текущий Python по умолчанию в Gentoo - версия 3.4. Ansible требует Python 3.5 или выше, поэтому вам потребуется :ref:`bootstrap <managed_node_requirements> совместимую версию на машины.
Последние версии через pkg (FreeBSD)
$ sudo pkg install ansible
Вы также можете установить из портов, выполните:
$ sudo make -C /usr/ports/sysutils/ansible install
Последние версии на Mac OSX
Предпочтительный способ установки ansible на Mac - через pip.
Инструкции можно найти в разделе Последние версии через Pip.
Последние версии через 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.
Последние версии через Pip
Ansible можно установить через «pip», менеджер пакетов Python. Если «pip» ещё не доступен в вашей версии Python, вы можете получить pip с помощью:
$ sudo easy_install pip
Затем установите Ansible с помощью [1]:
$ sudo pip install ansible
Или если вы ищете последнюю версию разработки:
pip install git+https://github.com/ansible/ansible.git@devel
Если вы устанавливаете на OS X Mavericks, вы можете столкнуться с некоторыми шумами от вашего компилятора. Обходной путь заключается в следующем:
$ sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install ansible
Читатели, которые используют virtualenv, также могут установить Ansible под virtualenv, хотя мы рекомендуем не беспокоиться об этом и просто установить Ansible глобально. Не используйте easy_install для установки ansible напрямую.
Архивы помеченных релизов
Упаковываете Ansible или хотите самостоятельно собрать локальный пакет, но не хотите выполнять git checkout? Архивы релизов доступны на странице загрузки Ansible.
Эти релизы также помечены в репозитории git с версией релиза.
Запуск из исходного кода
Ansible легко запустить из выгрузки - права root не требуются для его использования, и нет программного обеспечения для фактической установки. Не требуется ни демонов, ни настройки базы данных. Из-за этого многие пользователи из нашего сообщества постоянно используют разработанную версию Ansible, чтобы воспользоваться новыми функциями при их реализации и легко внести свой вклад в проект. Поскольку ничего не нужно устанавливать, отслеживание разработанной версии значительно проще, чем в большинстве открытых проектов с исходным кодом.
Примечание
Если вы планируете использовать Tower в качестве контрольного узла, не используйте установку из исходного кода. Пожалуйста, используйте менеджер пакетов ОС (например, apt/yum) или pip для установки стабильной версии.
Чтобы установить из исходного кода, клонируйте репозиторий Ansible git:
$ git clone https://github.com/ansible/ansible.git --recursive $ cd ./ansible
После клонирования репозитория Ansible git настройте среду Ansible:
Используя Bash:
$ source ./hacking/env-setup
Используя Fish:
$ source ./hacking/env-setup.fish
Если вы хотите подавить ложные предупреждения/ошибки, используйте:
$ source ./hacking/env-setup -q
Если у вас не установлен pip в вашей версии Python, установите pip:
$ sudo easy_install pip
Ansible также использует следующие модули Python, которые необходимо установить [1]:
$ sudo pip install -r ./requirements.txt
Для обновления выгрузок ansible используйте pull-with-rebase, чтобы все локальные изменения были воспроизведены.
$ git pull --rebase
Примечание: при обновлении выгрузок ansible версии 2.2 и более ранних убедитесь, что вы не только обновили дерево исходного кода, но и «подмодули» в git, которые указывают на собственные модули Ansible.
$ 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
Примечание
ANSIBLE_INVENTORY доступен начиная с версии 1.9 и заменяет устаревший ANSIBLE_HOSTS
Подробнее о файле инвентаризации можно узнать в последующих разделах руководства.
Теперь давайте проверим работу с командой ping:
$ ansible all -m ping --ask-pass
Вы также можете использовать «sudo make install».
Ansible на GitHub
Если у вас есть учетная запись GitHub, вы также можете следить за проектом GitHub. Здесь также хранится система отслеживания проблем для обсуждения ошибок и идей новых функций.
См. также
- Введение в команды Ad-Hoc
- Примеры основных команд
- Работа с Playbook
- Изучение языка управления конфигурацией ansible
- Список рассылки
- Вопросы? Помощь? Идеи? Загляните на список на Google Groups
- irc.freenode.net
- #ansible IRC-чат-канал
| [1] |
(1, 2) Если у вас проблемы с установкой пакета «pycrypto» в Mac OSX, вам может потребоваться попробовать CC=clang sudo -E pip install pycrypto. |
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/installation_guide/intro_installation.html