Это пособие познакомит вас Ansible пошагово. Вам понадобится (виртуальная или реальная) машина, которая будет выступать в роли ansible node. Окружение для Vagrant идет в комплекте с этим пособием.
Ansible это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные узлы. Главное его отличие от других подобных систем – Ansible использует (потенциально) существующую инфраструктуру SSH, в то время как другие (chef, puppet, ...) требует установки специального PKI-окружения.
Ansible использует т.н. push mode: конфигурация "проталкивается" (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы "тянут" (pull) конфигурацию с главной машины.
Этот режим интересен потому что вам не нужно иметь публично доступную главноую машину для удаленной настройки узлов: это узлы должны быть доступны (позже мы увидим что скрытые узлы также могут получать конфигурацию), и большую часть времени они на самом деле доступны.
Необходимы следующие Python-модули
- python-yaml
- python-jinja2
На Debian/Ubuntu запустите:
sudo apt-get install python-yaml python-jinja2 python-paramiko python-crypto
У вас также должна быть комбинация ключей в ~/.ssh.
Ветка devel всегда стабильна, так что используем ее. Возможно, вам нужно будет установить git (sudo apt-get install git
на Debian/Ubuntu).
git clone git://github.com/ansible/ansible.git
cd ./ansible
Теперь можно загрузить окружение Ansible.
source ./hacking/env-setup
sudo apt-get install make fakeroot cdbs python-support
git clone git://github.com/ansible/ansible.git
cd ./ansible
make deb
sudo dpkg -i ../ansible_1.1_all.deb (version may vary)
В этом пособии мы допускаем, что вы использовали именно этот способ.
git clone https://github.com/freetonik/ansible-tuto-rus.git
cd ansible-tuto-rus
Настоятельно рекомендуем использовать Vagrant при прохождении этого пособия. Если вы еще не установили его, следуйте простым инструкциям в step-00/README.md.
Если вы хотите продолжить без Vagnrant, переходите к шагу step-01/README.md.
- 00. Установка Vagrant
- 01. Basic inventory
- 02. Первые модули и факты
- 03. Группы и переменные
- 04. Playbooks
- 05. Плейбуки, отправка файлов на узлы
- 06. Плейбуки и ошибки
- 07. Плейбуки и условия
- 08. Модуль Git
- 09. Расширение до нескольких хостов
- 10. Шаблоны
- 11. Снова переменные
- 12. Миграция к ролям
Спасибо всем, кто участвовал в создании этого пособия:
- Aladin Jaermann
- Alexis Gallagher
- Atilla Mas
- Benny Wong
- Chris Schmitz
- dalton
- Daniel Howard
- David Golden
- Eugene Kalinin
- Hartmut Goebel
- Justin Garrison
- Karlo
- Marchenko Alexandr
- mxxcon
- Patrick Pelletier
- Pierre-Gilles Levallois
- Ruud Kamphuis
- Victor Boivie
Я использую Ansible почти с самого его появления, и я узнал очень много в процессе написания пособия. Если вы хотите поучаствовать – буду рад вашим дополнениям.
Это перевод туториала от Michel Blanc. Разделы, работа над которыми идет в данный момент, находятся в ветке writing в оригинальном репозитории.
Если вы хотите дополнить/исправить перевод, пожалуйста, откройте Pull Request.