Развёртывание рабочего окружения для Drupal с
помощью Ansible
Sergey Cherebedov
Sergey Cherebedov
Full-Stack JS Developer
About my experience in Drupal
development
● Development
● Open source Drupal development
● Drupal audit
● Consulting
Server
> sudo apt-get install nginx
> sudo apt-get install apache
> sudo apt-get install php
> sudo apt-get install mysql-server
> cd /etc/nginx/conf.d
> ….
SSH
Client
> ansible-playbook stage
Instaling Nginx …[OK]
...
Зачем?
● человеческий фактор
● длительность релизов
● масштабирование
● живая и актуальная документация ко всей
инфраструктуре и ее конфигурации
● если хочется внеднять CI
Виды систем управления конфигурацией
Pull-системы
Есть главный сервер, на котором хранятся узлы и их конфигурация.
На узлах находится клиент, который оправшивает сервер, в случае если
администратор вносит изменения конфигурации на сервере, узлы
(клиенты) ее применяют. Хорошо использовать, когда у вас очень
большое количество узлов с одинаковой конфигурацией. Примеры: chef,
puppet.
Push-системы
Есть конфигурация, нет никаких дополнительных клиентов.
Администратор применяет конфигурацию на тех или иных узлах в любой
удобный момент. Примеры: Ansible
Почему именно Ansible ?
Плюсы
➔ Низкий порог вхождения
➔ Не требует дополнительного
ПО на сервере
➔ Декларативный язык
описания конфигурации
➔ Встроенный шаблонизатор
➔ Поддержка шифрования
➔ Наличие шаблонов для
популярных пакетов ПО
Минусы
➔ Деплой только на Unix
системы
➔ Windows только как
управляющая машина
➔ Работает только по ssh
➔ Требует осторожности из-за
root доступа скриптов
Hello world
Структура
> ansible-playbook -i hosts application.yml --limit production
├─ hosts
├─ group_vars/
├───── production.yml
├───── testing.yml
├───── all.yml
└─ application.yml
hosts
[production]
pechenki.com
[testing]
pechenki.local
testing.yml
---
# комментарий
nginx_conf_path: “/etc/nginx/conf.d”
app_name: “drupal.{{inventory_hostname}}”
variable_array:
-“lisichki”
-“kotyata”
application.yml
---
- hosts: all
sudo: yes
vars:
package_name: git
tasks:
- name: Install package {{ package_name }}
apt: pkg={{ package_name }} state=latest force=yes
Ссылки
http://docs.ansible.com/
- официальная документация
https://habrahabr.ru/company/selectel/blog/196620/
- норм статья на Хабре
https://www.youtube.com/watch?v=JousLu8lZn0
- крутая видюшка на ютубе
https://github.com/geerlingguy/ansible-role-drupal
- работающий скрипт для установки Друпала
https://www.drupal.org/project/commit_author
- реклама своего модуля C:
https://docs.google.
com/presentation/d/1WG_b7HzFzFgec1gfYpeeeC_576Dc_P0l6sDyPkZKuJE/edit
#slide=id.p
- ссылка на более полную презентацию
Sergey Cherebedov
Full Stack Js developer
cherebedov.sergey@gmail.com
При поддержке:
Организаторы:
Thank you!

Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.

  • 1.
    Развёртывание рабочего окружениядля Drupal с помощью Ansible Sergey Cherebedov
  • 2.
    Sergey Cherebedov Full-Stack JSDeveloper About my experience in Drupal development ● Development ● Open source Drupal development ● Drupal audit ● Consulting
  • 4.
    Server > sudo apt-getinstall nginx > sudo apt-get install apache > sudo apt-get install php > sudo apt-get install mysql-server > cd /etc/nginx/conf.d > …. SSH Client > ansible-playbook stage Instaling Nginx …[OK] ...
  • 5.
    Зачем? ● человеческий фактор ●длительность релизов ● масштабирование ● живая и актуальная документация ко всей инфраструктуре и ее конфигурации ● если хочется внеднять CI
  • 6.
    Виды систем управленияконфигурацией Pull-системы Есть главный сервер, на котором хранятся узлы и их конфигурация. На узлах находится клиент, который оправшивает сервер, в случае если администратор вносит изменения конфигурации на сервере, узлы (клиенты) ее применяют. Хорошо использовать, когда у вас очень большое количество узлов с одинаковой конфигурацией. Примеры: chef, puppet. Push-системы Есть конфигурация, нет никаких дополнительных клиентов. Администратор применяет конфигурацию на тех или иных узлах в любой удобный момент. Примеры: Ansible
  • 7.
  • 8.
    Плюсы ➔ Низкий порогвхождения ➔ Не требует дополнительного ПО на сервере ➔ Декларативный язык описания конфигурации ➔ Встроенный шаблонизатор ➔ Поддержка шифрования ➔ Наличие шаблонов для популярных пакетов ПО Минусы ➔ Деплой только на Unix системы ➔ Windows только как управляющая машина ➔ Работает только по ssh ➔ Требует осторожности из-за root доступа скриптов
  • 9.
  • 10.
    Структура > ansible-playbook -ihosts application.yml --limit production ├─ hosts ├─ group_vars/ ├───── production.yml ├───── testing.yml ├───── all.yml └─ application.yml
  • 11.
  • 12.
    testing.yml --- # комментарий nginx_conf_path: “/etc/nginx/conf.d” app_name:“drupal.{{inventory_hostname}}” variable_array: -“lisichki” -“kotyata”
  • 13.
    application.yml --- - hosts: all sudo:yes vars: package_name: git tasks: - name: Install package {{ package_name }} apt: pkg={{ package_name }} state=latest force=yes
  • 14.
    Ссылки http://docs.ansible.com/ - официальная документация https://habrahabr.ru/company/selectel/blog/196620/ -норм статья на Хабре https://www.youtube.com/watch?v=JousLu8lZn0 - крутая видюшка на ютубе https://github.com/geerlingguy/ansible-role-drupal - работающий скрипт для установки Друпала https://www.drupal.org/project/commit_author - реклама своего модуля C: https://docs.google. com/presentation/d/1WG_b7HzFzFgec1gfYpeeeC_576Dc_P0l6sDyPkZKuJE/edit #slide=id.p - ссылка на более полную презентацию
  • 15.
    Sergey Cherebedov Full StackJs developer cherebedov.sergey@gmail.com При поддержке: Организаторы: Thank you!