kameleon-builder 2.0.0.dev → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0da2c2ced91eb366f1c84e507b387531e6a71036
4
+ data.tar.gz: bb947d9be606eca0d2f5dc4e38d31fa985b7b866
5
+ SHA512:
6
+ metadata.gz: affe277bd4a073060f4e3f26a41df509f31a41d92e58e1bc6dfa1e068d619be240a52a426139c0165c507081a07fd2f0971218b97afd7a202f6407849d291772
7
+ data.tar.gz: 2d4dd5d871d9a7d9f3d64a991adae10fe04e47388a98b491b6fb7cdfb015dbe5b180b60350dd45501dc86c1dc7fa0b9d915ce7055f867b615ceb91afe00f9309
data/README.rst ADDED
@@ -0,0 +1,95 @@
1
+ Kameleon appliance builder
2
+ ==========================
3
+
4
+ Kameleon should be seen as a simple but powerful tool to generate customized
5
+ appliances. With Kameleon, you make your recipe that describes how to create
6
+ step by step your own distribution. At start Kameleon is used to create custom
7
+ kvm, LXC, VirtualBox, iso images, ..., but as it is designed to be very generic
8
+ you can probably do a lot more than that.
9
+
10
+ ------------
11
+ Installation
12
+ ------------
13
+
14
+ To install the latest release from `RubyGems`_:
15
+
16
+ .. _RubyGems: https://rubygems.org/gems/kameleon-builder
17
+
18
+ ::
19
+
20
+ gem install kameleon-builder --pre
21
+
22
+ Or from source:
23
+
24
+ ::
25
+
26
+ git clone https://github.com/oar-team/kameleon.git
27
+ cd kameleon
28
+ gem build kameleon-builder.gemspec
29
+ gem install kameleon-builder-<version>.gem
30
+
31
+
32
+ -----
33
+ Usage
34
+ -----
35
+
36
+ Just type
37
+
38
+ ::
39
+
40
+ kameleon
41
+
42
+ ...to see the cli help :
43
+
44
+ ::
45
+
46
+ Commands:
47
+ kameleon build [RECIPE_NAME] # Builds the appliance from the recipe
48
+ kameleon checkpoints [RECIPE_NAME] # Lists all availables checkpoints
49
+ kameleon clear [RECIPE_NAME] # Cleaning out context and removing all checkpoints
50
+ kameleon help [COMMAND] # Describe available commands or one specific command
51
+ kameleon new [RECIPE_NAME] -t, --template=TEMPLATE # Creates a new recipe
52
+ kameleon templates # Lists all defined templates
53
+ kameleon version # Prints the Kameleon's version information
54
+
55
+ Options:
56
+ [--no-color] # Disable colorization in output
57
+ [--debug] # Enable debug output
58
+ -w, [--workspace=WORKSPACE] # Change the kameleon current work directory. (The folder containing your
59
+ # recipes folder). Default : ./
60
+
61
+ First, you should select a template. To see the available templates use:
62
+
63
+ ::
64
+
65
+ kameleon templates
66
+
67
+ Then, create a new recipe from the template you've just choose. This will
68
+ create a `recipes` folder in the current directory. (use `-w` option to set a
69
+ different workspace).
70
+
71
+ ::
72
+
73
+ kameleon new my_test_recipe -t template_name
74
+
75
+ Then build your new recipe with the build command:
76
+
77
+ ::
78
+
79
+ kameleon build my_test_recipe
80
+
81
+ A `builds` directory was created and contains your new image!
82
+
83
+ To go further, it is highly recommended you start with the :doc:`getting_started`
84
+ guide.
85
+
86
+ ------------
87
+ Contributing
88
+ ------------
89
+
90
+
91
+ 1. Fork it
92
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
93
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
94
+ 4. Push to the branch (`git push origin my-new-feature`)
95
+ 5. Create new Pull Request
data/Vagrantfile CHANGED
@@ -1,15 +1,14 @@
1
1
  # -*- mode: ruby -*-
2
2
  # vi: set ft=ruby :
3
3
 
4
- ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt'
5
4
 
6
5
  Vagrant.configure("2") do |config|
7
6
  config.vm.box = "debian7-dev"
8
- config.vm.box_url = "http://cdn.quicker.fr/vagrant/libvirt/debian7-dev.box"
7
+ config.vm.box_url = "http://cdn.quicker.fr/vagrant/virtualbox/debian7-dev.box"
9
8
  config.vm.hostname = "kameleon-devel"
