Upload
marianne-krause
View
221
Download
1
Tags:
Embed Size (px)
Citation preview
Vagrant + Ansiblevs
Docker
Test environment automation
Marianne KrauseBlue4It
28-05-2015
Programmeer/script talen:
- Java developer (5 jaar)- Python developer (5 jaar)- C++ developer (2 jaar)- Javascript developer (17 jaar)
Who am i
Opensource projecten (onder andere):
- CoughDB- AngularJS- Ansible- Gearman
- Logstash - Elastic search
- Mangos- Junction
- NGinx- Haproxy- RabbitMQ- Thrift- etc!
Hobby programmeer/script talen:
- Bash- C- Erlang- PHP- Ruby
Index- Provisioning- tooling
- Ansible- examples
- Docker- examples
- Vagrant- examples
- Samenvatting
Provisioning
Provisioning ToolsPuppet Salt Ansible Chef Docker
Master - Agent Master - Minion
Master - (agent-less)
Master -Client Containers
Ruby Python Python Ruby Go
Linux windows osx open-
source commercial config-mgmt provisioning orchestration
Linux windows osx open-
source commercial config-mgmt provisioning orchestration
Linux open-source
provisioning config-mgmt orchestration
Linux windows open-
source provisioning config-mgmt
Linux open-source virt cloud-paas
provisioning
http://www.devopsbookmarks.com/provisioning
Ansible- Provisioning
- Kan jobs uitvoeren- Client-less
- Verzorgt geen virtualisatie laag
- ‘Playbooks’ kunnen ook op andere omgevingen uitgevoerd worden- ‘Playbooks’ zijn testbaar
- Kan docker containers aansturen en bouwen
http://docs.ansible.com/
Ansible cons- Duurt lang met uitvoeren- Environment afhankelijk (playbooks werken niet
out of the box op een ander os)
Example Ansible
Example Ansible Roles
Docker- Provisioning- Client-less
- Verzorgt zelf omgevingen (Containers). Geen virtualisatie laag strikt nodig- ‘Containers’ kunnen ook op andere omgevingen runnen- Erg geschikt om omgevingen clean op te zetten
https://docs.docker.com/
Docker cons- Niet geschikt voor persistentielaag of
esbservices- Tussenlaag op windows en mac geeft soms
problemen- Minder geschikt voor omgevingen die niet clean
opgezet worden
Vagrant- Stuurt de virtualisatie laag aan
- Regelt standaard connectivity
- Via Vagrant cloud basis vm’s downloaden- Vagrant boxes zijn deelbaar
- Kan zelf geen jobs runnen, dit moet met provisioning
https://docs.vagrantup.com/v2/
Example Vagrant + Ansible
http://docs.vagrantup.com/v2/provisioning/ansible.html
Example Docker
http://docs.vagrantup.com/v2/provisioning/docker.html
Ansible vsDocker
<— Vagrant+Ansible
Docker —>
Vagrant
Usecases- Vagrantbox op Git in plaats van tutorial
- Linux/Mac ontwikkelomgevingen inrichten met Ansible
- CI omgeving met Docker en AWS3
Praktijk samenvatting- Docker in productie is eng!- Docker voor dev/test/acc af en toe als
speelgoed- Docker tooling groeit snel door community- Jenkins + Docker/Ansible voor test/acc- Doel van Vagrant is moeilijk uit te leggen- Vagrant boxes op GIT ipv VagrantCloud- Veel datacenters gebruiken al Ansible of Puppet- Gaan gebruiken van Ansible is gemakkelijk icm
python 2.7 machines