Post on 23-Jan-2017
transcript
Ansible at Glogster Roman Komkov – roman@glogster.com
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 + Vagrant
For developers to build a production-like environment
Nothing to worry about, just wait until done
Used with Jenkins for isolated tests
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