10
9
 
11
10
  # Config provider
12
- config.vm.provider :libvirt do |vm|
11
+ config.vm.provider :virtualbox do |vm|
13
12
  vm.memory = 2024
14
13
  vm.cpus = 2
15
14
  end
data/docs/source/conf.py CHANGED
@@ -50,9 +50,11 @@ copyright = u'%s, Inria.fr' % datetime.datetime.now().year
50
50
  # built documents.
51
51
  #
52
52
  # The short X.Y version.
53
- version = '2.0.0b1'
54
- # The full version, including alpha/beta/rc tags.
55
- release = '2.0.0b1'
53
+ with open(os.path.join(os.path.dirname(__file__), '..', '..',
54
+ 'version.txt')) as init_py:
55
+ release = init_py.read().strip()
56
+ # The short X.Y version.
57
+ version = release.rstrip('.dev')
56
58
 
57
59
  # The language for content autogenerated by Sphinx. Refer to documentation
58
60
  # for a list of supported languages.
data/docs/source/faq.rst CHANGED
@@ -1,3 +1,5 @@
1
1
  ---
2
2
  FAQ
3
3
  ---
4
+
5
+ Work in progress...
@@ -1,3 +1,6 @@
1
1
  ---------------
2
2
  Getting Started
3
3
  ---------------
4
+
5
+
6
+ Work in progress...
@@ -6,6 +6,14 @@
6
6
  Welcome to Kameleon's documentation!
7
7
  ====================================
8
8
 
9
+
10
+ .. note::
11
+ This documentation is currently being written...
12
+
13
+ -----
14
+ About
15
+ -----
16
+
9
17
  Kameleon should be seen as a simple but powerful tool to generate customized
10
18
  appliances. With Kameleon, you make your recipe that describes how to create
11
19
  step by step your own distribution. At start Kameleon is used to create custom
@@ -13,13 +21,16 @@ kvm, LXC, VirtualBox, iso images, ..., but as it is designed to be very generic
13
21
  you can probably do a lot more than that.
14
22
 
15
23
 
24
+ ------------------
25
+ User Documentation
26
+ ------------------
27
+
28
+
16
29
  .. toctree::
17
30
  :maxdepth: 2
18
31
 
19
- why.rst
20
32
  installation.rst
21
33
  getting_started.rst
22
- cli.rst
23
34
  recipe.rst
24
35
  context.rst
25
36
  commands.rst
@@ -28,7 +39,6 @@ you can probably do a lot more than that.
28
39
  aliases.rst
29
40
  faq.rst
30
41
 
31
-
32
42
  Indices and tables
33
43
  ==================
34
44
 
@@ -1,3 +1,21 @@
1
1
  ------------
2
2
  Installation
3
3
  ------------
4
+
5
+
6
+ To install the latest release from `RubyGems`_:
7
+
8
+ .. _RubyGems: https://rubygems.org/gems/kameleon-builder
9
+
10
+ ::
11
+
12
+ gem install kameleon-builder --pre
13
+
14
+ Or from source:
15
+
16
+ ::
17
+
18
+ git clone https://github.com/oar-team/kameleon.git
19
+ cd kameleon
20
+ gem build kameleon-builder.gemspec
21
+ gem install kameleon-builder-<version>.gem
@@ -34,31 +34,31 @@ This is an example of a recipe:
34
34
  rootfs: $$kameleon_cwd/rootfs
35
35
  user_name: kameleon
36
36
  arch: amd64
37
-
37
+
38
38
  nbd_device: /dev/nbd10
39
39
  container: "$${kameleon_recipe_name}_temp.qcow2"
40
-
40
+
41
41
  distrib: debian
42
42
  release: wheezy
43
-
43
+
44
44
  ## System variables. Required by kameleon engine
45
45
  # Include specific steps
46
46
  include_steps: [$$distrib/$$release, $$distrib]
47
-
47
+
48
48
  # Shell session from where we launch exec_out commands. There is often a
49
49
  # local bash session, but it can be a remote shell on other machines or on
50
50
  # any shell. (eg. bash, chroot, fakechroot, ssh, tmux, lxc...)
51
51
  out_context:
52
52
  cmd: bash
53
53
  workdir: $$kameleon_cwd
54
-
54
+
55
55
  # Shell session that allows us to connect to the building machine in order to
56
56
  # configure it and setup additional programs
