![]() |
Доброго времени суток %username%.
Хотел рассказать о таком ПО как ansible. Ansible является отличным инструментом, для управления одного или нескольких серверов или выполнять на них определенных действий. В примере у нас будет мой десктоп PC1 = 192.168.1.1 И виртуальная машина, исполняющая роль "сервера". VM1 = 192.168.1.2 Поехали: 1. Установка и первоначальная настройка: 1.1 Можно установить из репозитория вашей системы если есть: sudo apt-get install ansible 1.2 По умолчанию ansible создает файлы конфигурации и файлы для исполнения в /etc/ansible но вы можете разместить файлы исполнения где вам удобно. 1.3 cd /etc/ansible && ls -la ansible.cfg - основной конфигурационный файл ansible. hosts - файл в котором мы описываем хосты к которым мы будем подключаться (ansible ипользует ssh). 1.4 vim /etc/asnible/hosts Там имеется закоментированное описание того как создавать хосты. #[ ] в таких скобках указывается группа хостов. # далее идут сами хосты ИМЯ ansible_....параметры. Код: Код:
[VM]#$SSHPASS познакомьтесь это переменная окружения документация ansible не советует держать пароль а открытом виде в целях безопасности, но вы можете это делать. #Заводим переменную окружения export SSHPASS=yourpassw0rd, так же можно использовать ssh ключи параметр: ansible_ssh_private_key_file=/path/to/file. #Так как нам понадобится исполнять комманды от привелигированного пользователя, то нужно разрешить sudo без пароля на сервере, либо указать ansible_sudo_pass=$SSHPASS как это сделал я. ##Как делается sudo без пароля: vim /etc/sudoers.d/username с содержимым username ALL=(ALL:ALL) NOPASSWD:ALL 2. Playbook и как это работает: Playbook`s пишется в формате .yml с соответствующему убогости синтаксиса YAML. Напишем простенький "плейбук" vim test.yml (в YAML запрещена табуляция, только пробелы) Код: Код:
- hosts: VM1ansible-playbook test.yml 3. Заключение: Возможности Ansible безграничны, он имеет огромное количество модулей для выполнения каких то определенных задач, но никто не отменял обычный shell. Всего что есть в Ansible не расскажешь и не покажешь, настолько много всего. Я взял этот инструмент на вооружение, и избавился от рутины добавлений пользователей на сервере, теперь задачи которые занимали 10 минут, могут занимать до минуты и выполнены они будет одно-двумя командами. Особенно подойдет тем у кого есть пул серверов, более 10. По мимо чего то простого как в моем примере, так же можно реализовать что-то по сложнее: Автоматизация процесса деплоев. Автоматизация процесса разворачивания окружений, притом любых. И т.д.... За дополнительной информацией если вам таковая интересна можете посетить официальную документацию: http://docs.ansible.com/ansible/intro.html Playbook: http://docs.ansible.com/ansible/playbooks.html Modules: http://docs.ansible.com/ansible/modules.html YAML: http://docs.ansible.com/ansible/YAMLSyntax.html Всем спасибо. Добро пожаловать в мир, где вы сделали все, что бы ничего не делать. |
Код:
Код:
---------------------------------------ISP----------------------------------------------------- |
| Время: 06:08 |