13
Ansible at Glogster Roman Komkov – [email protected] System Engineer at Glogster Prague Ansible Meet Up 17.09.2015

Ansible at glogster

Embed Size (px)

Citation preview

Ansible at Glogster Roman Komkov – [email protected]

System Engineer at Glogster

Prague Ansible Meet Up 17.09.2015

About me

  2 years at Glogster EDU as System Engineer

  5+ years of Linux administration

  5+ years of Python development

  Cluster, HA, Orchestration

  CI, CD…

  Twitter - @alkoengineering

GitHub, Freenode - decayofmind

About Glogster EDU

  Started in 2009

  Platform for presentation and interactive learning mainly used by educators and students

  19 million users

  Over 45 million glogs

  40000 new glogs daily

  Web service, mobile applications

  http://edu.glogster.com

Ansible at Glogster

  Different tools were tested

  Puppet?   Hard learning curve   Ruby   Client-server (additional configuration)   Pull-based   NO!

Ansible?   That’s simplicity we need!   Python   YAML!   Using it for 2 years already

Ansible + Jenkins

  To deploy RPM packages to all environments (live, devel, etc.)

  To manage services

  To disable/enable monitoring

  Downgrade trigger

  External variables

  Do not use that cool Jenkins Ansible plugin   Hard to handle in case you have a lot of jobs

Ansible + Jenkins

Ansible + Jenkins

Ansible + Vagrant

  For developers to build a production-like environment

  Nothing to worry about, just wait until done

  Used with Jenkins for isolated tests

Ansible + Vagrant

Ansible + Human

  Ideal solution for   Security patches   Package updated   New server provision

Configs

  Roles!

  Tags!

  Replace for cssh/pssh

  Fix one thing on all servers case

  DEMO….

Take away

  Keep everything in GIT

  Avoid redundant logic

  Mind roll-back

  One server to rule them all

  Use tags

Ansible is both tests and documentation for your servers

Desires

  Use Docker for deploy and testing

  Wrap the whole infrastructure into one big playbook structure (https://github.com/edx/configuration)   And open it!

  Use dynamic inventory (Collins from Tumblr https://tumblr.github.io/collins/)

  Keep facts in cache

  Use Ansible Vault

Questions?

  Visit our tech blog (https://glogster.github.io)

  We are hiring! (http://jobs.glogster.com)