57
57
  default_env: "USER=root HOME=/root LC_ALL=POSIX"
58
58
  in_context:
59
59
  cmd: $$default_env chroot $$rootfs bash
60
60
  workdir: /
61
-
61
+
62
62
  #== Bootstrap the new system and create the 'in_context'
63
63
  bootstrap:
64
64
  - debootstrap:
@@ -73,8 +73,8 @@ This is an example of a recipe:
73
73
  - rootfs_archive: $$cachedir/$$distrib/$$release/$$arch/debootstrap.tar.gz
74
74
  - start_chroot:
75
75
  - rootfs: $$rootfs
76
-
77
-
76
+
77
+
78
78
  #== Install and configuration steps
79
79
  # WARNING: this part should be independante from the build context (whenever
80
80
  # possible...)
@@ -98,7 +98,7 @@ This is an example of a recipe:
98
98
  - name: $$user_name
99
99
  - group: admin
100
100
  - password: $$user_name
101
-
101
+
102
102
  #== Export the generated appliance in the format of your choice
103
103
  export:
104
104
  - save_appliance_from_nbd:
@@ -167,8 +167,7 @@ module Kameleon
167
167
  end
168
168
 
169
169
  def fork_and_wait
170
- process, = fork("inherit")
171
- process.wait
170
+ system(@shell_cmd)
172
171
  end
173
172
 
174
173
  protected
@@ -1,3 +1,4 @@
1
1
  module Kameleon
2
- VERSION = "2.0.0.dev" unless defined?(::Kameleon::VERSION)
2
+ VERSION = File.read(
3
+ File.expand_path("../../../version.txt", __FILE__)).chomp
3
4
  end
data/version.txt ADDED
@@ -0,0 +1 @@
1
+ 2.0.0
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kameleon-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.dev
5
- prerelease: 6
4
+ version: 2.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Salem Harrache
@@ -12,12 +11,11 @@ authors:
12
11
  autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2014-02-14 00:00:00.000000000 Z
14
+ date: 2014-02-17 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: childprocess
19
18
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
19
  requirements:
22
20
  - - ~>
23
21
  - !ruby/object:Gem::Version
@@ -25,7 +23,6 @@ dependencies:
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
27
  - - ~>
31
28
  - !ruby/object:Gem::Version
@@ -33,7 +30,6 @@ dependencies:
33
30
  - !ruby/object:Gem::Dependency
34
31
  name: thor
35
32
  requirement: !ruby/object:Gem::Requirement
36
- none: false
37
33
  requirements:
38
34
  - - ~>
39
35
  - !ruby/object:Gem::Version
@@ -41,7 +37,6 @@ dependencies:
41
37
  type: :runtime
42
38
  prerelease: false
43
39
  version_requirements: !ruby/object:Gem::Requirement
44
- none: false
45
40
  requirements:
46
41
  - - ~>
47
42
  - !ruby/object:Gem::Version
@@ -49,7 +44,6 @@ dependencies:
49
44
  - !ruby/object:Gem::Dependency
50
45
  name: table_print
51
46
  requirement: !ruby/object:Gem::Requirement
52
- none: false
53
47
  requirements:
54
48
  - - ~>
55
49
  - !ruby/object:Gem::Version
@@ -57,7 +51,6 @@ dependencies:
57
51
  type: :runtime
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
- none: false
61
54
  requirements:
62
55
  - - ~>
63
56
  - !ruby/object:Gem::Version
@@ -65,7 +58,6 @@ dependencies:
65
58
  - !ruby/object:Gem::Dependency
66
59
  name: log4r-color
67
60
  requirement: !ruby/object:Gem::Requirement
68
- none: false
69
61
  requirements:
70
62
  - - ~>
71
63
  - !ruby/object:Gem::Version
@@ -73,7 +65,6 @@ dependencies:
73
65
  type: :runtime
74
66
  prerelease: false
75
67
  version_requirements: !ruby/object:Gem::Requirement
76
- none: false
77
68
  requirements:
78
69
  - - ~>
79
70
  - !ruby/object:Gem::Version
@@ -81,7 +72,6 @@ dependencies:
81
72
  - !ruby/object:Gem::Dependency
82
73
  name: pry
83
74
  requirement: !ruby/object:Gem::Requirement
84
- none: false
85
75
  requirements:
86
76
  - - ~>
87
77
  - !ruby/object:Gem::Version
