$30 off During Our Annual Pro Sale. View Details »

DevOps mit Vagrant und Chef

DevOps mit Vagrant und Chef

Slides zu meiner Session auf dem Barcamp Mainz 2011. Eine kurze Einführung in Server-Konfigurations-Management mit Vagrant (und Chef).

Matthias Gutjahr

December 01, 2011
Tweet

More Decks by Matthias Gutjahr

Other Decks in Programming

Transcript

  1. DevOps mit Vagrant und Chef Matthias Gutjahr @mattsches http://matthias-gutjahr.de

  2. DevOps? „DevOps is an emerging set of principles, me- thods

    and practices for collaboration between • software development and • IT operations (systems administration) professionals.“ (http://en.wikipedia.org/wiki/Devops)
  3. „DevOps is an emerging set of principles, me- thods and

    practices for collaboration between • software development and • IT operations (systems administration) professionals.“ (http://en.wikipedia.org/wiki/Devops) DevOps?
  4. Server einrichten Sich häufig wiederholende Aufgabe, daher: • Brains? •

    Shellskript? • Dokumentation im Wiki? • Proprietäre Lösung? • …
  5. Probleme • Skripte und Dokumentationen veralten • Einrichten vieler Server/Entwicklungsrechner

    • Regelmäßige Software-Aktualisierung • Neuer Mitarbeiter → neuer Rechner • Einheitliche Umgebungen
  6. Infrastructure as code • Ausführbare, testbare und versionierte Server- Dokumentation

    • Schnelles, häufiges und v.a. reproduzierbares Config-Deployment
  7. Infrastructure as code • Ausführbare, testbare und versionierte Server- Dokumentation

    • Schnelles, häufiges und v.a. reproduzierbares Config-Deployment
  8. Vagrant

  9. Vagrant „Vagrant is a tool for building and distributing virtualized

    development environments.“ (http://vagrantup.com/)
  10. Standing on the shoulders of ... • VirtualBox • Ruby

    und RubyGems • Puppet oder Chef • Ab Version 4.1.x • * grummel * • Provisioning
  11. Quickstart $ gem install vagrant $ vagrant box add base

    \ http://files.vagrantup.com/lu cid32.box $ vagrant init $ vagrant up
  12. Quickstart $ gem install vagrant $ vagrant box add base

    \ http://files.vagrantup.com/lu cid32.box $ vagrant init $ vagrant up • Installiert Vagrant • Lädt vorkonfektionierte „Box“ herunter, also ein tar-File mit Image und Konfiguration • Erstellt das Vagrantfile • Fährt die Vagrant-Umgebung hoch
  13. Vagrant-Kommandos $ vagrant init $ vagrant up $ vagrant suspend

    $ vagrant resume $ vagrant ssh $ vagrant destroy • Initialisiert das aktuelle Verzeichnis • Fährt die Vagrant-Umgebung hoch • Aktuelle Umgebung unterbrechen … • … und wiederaufnehmen • SSH in die aktuelle Umgebung • Umgebung „zerstören“
  14. Chef Cookbooks enthalten die „Rezepte“, die beschreiben, wie und welche

    Software zu konfigurieren ist: chef.cookbooks_path = "cookbooks" chef.add_recipe("vagrant_main") chef.json = ({ :foo => 42, :baz => true })
  15. Vagrantfile Vagrant::Config.run do |config| config.vm.box = "lucid32" # Enable and

    configure the chef solo provisioner config.vm.provision :chef_solo do |chef| # We're going to download our cookbooks from the web chef.recipe_url = "http://files.vagrantup.com/getting_started/cookbooks.tar.gz" chef.cookbooks_path = "cookbooks" # Tell chef what recipe to run chef.add_recipe("vagrant_main") end end
  16. None
  17. Links • Vagrant: http://vagrantup.com/ • Chef: http://www.opscode.com/chef/ • Cookbooks: https://github.com/opscode/cookbooks

    • Puppet: http://www.puppetlabs.com/puppet • Boxen: http://vagrantbox.es/
  18. Fragen?

  19. Vielen Dank! Feedback bitte an @mattsches mattsches@gmail.com http://matthias-gutjahr.de/