Chef Application Cookbook Showcase

Dieses Vagrant Projekt auf unserem Github Repository ( https://github.com/iteh/vagrant-demos/ ) zeigt die Verwendung des Application Cookbooks für Chef

Data Driven Java Application Deployment

Das Application Cookbook hilft dabei einen kompletten Applikations Stack für Java Webapplikationen zu beschreiben und zu installieren. Es abstrahiert dabei die Installation von Apache2, Tomcat6 und Mysql durch einen Daten getriebenen Ansatz.

Im Kern dieses Konzepts steh die Beschreibung der Abhängigkeiten der Web Applikation rein durch Daten. In diesem Beispiel werden wir die Applikation “Probe” auf einen Tomcat6 Container deployen und über einen Apache2 Reverse Proxy servicieren.

Die Konfiguration kann in databags/apps/java_app.json gefunden werden. Die Konfiguration beschreibt die Abhängigkeit der Komponenten wie auch die konkreten Daten Servername, Tomcat Context der Applikation, sowie die Datenbank Ressource.

Chef-Solo Tweaks

Databags und Chef-Search sind eigentlich dem Chef-Client vorbehalten und können nicht von Chef-Solo aus genutzt werden, da – Nomen est Omen – Solo keinen “Server” kennt. Das Applikation Cookbook verwendet diese Funktionen und daher sind ein paar Veränderungen an Chef-Solo und Vagrant notwendig.

Um Vagrant Databags beizubringen wird folgender Patch verwendet: Vagrant_monkeypatch.rb Chef-Solo weiss aber immer noch nicht wie es Databags vom Filesystem laden soll, wie es eine Suche und wie es das Speichern der Node Daten ohne einen Server bewerkstelligen kann. Das wird mit cookbooks/vagrant/libraries/chef_solo_databag_patch.rb einer Erweiterung von chef_solo_patch.rb erledigt.

Das Speichern des Knoten macht im Moment nichts, gibt nur eine Warnung aus, dass ein Cookbook gerne Daten speichern möchte. Das genügt für diese Demonstration. Auch die Suche ist recht “dumm” implementiert und gibt nur das entsprechende Databag zurück.

Run it

Um das Beispiel selbst auszuprobieren einfach entweder das aktuellste Archiv von Github herunterladen oder mit git klonen. Eine Vagrant Installation vorausgesetzt in das Verzeichnis “vagrant-java-application” wechseln und

$ vagrant up

auf der Kommandozeile eingeben. Das wird eine Ubuntu lucid32 box herunterladen (500 MB das kann somit ein wenig dauern) und die Provisionierung mit Chef-Solo durchführen.

Nach einem erfolgreichen Chef-Solo Durchlauf kann man die Applikation unter http://java_app.smackaho.st:4567/probe/ erreichen. Username ist “probe” und das Passwort ist “probe”. Diese URI geht über den Apache Reverse Proxy auf den Tomcat. Die Applikation kann auch direkt auf dem Tomcat aufgerufen werden: http://java_app.smackaho.st:4568/probe/ .

Das auch Mysql und JDBC korrekt funktionieren kann man unter dieser URI sehen: http://java_app.smackaho.st:4567/probe/sql/datasourcetest.htm?webapp=/probe&resource=jdbc/java_app

blog comments powered by Disqus

Weitere Artikel die Sie interessieren könnten:

Deployment von Java Web Applikationen mit Chef von Opscode

There is a rework of the data driven deployment of java web applications. This Vagrant project on github ( https://github.com/iteh/vagrant-demos/ ) showcases the application cookbook for chef with a reworked application definition and LWRP for...

Links der Woche vom 2011-05-23 bis 2011-05-29

Diese Woche Links zu den Themen Windows, Ruby, opscode, JavaScript, maps, Leaflet, WordPress, Chef, windows, powershell, opschef, ios, ruby, devops, sysadmin, monitoringsucks

Links der Woche vom 2011-05-16 bis 2011-05-22

Diese Woche Links zu den Themen coffeebeans, Rails, CoffeeScript, Array, Ruby, Chef, Django, zo, devops, sysadmin, git, chef, CSS3, HTML5, WordPress, nipplegate, MongoDB, rails, rails3, asciicast, test, Android, opschef, Gem, aws, slim, Haml, ruby

Links der Woche vom 2011-05-09 bis 2011-05-15

Diese Woche Links zu den Themen wi, opschef, ActiveAdmin, rails, ror, ruby, HTML5, Chef, cnet, MongoDB, Sinatra, Rack, apple, git, aws, chef, opscode, sysadmin, Ksplice, noSQL, RubyTutorials, CSS3, EC2, AWS, MacRuby, iOS, m

Links der Woche vom 2011-04-11 bis 2011-04-17

Diese Woche Links zu den Themen ipad, iphone, opschef, ruby, OpenCV, detection, image, Weinberg, Ohai, automation, pr, test, gem, cloudfoundry, devops, cfoundry

Links der Woche vom 2011-04-04 bis 2011-04-10

Diese Woche Links zu den Themen Pow, Rack, ActiveRecord, Rails, Algorithms, Ruby, rails, optimize, CSS3, railscasts, chat, macbook, opschef, ruby

Links der Woche vom 2011-03-28 bis 2011-04-03

Diese Woche Links zu den Themen design, utilities, rails, asciicast, gem, ux, Awesome, jQuery, devops, Git, radiantcms, rvm, opschef, osx, MacRuby, chef, opscode, Rails, i18n, java, Vagrant, automation, Typography, Type

Links der Woche vom 2011-03-21 bis 2011-03-27

Diese Woche Links zu den Themen MacRuby, Java, Ruby, Mirah, CSS, refreshtoplayagain, gainsboro, photo, Design, mechanize, capybara, PHP, Rails, html5, webdesign, XCode, iPads, WordPress, Vagrant, Opscode, RUBY, Selenium, php, opschef, osx, devops,...

Links der Woche vom 2011-03-14 bis 2011-03-20

Diese Woche Links zu den Themen opschef, chef, mwrc, saas, Subscription, Billing, git, ruby, HTTP, Rails, Caching, devops, vagrant, opscode, Wordpress

Wordpress über JSON Api mit Facebook Page oder Tumblr befüllen

In diesem Beispiel zeigen wir die Installation von Wordpress in einem Ubuntu LAMP Stack. Weiters wird das JSON-Api Plugin für Wordpress und ein Theme installiert. Danach wird mit Mechanize der Wordpress Blog automatisch installiert und...