@@ -89,7 +79,6 @@ dependencies:
89
79
  type: :development
90
80
  prerelease: false
91
81
  version_requirements: !ruby/object:Gem::Requirement
92
- none: false
93
82
  requirements:
94
83
  - - ~>
95
84
  - !ruby/object:Gem::Version
@@ -97,7 +86,6 @@ dependencies:
97
86
  - !ruby/object:Gem::Dependency
98
87
  name: pry-debugger
99
88
  requirement: !ruby/object:Gem::Requirement
100
- none: false
101
89
  requirements:
102
90
  - - ~>
103
91
  - !ruby/object:Gem::Version
@@ -105,7 +93,6 @@ dependencies:
105
93
  type: :development
106
94
  prerelease: false
107
95
  version_requirements: !ruby/object:Gem::Requirement
108
- none: false
109
96
  requirements:
110
97
  - - ~>
111
98
  - !ruby/object:Gem::Version
@@ -113,7 +100,6 @@ dependencies:
113
100
  - !ruby/object:Gem::Dependency
114
101
  name: rake
115
102
  requirement: !ruby/object:Gem::Requirement
116
- none: false
117
103
  requirements:
118
104
  - - ~>
119
105
  - !ruby/object:Gem::Version
@@ -121,7 +107,6 @@ dependencies:
121
107
  type: :development
122
108
  prerelease: false
123
109
  version_requirements: !ruby/object:Gem::Requirement
124
- none: false
125
110
  requirements:
126
111
  - - ~>
127
112
  - !ruby/object:Gem::Version
@@ -129,7 +114,6 @@ dependencies:
129
114
  - !ruby/object:Gem::Dependency
130
115
  name: minitest
131
116
  requirement: !ruby/object:Gem::Requirement
132
- none: false
133
117
  requirements:
134
118
  - - ~>
135
119
  - !ruby/object:Gem::Version
@@ -137,7 +121,6 @@ dependencies:
137
121
  type: :development
138
122
  prerelease: false
139
123
  version_requirements: !ruby/object:Gem::Requirement
140
- none: false
141
124
  requirements:
142
125
  - - ~>
143
126
  - !ruby/object:Gem::Version
@@ -145,7 +128,6 @@ dependencies:
145
128
  - !ruby/object:Gem::Dependency
146
129
  name: coveralls
147
130
  requirement: !ruby/object:Gem::Requirement
148
- none: false
149
131
  requirements:
150
132
  - - ~>
151
133
  - !ruby/object:Gem::Version
@@ -153,7 +135,6 @@ dependencies:
153
135
  type: :development
154
136
  prerelease: false
155
137
  version_requirements: !ruby/object:Gem::Requirement
156
- none: false
157
138
  requirements:
158
139
  - - ~>
159
140
  - !ruby/object:Gem::Version
@@ -173,10 +154,9 @@ files:
173
154
  - .env
174
155
  - .gitignore
175
156
  - AUTHORS
176
- - CHANGELOG
177
157
  - COPYING
178
158
  - Gemfile
179
- - README.md
159
+ - README.rst
180
160
  - Rakefile
181
161
  - Vagrantfile
182
162
  - bin/kameleon
@@ -205,7 +185,6 @@ files:
205
185
  - docs/source/_static/.gitignore
206
186
  - docs/source/aliases.rst
207
187
  - docs/source/checkpoint.rst
208
- - docs/source/cli.rst
209
188
  - docs/source/commands.rst
210
189
  - docs/source/conf.py
211
190
  - docs/source/context.rst
@@ -214,7 +193,6 @@ files:
214
193
  - docs/source/index.rst
215
194
  - docs/source/installation.rst
216
195
  - docs/source/recipe.rst
217
- - docs/source/why.rst
218
196
  - docs/source/workspace.rst
219
197
  - kameleon-builder.gemspec
220
198
  - lib/kameleon.rb
@@ -263,30 +241,30 @@ files:
263
241
  - tests/test_context.rb
264
242
  - tests/test_recipe.rb
265
243
  - tests/test_version.rb
244
+ - version.txt
266
245
  homepage: http://kameleon.readthedocs.org/
267
246
  licenses:
268
247
  - GPL-2
248
+ metadata: {}
269
249
  post_install_message:
270
250
  rdoc_options: []
271
251
  require_paths:
272
252
  - lib
273
253
  required_ruby_version: !ruby/object:Gem::Requirement
274
- none: false
275
254
  requirements:
