Date post: | 29-Jun-2015 |
Category: |
Technology |
Upload: | robotninja |
View: | 228 times |
Download: | 0 times |
Installing Islandora!
with Vagrant!and Chef
NOT SHOWN:!
• XML config files!
• OS-level configuration!
• Undocumented tweaks!
• Warlocks!
• Possibly spiders
Did you install things in the wrong order?!
Did you forget to configure something?!
Did you install an incorrect version?!
Did you follow the wrong documentation?
Did you miss a step?
Did something not work as described?
Start
Did you install things in the wrong order?!
Did you forget to configure something?!
Did you install an incorrect version?!
Did you follow the wrong documentation?
Did you miss a step?
Did something not work as described?
Start Over
FML
NO
YES
NO
NO
NO
NO
YES
YES
YES
YES
YES
ISLANDORA!!
!
!
!
F*!%ING SUCKS!
ISLANDORA!!
!
!
!
F*!%ING SUCKS!to install
ISLANDORA!is actually pretty okay!
!
!
but the rest of the stack!
F*!%ING SUCKS!to install
Why?
• Lots of interdependencies!
• Code is changing rapidly!
• Documentation is hard to update
Why?
A. Synchronizationbetween documentation & code!
B. Reproducibility of installation and configuration
Chef is a configuration management tool used to streamline the task of maintaining an organization's servers and to automatically provision and configure new machines.
Chef Recipes• A series of modular, ordered
steps required to install or configure something e.g.!
1. install Tomcat!2. install Fedora!3. install GSearch
…
• Sharable & reproducible
Desktop Server
Desktop
Chef Recipe !1. Install Tomcat 2. Install Fedora 3. Install GSearch
…
reads
Server
Desktop
Chef Recipe !1. Install Tomcat 2. Install Fedora 3. Install GSearch
…
reads
applies
!Server!
Tomcat !!!!
…GSearch
Fedora
Desktop
Chef Recipe !1. Install Tomcat 2. Install Fedora 3. Install GSearch
…
reads
applies
!Server #1!
!Server #2!
applies
Tomcat !!!!
…GSearch
Fedora
Tomcat !!!!
…GSearch
Fedora
Chef recipes become comprehensive, up-to-date, actionable, active documentation of how to install and configure an Islandora instance.!!
Recipes are shared and maintained by the community (eg. Drupal, Tomcat, Fedora, etc)
So Far, So Good
A. Synchronization ✓ between documentation & code!
B. Reproducibility of installation and configuration
Vagrant is a tool for creating and configuring virtual environments.!!
It can be considered a wrapper around virtualization software such as VirtualBox and configuration management software such as Chef.
Vagrant
• Easily reproduce temporary, disposable environments for development and testing.!!
• Guarantee development and production environments are as close to identical as possible.
Desktop
Desktop
readsVagrant Config !1. VirtualBox VM 2. Ubuntu 12.04 3. 4GB RAM
…
Desktop VirtualBox VM!!!!!
createsreadsVagrant Config !1. VirtualBox VM 2. Ubuntu 12.04 3. 4GB RAM
…
Desktop
Chef Recipe !1. Install Tomcat 2. Install Fedora 3. Install GSearch
…
reads
readsVagrant Config !1. VirtualBox VM 2. Ubuntu 12.04 3. 4GB RAM
…
VirtualBox VM!!!!!
creates
VirtualBox VM!!!!!
Desktop
Tomcat !!!!
…GSearch
Fedora
applies
readsVagrant Config !1. VirtualBox VM 2. Ubuntu 12.04 3. 4GB RAM
…
creates
Chef Recipe !1. Install Tomcat 2. Install Fedora 3. Install GSearch
…
reads
VirtualBox VM!!!!!
creates
Desktop
Server
readsVagrant Config !1. VirtualBox VM 2. Ubuntu 12.04 3. 4GB RAM
…
Chef Recipe !1. Install Tomcat 2. Install Fedora 3. Install GSearch
…
reads
Tomcat !!!!
…GSearch
Fedora
applies
VirtualBox VM!(Development)!
!!!!
creates
Desktop
Server!(Production)!
Tomcat !!!!
…GSearch
Fedora
applies
readsVagrant Config !1. VirtualBox VM 2. Ubuntu 12.04 3. 4GB RAM
…
Chef Recipe !1. Install Tomcat 2. Install Fedora 3. Install GSearch
…
reads
Tomcat !!!!
…GSearch
Fedora
applies
Bugs on production are easier to reproduce in development.!!
New features in development are easier to test with the same configuration as production.!!
Vagrant environments become easily reproducible and replaceable. Even production.
Success!
A. Synchronization ✓ between documentation & code!
B. Reproducibility ✓ of installation and configuration
Want to Know More?• Cooking with Chef: Automated
Deployment of Web Apps in a Library Context (Access 2012)https://www.youtube.com/watch?v=eTNBmy4ZznA!
• Islandora Chef Repositoryhttps://github.com/ryersonlibrary/islandora
Thanks