SlideShare a Scribd company logo
Devops.Events
Вебинар на тему:
Знакомство с Ansible.
Популярные практики и ошибки
Спикер: Павел Егоров - DevOps инженер в DataRobot
Кто я?
Павел Егоров
• DevOps инженер
• приверженец автоматизации
• люблю Ansible
• люблю когда работа делает
себя сама
Devops.Events
Плюсы и минусы Ansible
Плюсы:
• простота
• SSH
• модульность
• agentless
• open source
Минусы:
• agentless
• ручная работа
• нет контроля
Devops.Events
Из чего состоит Ansible?
• плейбуки
• роли
• инвентари
• групповые переменные
• переменные хостов
Devops.Events
Playbook
---
- name: "Install LAMP server"
hosts: lamp
user: ubuntu
gather_facts: true
vars_files:
- ../vars/lamp.yml
roles:
- role: apache
tags: webserver
- role: mysql
tags: database
- role: php
tags: php
Devops.Events
Role
• defaults
• handlers
• meta
• tasks
• templates
• files
Devops.Events
Role: defaults
Хранит переменные по-умолчанию
---
apache_log_path: /mnt/logs/apache
apache_data_path: /mnt/apache/data
apache_port: 8080
Devops.Events
Role: handlers
Хранит обработчики
---
- name: "Restart Apache"
sudo: yes
service:
name: apache
state: restarted
Devops.Events
Role: meta
Хранит зависимости от других ролей
---
dependencies:
- { role: java }
- { role: basic }
Devops.Events
Role: tasks
Делает всю работу
---
- name: "Install Apache"
sudo: yes
apt:
name: apache
state: present
update_cache: yes
- name: "Configure Apache"
template:
src: apache.conf.j2
Devops.Events
Role: templates
Хранит шаблоны создаваемых файлов
Listen {{ apache_port }}
<VirtualHost *:{{ apache_port }}>
DocumentRoot "{{ apache_site_data }}"
ServerName {{ site_name }}
# Other directives here
</VirtualHost>
Devops.Events
Inventory
Хранит группы серверов
[lamp]
10.20.30.40
[elasticsearch-cluster-1]
10.20.40.41
10.20.40.42
10.20.40.43
Devops.Events
Group/Host vars
Group vars - для групп хостов
Host vars - для отдельных хостов
Devops.Events
Patterns & Anti-patterns
Devops.Events
Anti-pattern:
Писать все задачи в плейбук без разбивки на роли
- name: "Install LAMP server"
hosts: lamp
user: ubuntu
gather_facts: true
vars_files:
- ../vars/lamp.yml
tasks:
- name: "install apache"
...
- name: "configure mysql"
...
- name: "install php"
...
- name: "install mysql"
...
- name: "kill Sarah Connor"
Devops.Events
Pattern:
Использовать в плейбуке роли и теги, делать его модульным
- name: "Install LAMP server"
hosts: lamp
user: ubuntu
gather_facts: true
vars_files:
- ../vars/lamp.yml
roles:
- role: apache
tags: webserver
- role: mysql
tags: database
Devops.Events
Anti-pattern:
Описывать задачи в одну строку:
Devops.Events
- lineinfile: dest=/opt/jboss-as/bin/standalone.conf regexp='^(.*)Xms(d+)m(.*)$' line='1Xms$
ba
Такая строка даже не поместилась в слайд, как
видите
Pattern:
При описании задачи записывать каждый параметр в отдельную строку
- lineinfile:
dest: /opt/jboss-as/bin/standalone.conf
regexp: '^(.*)Xms(d+)m(.*)$'
line: '1Xms${xms}m3'
backrefs: yes
Devops.Events
Anti-pattern:
Использовать один inventory файл для всей инфраструктуры
Devops.Events
Pattern:
Создавать отдельные файлы инвентаря для различных окружений и
частей системы:
Devops.Events
Ansible-lint и код-ревью
• Ansible-lint
https://github.com/willthames/ansible-lint
• Yaml-lint
https://github.com/Pryz/yaml-lint
Devops.Events
Конец
Спасибо за внимание!
email: paul.yehorov@gmail.com
LinkedIn: Paul Yehorov

More Related Content

What's hot

Continuous delivery on IBMi
Continuous delivery on IBMi Continuous delivery on IBMi
Continuous delivery on IBMi
Maxim Shatunov
 
Введение в Akka
Введение в AkkaВведение в Akka
Введение в AkkaZheka Kozlov
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Gonchik Tsymzhitov
 
ASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPIASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPI
Byndyusoft
 
Java 8. Autotests in a functional way.
Java 8. Autotests in a functional way.Java 8. Autotests in a functional way.
Java 8. Autotests in a functional way.
Konstantin Neradovsky
 
Roman Gorel: Building better APIs on Rails.
Roman Gorel: Building better APIs on Rails.Roman Gorel: Building better APIs on Rails.
Roman Gorel: Building better APIs on Rails.
Sphere Consulting Inc
 
Разделяй и властвуй!
Разделяй и властвуй!Разделяй и властвуй!
Разделяй и властвуй!
Vitebsk Miniq
 
Chef wtf
Chef wtfChef wtf
Путь мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsПуть мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devops
Vsevolod Polyakov
 
WordPress: React way by Oleksandr Strikha
WordPress: React way by Oleksandr StrikhaWordPress: React way by Oleksandr Strikha
WordPress: React way by Oleksandr Strikha
WordCamp Kyiv
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
Igor Kurochkin
 
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Ontico
 
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2rit2011
 