276
- - - ! '>='
255
+ - - '>='
277
256
  - !ruby/object:Gem::Version
278
257
  version: '0'
279
258
  required_rubygems_version: !ruby/object:Gem::Requirement
280
- none: false
281
259
  requirements:
282
- - - ! '>'
260
+ - - '>='
283
261
  - !ruby/object:Gem::Version
284
- version: 1.3.1
262
+ version: '0'
285
263
  requirements: []
286
264
  rubyforge_project:
287
- rubygems_version: 1.8.22
265
+ rubygems_version: 2.1.11
288
266
  signing_key:
289
- specification_version: 3
267
+ specification_version: 4
290
268
  summary: Kameleon is a tool to build virtual machines from scratch
291
269
  test_files:
292
270
  - tests/helper.rb
data/CHANGELOG DELETED
@@ -1,36 +0,0 @@
1
- KAMELEON CHANGELOG
2
- ==================
3
-
4
- 1.2.9: (unreleased)
5
- ------
6
- - debian/system_config: the keyboard layout is now defined by the one used on
7
- the build system.
8
-
9
- 1.2.8:
10
- ------
11
- - Closes the bash session and wait 1 second before starting the cleaning
12
- script even if not interrupted.
13
- - Some modifications in the kameleon appliance recipe.
14
-
15
- 1.2.7:
16
- ------
17
- - Add a new step 'build_appliance_kpartx' for build appliance that use kpartx
18
- instead of kvm-nbd (speed up the copy)
19
- - 'build_appliance_kpartx': the rsync *never* copy /proc
20
- - Add a new step 'chroot_in_tmpfs' to put the chroot in tmpfs at the beginning
21
- - Fix a bug in the path searching for the recipes/steps
22
- - Closes the bash session and wait 1 second before starting the cleaning script.
23
-
24
- 1.2.6:
25
- ------
26
- - Add the possibility to include steps/recipes path with the option '-i'
27
- - "checkpoint_resume" copy the resolv.conf
28
-
29
- 1.2.4:
30
- ------
31
- - Remove the rubygem dependency (the package ruby-session exist now in debian)
32
-
33
- 1.2.2:
34
- ------
35
- - Now support contexts (see example into debian.yaml recipe)
36
- - New "exec_on_clean" microstep command to ease cleaning (reverse order execution)
data/README.md DELETED
@@ -1,53 +0,0 @@
1
- # Kameleon
2
-
3
- Kameleon should be seen as a simple but powerful tool to generate customized
4
- appliances. With Kameleon, you make your recipe that describes how to create
5
- step by step your own distribution. At start Kameleon is used to create custom
6
- kvm, LXC, VirtualBox, iso images, ..., but as it is designed to be very
7
- generic you can probably do a lot more than that.
8
-
9
- ## Installation
10
- Simply install it from the Gem repository (not working yet):
11
-
12
- gem install kameleon
13
-
14
- Or from source:
15
-
16
- git clone git://scm.gforge.inria.fr/kameleon/kameleon.git
17
- cd kameleon
18
- gem build kameleon.gemspec
19
- gem install kameleon-<version>.gem
20
-
21
- ## Usage
22
-
23
- Just type:
24
-
25
- kameleon
26
-
27
- ## Quick start
28
-
29
- First, you should select a template. To see the available templates use:
30
-
31
- kameleon templates
32
-
33
- Then, create a new recipe from the template you've just choose. This will
34
- create a `recipes` folder in the current directory. (use `-w` option to set a
35
- different workspace).
36
-
37
- kameleon new my_test_recipe -t template_name
38
-
39
- Then build your new recipe with the build command:
40
-
41
- kameleon build my_test_recipe
42
-
43
- A `builds` directory was created and contains your new image!
44
-
45
- To go further, get more documentation in the docs folder.
46
-
47
- ## Contributing
48
-
49
- 1. Fork it
50
- 2. Create your feature branch (`git checkout -b my-new-feature`)
51
- 3. Commit your changes (`git commit -am 'Add some feature'`)
52
- 4. Push to the branch (`git push origin my-new-feature`)
53
- 5. Create new Pull Request
data/docs/source/cli.rst DELETED
@@ -1,3 +0,0 @@
1
- ----------------------
2
- Command-line interface
3
- ----------------------
data/docs/source/why.rst DELETED
@@ -1,3 +0,0 @@
1
- --------------
2
- Why Kameleon ?
3
- --------------