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 konfiguriert. Anschliessend erzeugen wir noch Einträge im Wordpress Blog indem wir Postings von einer Facebook Page und von einem Tumblr Blog über deren API abfragen und mit der JSON Wordpress API dem Blog hinzufügen.

Grundlage ist hier die schon bekannte Wordpress Installation aus den vorangegangenen Beispielen.
Dieses mal möchten wir aber Version 3.1 von Wordpress installieren. Dazu kann man eine der tollen Funktionen der automatisierten Installation mit Chef verwenden. Die Versionsnummer von Wordpress ist ein Parameter. Im Vagrant Konfigurationsfile können wir hier einfach den gewünschten Wert setzen:

   1  config.chef.json.merge!({
   2        :mysql => { ... },
   3        :wordpress_hostname => "wordpress.smackaho.st",
   4        :wordpress => {
   5          :version => "3.1",
   6          :checksum => "297dbd014f3688b6d57329eb2988cb906fbdb1fadea33768d4584f9cbf090794"
   7        } 
   8      }) 

Die Wordpress Installation wird nun noch um das wundervolle Wordpress Plugin JSON-Api und das freie Wordpress Theme Paragram erweitert. Dazu wird unser Wordpress Cookbook einfach um den jeweiligen Code erweitert.

Das lässt sich sehr einfach mit den remote_file und execute Chef Ressourcen bewerkstelligen

   1  
   2  remote_file "#{Chef::Config[:file_cache_path]}/json-api.1.0.7.zip" do
   3    source "http://downloads.wordpress.org/plugin/json-api.1.0.7.zip"
   4    mode "0644"
   5  end  
   6  
   7  execute "unzip-json-api" do
   8    cwd File.join(node[:wordpress][:dir],"wp-content/plugins")
   9    command "unzip #{Chef::Config[:file_cache_path]}/json-api.1.0.7.zip"
  10    creates "#{node[:wordpress][:dir]}/wp-content/plugins/json-api/readme.txt"
  11  end

Damit machen wir einen Download des Plugins und des Themes und entpacken es in das Wordpress Verzeichnis.

   1  $ vagrant up

Wenn man nun die Seite http://wordpress.smackaho.st:4567/wp-admin/install.php besucht kann man wie gewohnt die Einstellungen vornehmen.
In diesem Fall möchten wir aber diesen Teil überspringen und werden automatisch ein Setup ausführen:

   1  ruby setup_wordpress.rb

im Verzeichnis der Demonstration einfach ruby setup_wordpress.rb eingeben. Damit werden die notwendigen Einstellungen für diese Demonstration ausgeführt. Dieses Script verwendet Mechanize um in einer Web-Session die HTTP Aufrufe, die man normalerweise über einen Browser macht, auszuführen.
Es wird zuerst ein Login gemacht, dann Kategorien hinzugefügt, Plugins aktiviert und Plugin Einstellungen gesetzt.

Im Anschluss daran verwenden wir die JSON API. Auf der Ruby Seite verwenden wir das Gem Restclient um die JSON Payload zu erzeugen.

   1  ruby importer.rb

Zuerst erzeugen wir einen einfachen Eintrag mit einem Bild als Attachment. Dann fragen wir über die API von Tumblr unsere Tumblr Postings ab und erzeugen in einer Schleife die Aufrufe über die JSON API. Dann folgt noch ein Beispiel mit der Facebook Graph API. In einer Schleife arbeiten wir die Postings einer Facebook Page ab, und erzeugen eine dem Posting Typ entsprechende JSON Payload (Wobei wir hier auch Postings des Typs Photo bearbeiten und das verknüpfte Photo als Attachement erzeugen).

blog comments powered by Disqus

related Articles:

Deployment of Java Web Applications with Chef from 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-25 bis 2011-05-01

Diese Woche Links zu den Themen op, oschef, opscode, LWRP, Noah, chef, devops, opschef, rails, gem, railscast, Chef

Links der Woche vom 2011-04-18 bis 2011-04-24

Diese Woche Links zu den Themen rails, gem, opscode, git, ec2, gluster

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

Data Driven Deployment of a Java Web Application with Chef Solo

Chef Application Cookbook Showcase This Vagrant project on github ( https://github.com/iteh/vagrant-demos/ ) showcases the application cookbook for chef

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