What's hot (13)

Continuous delivery on IBMi
Continuous delivery on IBMi Continuous delivery on IBMi
Continuous delivery on IBMi
 
Введение в Akka
Введение в AkkaВведение в Akka
Введение в Akka
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
ASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPIASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPI
 
Java 8. Autotests in a functional way.
Java 8. Autotests in a functional way.Java 8. Autotests in a functional way.
Java 8. Autotests in a functional way.
 
Roman Gorel: Building better APIs on Rails.
Roman Gorel: Building better APIs on Rails.Roman Gorel: Building better APIs on Rails.
Roman Gorel: Building better APIs on Rails.
 
Разделяй и властвуй!
Разделяй и властвуй!Разделяй и властвуй!
Разделяй и властвуй!
 
Chef wtf
Chef wtfChef wtf
Chef wtf
 
Путь мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsПуть мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devops
 
WordPress: React way by Oleksandr Strikha
WordPress: React way by Oleksandr StrikhaWordPress: React way by Oleksandr Strikha
WordPress: React way by Oleksandr Strikha
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
 
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
 
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
 

Viewers also liked

Dystopian Controls #2 DBlock
Dystopian Controls  #2 DBlockDystopian Controls  #2 DBlock
Dystopian Controls #2 DBlock
donamore1
 
Gogle 2
Gogle 2Gogle 2
Fanuzzi Academic Curriculum Vita 2016
Fanuzzi Academic Curriculum Vita 2016Fanuzzi Academic Curriculum Vita 2016
Fanuzzi Academic Curriculum Vita 2016
Robert Fanuzzi
 
Getaway sri lanka travel brochure
Getaway sri lanka travel brochureGetaway sri lanka travel brochure
Getaway sri lanka travel brochure
GetawaySriLanka
 
Caso Internacional Brasil y PaÍses Vascos
Caso Internacional Brasil y PaÍses VascosCaso Internacional Brasil y PaÍses Vascos
Caso Internacional Brasil y PaÍses Vascos
Carlos Kancev González
 
797856
797856797856
Why You Should Hire a Wildlife Professional
Why You Should Hire a Wildlife ProfessionalWhy You Should Hire a Wildlife Professional
Why You Should Hire a Wildlife Professional
ALL OUT Wildlife Control, LLC
 
балташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центры
балташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центрыбалташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центры
балташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центры
Елена Вайгандт
 
Presentationof technological procedure of drinking water preparation on the w...
Presentationof technological procedure of drinking water preparation on the w...Presentationof technological procedure of drinking water preparation on the w...
Presentationof technological procedure of drinking water preparation on the w...
Slobodan Zlatković
 

Viewers also liked (9)

Dystopian Controls #2 DBlock
Dystopian Controls  #2 DBlockDystopian Controls  #2 DBlock
Dystopian Controls #2 DBlock
 
Gogle 2
Gogle 2Gogle 2
Gogle 2
 
Fanuzzi Academic Curriculum Vita 2016
Fanuzzi Academic Curriculum Vita 2016Fanuzzi Academic Curriculum Vita 2016
Fanuzzi Academic Curriculum Vita 2016
 
Getaway sri lanka travel brochure
Getaway sri lanka travel brochureGetaway sri lanka travel brochure
Getaway sri lanka travel brochure
 
Caso Internacional Brasil y PaÍses Vascos
Caso Internacional Brasil y PaÍses VascosCaso Internacional Brasil y PaÍses Vascos
Caso Internacional Brasil y PaÍses Vascos
 
797856
797856797856
797856
 
Why You Should Hire a Wildlife Professional
Why You Should Hire a Wildlife ProfessionalWhy You Should Hire a Wildlife Professional
Why You Should Hire a Wildlife Professional
 
балташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центры
балташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центрыбалташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центры
балташева жанна+оздоровительный центр денсаулык+ лечебно оздоровительные центры
 
Presentationof technological procedure of drinking water preparation on the w...
Presentationof technological procedure of drinking water preparation on the w...Presentationof technological procedure of drinking water preparation on the w...
Presentationof technological procedure of drinking water preparation on the w...
 

Similar to Вебинар на тему знакомство с Ansible. популярные практики и ошибки

PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
Ontico
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
Alexander Titov
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Ontico
 
Migrate!
Migrate!Migrate!
Migrate!
sergeymoiseev
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
pgdayrussia
 
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo groupИгорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Alina Vilk
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
Oleg Poludnenko
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на Erlang
Max Lapshin
 
Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
Fwdays
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Nikita Borzykh
 
Способы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированиюСпособы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированию
COMAQA.BY
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на Kubernetes
Mad Devs
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
Ryazan
RyazanRyazan
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень
IT Share
 
Масштабируемый DevOps
Масштабируемый DevOpsМасштабируемый DevOps
Масштабируемый DevOps
Minsk Linux User Group
 

Similar to Вебинар на тему знакомство с Ansible. популярные практики и ошибки (20)

PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Migrate!
Migrate!Migrate!
Migrate!
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
 
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo groupИгорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на Erlang
 
Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.
 
Sivko
SivkoSivko
Sivko
 
Способы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированиюСпособы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированию
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на Kubernetes
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
Ryazan
RyazanRyazan
Ryazan
 
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень
 
Масштабируемый DevOps
Масштабируемый DevOpsМасштабируемый DevOps
Масштабируемый DevOps
 

Вебинар на тему знакомство с Ansible. популярные практики и ошибки