Im Posting Vagrant: Sind Sie bereit Ihren Umgang mit IT Infrastruktur zu revolutionieren? haben wir die Installation von Vagrant kennengelernt und einen Apache Webserver installiert. Nun wollen wir eine Virtuelle Machine vorbereiten mit der man Wordpress Seiten ausprobieren bzw. entwickeln kann.

Der Focus liegt nun auf Chef bzw. Chef-Solo von Opscode. Es gibt bereits eine Menge an sogenannten Kochrezepten für die Installation von Infrastruktur Komponenten. Für einen funktionierenden Wordpress Blog benötigen wir Apache2, PHP5 und Mysql.

Diese Rezepte müssen wir in den cookbooks Ordner legen. Weiters benötigen wir noch das Rezept für Wordpress. Eine Beschreibung für das Wordpress Rezept kann man hier finden .

Unser cookbooks Ordner schaut nun also so aus:

   1  
   2  drwxr-xr-x  10 ehaselwanter  ehaselwanter  340  6 Dez 21:24 apache2
   3  drwxr-xr-x   7 ehaselwanter  ehaselwanter  238  7 Dez 09:50 apt
   4  drwxr-xr-x  11 ehaselwanter  ehaselwanter  374  6 Dez 21:24 mysql
   5  drwxr-xr-x   7 ehaselwanter  ehaselwanter  238  6 Dez 21:25 openssl
   6  drwxr-xr-x   8 ehaselwanter  ehaselwanter  272  6 Dez 21:25 php
   7  drwxr-xr-x   8 ehaselwanter  ehaselwanter  272  6 Dez 21:24 wordpress
   8  drwxr-xr-x   3 ehaselwanter  ehaselwanter  102  6 Dez 21:20 wordpress_demo
   9  

Wobei apt für die Aktualisierung von apt-get zuständig ist und openssl eine Abhängigkeit der verwendeten Rezepte darstellt

Nun benötigen wir noch ein Rezept, um Wordpress zu installieren:

   1  
   2  # wordpress_demo cookbook
   3  # This cookbook includes and sets up a server with wordpress
   4  #
   5  require_recipe "wordpress"
   6  

Wie versprochen, genau eine Zeile Code :-)

Damit das Ganze funktioniert müssen wir Chef Solo und Vagrant noch ein wenig Konfiguration mit auf den Weg geben:

   1  
   2  Vagrant::Config.run do |config|
   3    # All Vagrant configuration is done here. For a detailed explanation
   4    # and listing of configuration options, please view the documentation
   5    # online.
   6  
   7    # Every Vagrant virtual environment requires a box to build off of.
   8    config.vm.box = "base"                 
   9  
  10    # Forward guest port 80 to host port 4567 and name the mapping "web"
  11    config.vm.forward_port("web", 80, 4567)   
  12    
  13    # This path will be expanded relative to the project directory
  14    config.chef.cookbooks_path = "cookbooks"
  15    # ensure the latest packages
  16    config.chef.add_recipe("apt") 
  17    
  18    #this recipe we want to run
  19    config.chef.add_recipe("wordpress_demo") 
  20    
  21    # just set a password for now
  22    config.chef.json.merge!({
  23        :mysql => {
  24          :server_debian_password => "secure_password",
  25          :server_root_password => "secure_password",
  26          :server_repl_password => "secure_password"
  27        }
  28      })
  29    
  30    # we use chef-solo to provision stuff
  31    config.vm.provisioner = :chef_solo
  32  end
  33  

Und los geht es.

Ein vagrant up im Projekt Verzeichnis erzeugt eine neue Virtuelle Maschine basierend auf unsere Base Box lucid32. Danach werden alle Abhängigkeiten von Wordpress und Wordpress selbst installiert.

Sobald das Kommando fertig durchgelaufen ist kann man die Installation unter

   1  
   2  http://localhost:4567/wordpress/wp-admin/install.php
   3  

bewundern.

Wordpress Installation

Und wieder zum Selbst ausprobieren:

   1  
   2  git://github.com/iteh/vagrant-demos.git
   3  cd vagrant-demos/vagrant-wordpress
   4  vagrant up
   5  

und ein wenig warten :-)

blog comments powered by Disqus

Weitere Artikel die Sie interessieren könnten:

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

Data Driven Deployment einer Java Web Application mit Chef Solo

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

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...

Vagrant: Sind Sie bereit Ihren Umgang mit IT Infrastruktur zu revolutionieren?

Vargant ist ein Tool für das Erstellen und Verbreiten von virtualisierten Entwicklungsumgebungen. Vagrant baut hier auf Ruby auf und ermöglicht es, ausgehend von einer Basis Installation, automatisiert spezielle Entwicklungsumgebungen aufzubauen....

Links der Woche vom 2010-11-15 bis 2010-11-21

Diese Woche Links zu den Themen viapackratius, Rails3, Dragonfly, NoSQL, SQL, i, ruby, Rails, fb, vagrant, rubyonrails, graz, opscode, radiant

Links der Woche vom 2010-11-08 bis 2010-11-14

Diese Woche Links zu den Themen viapackratius, Vagrant, i, Amazon