Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 70 lines (60 sloc) 2.701 kb
3a7ddac Inital check-in
Dominic Maraglia authored
1 # origami #
2 A templating engine which complements veewee.
f4bec97 @djm68 Initial commit
djm68 authored
3
3a7ddac Inital check-in
Dominic Maraglia authored
4 ## Introduction ##
5 [veewee](http://github.com/jedi4ever/veewee) makes building virtual machines easy but origami takes a step further and makes the process even easier,
6 especially for those who wish to quickly deploy numbers of VMs that are configured differently.
7 Without origami a typical workflow of a veewee user would be
8
9 1. Choose a template to work with.
10 2. `veewee define my-CentOS-6.2-server CentOS-6.2-i386-netboot`
11 3. Modify `definition.rb` and `ks.cfg`
12 4. `veewee build box-name`.
13
14 By introducing origami it becomes
15
16 1. `origami --name CentOS-6.2-i386-server`
17 2. `veewee build CentOS-6.2-i386-server`
18
19 Thus origami lets you bypass the editing of templates and initiate building a virtual machine immediately.
20 Also, [a wrapper for origami and veewee](http://github.com/akumano/seisan-line) is available!
21
22 ## Configuration ##
23 Managing veewee definitions is cumbersome because it requires you to create a configuration (i.e. `definition.rb` and `ks.cfg`) on a per-distro basis.
24 On the other hand, origami maintains configurations on a per-option basis.
25 The power of this approach is immense when you need to maintain a long list of VMs.
26 For example, if you want to change what packages are installed on your `Oracle-5.8-i386-server`,
27 you go to a corresponding yaml file, `pkgs.yml`, which might look like:
28
29 # pkgs.yml
30 ---
31 Oracle:
32 '5.8':
33 server:
34 - openssh-server
35 desktop:
36 - openssh-server
37 - ruby
38 '6':
39 typeA:
40 - openssh-server
41 - git
42 typeB:
43 - openssh-server
44 - git
45 - ruby
46 CentOS:
47 '6': ...
48 .
49 .
50 Ubuntu:
51 '10': ...
52 .
53 .
54 .
55 SLES:
56 '11': ...
57
58 and change the corresponding value in the yaml hash.
59 Once you edit all yaml files (which may include `boot_cmd_sequence.yml`, `kickstart_file`, and so on),
60 you have a whole ensemble of different flavors of distros that you can start building just from their names.
61 I said 'all' in the previous sentence, but the number of yaml files can be small or large,
62 depending on your needs.
63 You need to create a yaml file for a parameter only if the parameter needs to be varied, and the others, which are fixed for any kind of VM,
64 are specified in a master template. The end result is instead of having an ever-growing number of definitions in your `veewee/definitions` directory,
65 you just have a fixed number of yaml files to configure installation parameters.
66
67 ### How To ###
68 origami was written for [seisan-line](http://github.com/akumano/seisan-line).
69 The documentation for seisan-line includes how to use origami.
Something went wrong with that request. Please try again.