Data Driven Deployment einer Java Web Application mit Chef Solo
Erstellt um 12:38 von DI Edmund HaselwanterChef 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
Weitere Artikel die Sie interessieren könnten:
Deployment von Java Web Applikationen mit Chef von OpscodeThere 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-29Diese 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-22Diese 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-15Diese 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-17Diese 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-10Diese 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-03Diese 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-27Diese 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-20Diese 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üllenIn 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...


