dev-lxc 2.6.1 → 2.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,279 +1,287 @@
1
-
2
- ## dev-lxc
3
-
4
- dev-lxc builds and manages clusters of LXC containers and includes the ability to install and configure Chef products.
5
-
6
- Cluster management includes the ability to manage snapshots of the containers which makes dev-lxc well suited as a tool for support related work, customized cluster builds for demo purposes, as well as general experimentation and exploration.
7
-
8
- ### Features
9
-
10
- 1. LXC Containers - Resource efficient servers with fast start/stop times and standard init
11
- 2. Btrfs - Efficient, persistent storage backend provides fast, lightweight container snapshots
12
- 3. Dnsmasq - DHCP networking and DNS resolution
13
- 4. Base Containers - Containers that are built to resemble a traditional server
14
- 5. ruby-lxc - Ruby bindings for liblxc
15
- 6. YAML - Simple, flexible definition of clusters
16
- 7. Build process closely follows online installation documentation
17
- 8. Snapshots - Snapshots are created during the cluster's build process which makes rebuilding
18
- a cluster very fast.
19
- 9. mixlib-install library - Automatically manages a cache of Chef products
20
-
21
- Its containers, standard init, networking and build process are designed to be similar
22
- to what you would build if you follow the online installation documentation so the end
23
- result is a cluster that is relatively similar to a more traditionally built cluster.
24
-
25
- The Btrfs backed snapshots provide a quick clean slate which is helpful especially for
26
- experimenting and troubleshooting. Or it can be used to build a customized cluster
27
- for demo purposes and be able to bring it up quickly and reliably.
28
-
29
- If you aren't familiar with using containers you might be interested in this introduction.
30
-
31
- [LXC 1.0 Introduction](https://www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series/)
32
-
33
- Additional dev-lxc related documentation can be found in the [docs folder](docs) in this repository.
34
-
35
- ## Build dev-lxc-platform instance
36
-
37
- The dev-lxc tool is used in a system that has been configured by the dev-lxc-platform cookbook.
38
-
39
- The easiest way to build a dev-lxc-platform system is to download the dev-lxc-platform repository
40
- and use Test Kitchen to build a VirtualBox Vagrant instance or an AWS EC2 instance.
41
-
42
- Follow the instructions in the [dev-lxc-platform README](https://github.com/jeremiahsnapp/dev-lxc-platform) to build
43
- a dev-lxc-platform instance.
44
-
45
- ## Login to the dev-lxc-platform instance
46
-
47
- Login to the dev-lxc-platform instance and switch to the root user to use the dev-lxc tool.
48
-
49
- ```
50
- cd dev-lxc-platform
51
- kitchen login <ec2 or vagrant>
52
- sudo -i
53
- ```
54
-
55
- When you are logged in as the root user you should automatically enter a [byobu session](http://byobu.co/).
56
-
57
- Byobu makes it easy to manage multiple terminal windows and panes. You can press `F1` to get help which includes a [list of keybindings](http://manpages.ubuntu.com/manpages/wily/en/man1/byobu.1.html#contenttoc8).
58
-
59
- The prefix key is set to `Ctrl-o`
60
-
61
- Some of the keys that will be most useful to you are:
62
-
63
- * `option-Up`, `option-Down` to switch between Byobu sessions
64
- * `option-Left`, `option-Right` to switch between windows in a session
65
- * `shift-Left`, `shift-Right`, `shift-Up`, `shift-Down` to switch between panes in a window
66
-
67
- ## Update dev-lxc gem
68
-
69
- Run the following command as the instance's root user if you ever need to upgrade the dev-lxc gem inside the dev-lxc-platform instance.
70
-
71
- ```
72
- cd dev-lxc-platform
73
- kitchen login <ec2 or vagrant>
74
- sudo -i
75
- chef gem update dev-lxc
76
- ```
77
-
78
- ## Demo: Build Chef Automate Cluster
79
-
80
- ### Display dev-lxc help
81
-
82
- ```
83
- dev-lxc help
84
-
85
- dev-lxc help <subcommand>
86
- ```
87
-
88
- ### dev-lxc Alias and Subcommands
89
-
90
- The dev-lxc command has a `dl` alias for ease of use.
91
-
92
- You only have to type enough of a `dev-lxc` subcommand to make it unique.
93
-
94
- For example, the following commands are equivalent:
95
-
96
- ```
97
- dev-lxc status
98
- dl st
99
- ```
100
-
101
- ```
102
- dev-lxc snapshot
103
- dl sn
104
- ```
105
-
106
- ### Create Base Container
107
-
108
- The [base container](docs/base_containers.md) used for the cluster's containers must be created first. Let's use Ubuntu 14.04 for the base container.
109
-
110
- ```
111
- dl create b-ubuntu-1404
112
- ```
113
-
114
- ### Create Config File
115
-
116
- Create the [dev-lxc.yml config file](docs/configuration.md) for the cluster.
117
-
118
- First, create an arbitrary directory to hold the dev-lxc.yml file.
119
-
120
- ```
121
- mkdir -p /root/work/clusters/automate
122
- ```
123
-
124
- Then use the `init` subcommand to generate a sample configuration using the available options. Run `dl help init` to see what options are available.
125
-
126
- The following command configures a standalone Chef Server, Supermarket server, Compliance server,
127
- Chef Automate server, and a job dispatch runner.
128
-
129
- ```
130
- dl init --chef --compliance --supermarket --automate --runners -f /root/work/clusters/automate/dev-lxc.yml
131
- ```
132
-
133
- We can easily append additional configurations to this file. For example, the following command appends an infrastructure node.
134
-
135
- ```
136
- dl init --nodes -a -f /root/work/clusters/automate/dev-lxc.yml
137
- ```
138
-
139
- Edit the dev-lxc.yml file:
140
-
141
- * Delete the `reporting` product from the Chef Server config since we will be using Chef Automate's Visibility.
142
- * Set the Automate server's `license_path` value to the location of your license file.
143
- * (Optionally) If you built other clusters then you can modify the server names (including the nodes' `chef_server_url`) in this cluster to
144
- make them [unique from the other clusters](docs/manage_multiple_clusters.md).
145
-
146
- ### cluster-view
147
-
148
- Run the `cluster-view` command to create a Byobu session specifically for this cluster.
149
-
150
- The session's first window is named "cluster".
151
-
152
- The left pane is useful for running dev-lxc commands.
153
-
154
- The right pane updates every 0.5 seconds with the cluster's status provided by `dev-lxc status`.
155
-
156
- The session's second window is named "shell". It opens in the same directory as the
157
- cluster's `dev-lxc.yml` file and is useful for attaching to a server to perform system administration tasks.
158
-
159
- See the [usage docs](docs/usage.md) for more information about how to close/kill Byobu sessions.
160
-
161
- ```
162
- cluster-view /root/work/clusters/automate
163
- ```
164
-
165
- ### Specifying a Subset of Servers
166
-
167
- Many dev-lxc subcommands can act on a subset of the cluster's servers by specifying a regular expression that matches the desired server names.
168
-
169
- For example, the following command will show the status of the infrastructure node.
170
-
171
- ```
172
- dl status node
173
- ```
174
-
175
- ### Build the Cluster
176
-
177
- dev-lxc knows to build the servers in an appropriate order.
178
-
179
- It downloads the product packages to a cache location and installs the packages in each server.
180
-
181
- It configures each product and creates necessary things such as Chef organizations and users as needed.
182
-
183
- ```
184
- dl up
185
- ```
186
-
187
- Note: You also have the option of running the `prepare-product-cache` subcommand which downloads required product packages to the cache.
188
- This can be helpful when you don't want to start building the cluster yet but you want the package cache ready when you build the cluster later.
189
-
190
- ### Use the Servers
191
-
192
- At this point all of the cluster's servers should be running.
193
-
194
- If you enabled dynamic forwarding (SOCKS v5) in your workstation's SSH config file and configured a web browser to use the SOCKS v5 proxy as described in the dev-lxc-platform README.md then you should be able to browse from your workstation to any dev-lxc server that has a web interface using its FQDN.
195
-
196
- Since the cluster has a Chef Server you can use the `chef-repo` subcommand to create a chef-repo directory in the host instance that contains a knife.rb and all of the keys for the users and org validator clients that are defined in dev-lxc.yml. This makes it very easy to use tools such as knife or berkshelf.
197
-
198
- ```
199
- dl chef
200
- cd chef-repo
201
- knife client list
202
- cd ..
203
- ```
204
-
205
- Since the cluster has a Chef Automate server you can use the `print-automate-credentials` subcommand to see what the login credentials.
206
-
207
- ```
208
- dl print
209
- ```
210
-
211
- You can use the `attach` subcommand to login to the root user of a server.
212
-
213
- For example, the following command should attach to the Chef Server.
214
-
215
- ```
216
- dl attach chef
217
- ```
218
-
219
- Since the cluster has a Chef Server and an infrastructure node dev-lxc made sure it configured the node's chef-client for the Chef Server so it is easy to converge the node.
220
-
221
- ### Use mitmproxy to view HTTP traffic
222
-
223
- Run `mitmproxy` in a terminal on the host instance.
224
-
225
- Uncomment the `https_proxy` line in the `chef-repo/.chef/knife.rb` or in a node's `/etc/chef/client.rb` so traffic will be proxied through mitmproxy.
226
-
227
- Run chef-client in the node or knife commands from the chef-repo directory and watch the HTTP requests appear in the mitmproxy console.
228
-
229
- If you configured your workstation's SSH config file with LocalForward as described in dev-lxc-platform's README then you should be able to configure the web browser to use "127.0.0.1 8080" for HTTP and HTTPS proxies and watch the HTTP requests appear in the mitmproxy console.
230
-
231
- ### Manage the Cluster
232
-
233
- The right pane of the "cluster" window should show `dev-lxc status` output. This shows the status of each server including any existing snapshots.
234
-
235
- It is recommended that you stop the servers before restoring or creating snapshots.
236
-
237
- ```
238
- dl halt
239
- ```
240
-
241
- You can restore the most recent snapshot of all the servers.
242
-
243
- ```
244
- dl sn -r
245
- ```
246
-
247
- You could also restore a specific snapshot by name if you desire.
248
-
249
- For example, you could restore the Chef Automate server to the state right after its package was installed but before it was configured.
250
-
251
- ```
252
- dl sn automate -r snap0
253
- ```
254
-
255
- You can create snapshots with or without a comment.
256
-
257
- ```
258
- dl sn -c 'Demo snapshot'
259
- ```
260
-
261
- You can destroy snapshots.
262
-
263
- ```
264
- dl sn -d snap2
265
- ```
266
-
267
- And finally you can destroy the servers and there snapshots.
268
-
269
- ```
270
- dl d
271
- ```
272
-
273
- ## Contributing
274
-
275
- 1. Fork it
276
- 2. Create your feature branch (`git checkout -b my-new-feature`)
277
- 3. Commit your changes (`git commit -am 'Add some feature'`)
278
- 4. Push to the branch (`git push origin my-new-feature`)
279
- 5. Create new Pull Request
1
+
2
+ ## dev-lxc
3
+
4
+ dev-lxc builds and manages clusters of LXC containers and includes the ability to install and configure Chef products.
5
+
6
+ Cluster management includes the ability to manage snapshots of the containers which makes dev-lxc well suited as a tool for support related work, customized cluster builds for demo purposes, as well as general experimentation and exploration.
7
+
8
+ ### Features
9
+
10
+ 1. LXC Containers - Resource efficient servers with fast start/stop times and standard init
11
+ 2. Btrfs - Efficient, persistent storage backend provides fast, lightweight container snapshots
12
+ 3. Dnsmasq - DHCP networking and DNS resolution
13
+ 4. Base Containers - Containers that are built to resemble a traditional server
14
+ 5. ruby-lxc - Ruby bindings for liblxc
15
+ 6. YAML - Simple, flexible definition of clusters
16
+ 7. Build process closely follows online installation documentation
17
+ 8. Snapshots - Snapshots are created during the cluster's build process which makes rebuilding
18
+ a cluster very fast.
19
+ 9. mixlib-install library - Automatically manages a cache of Chef products
20
+
21
+ Its containers, standard init, networking and build process are designed to be similar
22
+ to what you would build if you follow the online installation documentation so the end
23
+ result is a cluster that is relatively similar to a more traditionally built cluster.
24
+
25
+ The Btrfs backed snapshots provide a quick clean slate which is helpful especially for
26
+ experimenting and troubleshooting. Or it can be used to build a customized cluster
27
+ for demo purposes and be able to bring it up quickly and reliably.
28
+
29
+ If you aren't familiar with using containers you might be interested in this introduction.
30
+
31
+ [LXC 1.0 Introduction](https://www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series/)
32
+
33
+ Additional dev-lxc related documentation can be found in the [docs folder](docs) in this repository.
34
+
35
+ ## Build dev-lxc-platform instance
36
+
37
+ The dev-lxc tool is used in a system that has been configured by the dev-lxc-platform cookbook.
38
+
39
+ The easiest way to build a dev-lxc-platform system is to download the dev-lxc-platform repository
40
+ and use Test Kitchen to build a VirtualBox Vagrant instance or an AWS EC2 instance.
41
+
42
+ Follow the instructions in the [dev-lxc-platform README](https://github.com/jeremiahsnapp/dev-lxc-platform) to build
43
+ a dev-lxc-platform instance.
44
+
45
+ ## Login to the dev-lxc-platform instance
46
+
47
+ Login to the dev-lxc-platform instance and switch to the root user to use the dev-lxc tool.
48
+
49
+ ```
50
+ cd dev-lxc-platform
51
+ kitchen login <ec2 or vagrant>
52
+ sudo -i
53
+ ```
54
+
55
+ When you are logged in as the root user you should automatically enter a [byobu session](http://byobu.co/).
56
+
57
+ Byobu makes it easy to manage multiple terminal windows and panes. You can press `F1` to get help which includes a [list of keybindings](http://manpages.ubuntu.com/manpages/wily/en/man1/byobu.1.html#contenttoc8).
58
+
59
+ The prefix key is set to `Ctrl+o`
60
+
61
+ Some of the keys that will be most useful to you are:
62
+
63
+ * To switch between Byobu sessions
64
+ * OS X - `option-Up`, `option-Down`
65
+ * Linux/Windows - `alt-Up`, `alt-Down`
66
+ * To switch between windows in a session
67
+ * OS X - `option-Left`, `option-Right`
68
+ * Linux/Windows - `alt-Left`, `alt-Right`
69
+ * To switch between panes in a window
70
+ * Linux/OS X/ Windows - `shift-Left`, `shift-Right`, `shift-Up`, `shift-Down`
71
+ * Windows users using Conemu must first disable "Start selection with Shift+Arrow" in "Mark/Copy" under the "Keys & Macro" settings
72
+
73
+ Note: `Shift-F2` does not create horizontal splits for Windows users. Use the `Ctrl+o |` key binding instead.
74
+
75
+ ## Update dev-lxc gem
76
+
77
+ Run the following command as the instance's root user if you ever need to upgrade the dev-lxc gem inside the dev-lxc-platform instance.
78
+
79
+ ```
80
+ cd dev-lxc-platform
81
+ kitchen login <ec2 or vagrant>
82
+ sudo -i
83
+ chef gem update dev-lxc
84
+ ```
85
+
86
+ ## Demo: Build Chef Automate Cluster
87
+
88
+ ### Display dev-lxc help
89
+
90
+ ```
91
+ dev-lxc help
92
+
93
+ dev-lxc help <subcommand>
94
+ ```
95
+
96
+ ### dev-lxc Alias and Subcommands
97
+
98
+ The dev-lxc command has a `dl` alias for ease of use.
99
+
100
+ You only have to type enough of a `dev-lxc` subcommand to make it unique.
101
+
102
+ For example, the following commands are equivalent:
103
+
104
+ ```
105
+ dev-lxc status
106
+ dl st
107
+ ```
108
+
109
+ ```
110
+ dev-lxc snapshot
111
+ dl sn
112
+ ```
113
+
114
+ ### Create Base Container
115
+
116
+ The [base container](docs/base_containers.md) used for the cluster's containers must be created first. Let's use Ubuntu 14.04 for the base container.
117
+
118
+ ```
119
+ dl create b-ubuntu-1404
120
+ ```
121
+
122
+ ### Create Config File
123
+
124
+ Create the [dev-lxc.yml config file](docs/configuration.md) for the cluster.
125
+
126
+ First, create an arbitrary directory to hold the dev-lxc.yml file.
127
+
128
+ ```
129
+ mkdir -p /root/work/clusters/automate
130
+ ```
131
+
132
+ Then use the `init` subcommand to generate a sample configuration using the available options. Run `dl help init` to see what options are available.
133
+
134
+ The following command configures a standalone Chef Server, Supermarket server, Compliance server,
135
+ Chef Automate server, and a job dispatch runner.
136
+
137
+ ```
138
+ dl init --chef --compliance --supermarket --automate --runners -f /root/work/clusters/automate/dev-lxc.yml
139
+ ```
140
+
141
+ We can easily append additional configurations to this file. For example, the following command appends an infrastructure node.
142
+
143
+ ```
144
+ dl init --nodes -a -f /root/work/clusters/automate/dev-lxc.yml
145
+ ```
146
+
147
+ Edit the dev-lxc.yml file:
148
+
149
+ * Delete the `reporting` product from the Chef Server config since we will be using Chef Automate's Visibility.
150
+ * Set the Automate server's `license_path` value to the location of your license file.
151
+ * (Optionally) If you built other clusters then you can modify the server names (including the nodes' `chef_server_url`) in this cluster to
152
+ make them [unique from the other clusters](docs/manage_multiple_clusters.md).
153
+
154
+ ### cluster-view
155
+
156
+ Run the `cluster-view` command to create a Byobu session specifically for this cluster.
157
+
158
+ The session's first window is named "cluster".
159
+
160
+ The left pane is useful for running dev-lxc commands.
161
+
162
+ The right pane updates every 0.5 seconds with the cluster's status provided by `dev-lxc status`.
163
+
164
+ The session's second window is named "shell". It opens in the same directory as the
165
+ cluster's `dev-lxc.yml` file and is useful for attaching to a server to perform system administration tasks.
166
+
167
+ See the [usage docs](docs/usage.md) for more information about how to close/kill Byobu sessions.
168
+
169
+ ```
170
+ cluster-view /root/work/clusters/automate
171
+ ```
172
+
173
+ ### Specifying a Subset of Servers
174
+
175
+ Many dev-lxc subcommands can act on a subset of the cluster's servers by specifying a regular expression that matches the desired server names.
176
+
177
+ For example, the following command will show the status of the infrastructure node.
178
+
179
+ ```
180
+ dl status node
181
+ ```
182
+
183
+ ### Build the Cluster
184
+
185
+ dev-lxc knows to build the servers in an appropriate order.
186
+
187
+ It downloads the product packages to a cache location and installs the packages in each server.
188
+
189
+ It configures each product and creates necessary things such as Chef organizations and users as needed.
190
+
191
+ ```
192
+ dl up
193
+ ```
194
+
195
+ Note: You also have the option of running the `prepare-product-cache` subcommand which downloads required product packages to the cache.
196
+ This can be helpful when you don't want to start building the cluster yet but you want the package cache ready when you build the cluster later.
197
+
198
+ ### Use the Servers
199
+
200
+ At this point all of the cluster's servers should be running.
201
+
202
+ If you enabled dynamic forwarding (SOCKS v5) in your workstation's SSH config file and configured a web browser to use the SOCKS v5 proxy as described in the dev-lxc-platform README.md then you should be able to browse from your workstation to any dev-lxc server that has a web interface using its FQDN.
203
+
204
+ Since the cluster has a Chef Server you can use the `chef-repo` subcommand to create a chef-repo directory in the host instance that contains a knife.rb and all of the keys for the users and org validator clients that are defined in dev-lxc.yml. This makes it very easy to use tools such as knife or berkshelf.
205
+
206
+ ```
207
+ dl chef
208
+ cd chef-repo
209
+ knife client list
210
+ cd ..
211
+ ```
212
+
213
+ Since the cluster has a Chef Automate server you can use the `print-automate-credentials` subcommand to see what the login credentials.
214
+
215
+ ```
216
+ dl print
217
+ ```
218
+
219
+ You can use the `attach` subcommand to login to the root user of a server.
220
+
221
+ For example, the following command should attach to the Chef Server.
222
+
223
+ ```
224
+ dl attach chef
225
+ ```
226
+
227
+ Since the cluster has a Chef Server and an infrastructure node dev-lxc made sure it configured the node's chef-client for the Chef Server so it is easy to converge the node.
228
+
229
+ ### Use mitmproxy to view HTTP traffic
230
+
231
+ Run `mitmproxy` in a terminal on the host instance.
232
+
233
+ Uncomment the `https_proxy` line in the `chef-repo/.chef/knife.rb` or in a node's `/etc/chef/client.rb` so traffic will be proxied through mitmproxy.
234
+
235
+ Run chef-client in the node or knife commands from the chef-repo directory and watch the HTTP requests appear in the mitmproxy console.
236
+
237
+ If you configured your workstation's SSH config file with LocalForward as described in dev-lxc-platform's README then you should be able to configure the web browser to use "127.0.0.1 8080" for HTTP and HTTPS proxies and watch the HTTP requests appear in the mitmproxy console.
238
+
239
+ ### Manage the Cluster
240
+
241
+ The right pane of the "cluster" window should show `dev-lxc status` output. This shows the status of each server including any existing snapshots.
242
+
243
+ It is recommended that you stop the servers before restoring or creating snapshots.
244
+
245
+ ```
246
+ dl halt
247
+ ```
248
+
249
+ You can restore the most recent snapshot of all the servers.
250
+
251
+ ```
252
+ dl sn -r
253
+ ```
254
+
255
+ You could also restore a specific snapshot by name if you desire.
256
+
257
+ For example, you could restore the Chef Automate server to the state right after its package was installed but before it was configured.
258
+
259
+ ```
260
+ dl sn automate -r snap0
261
+ ```
262
+
263
+ You can create snapshots with or without a comment.
264
+
265
+ ```
266
+ dl sn -c 'Demo snapshot'
267
+ ```
268
+
269
+ You can destroy snapshots.
270
+
271
+ ```
272
+ dl sn -d snap2
273
+ ```
274
+
275
+ And finally you can destroy the servers and there snapshots.
276
+
277
+ ```
278
+ dl d
279
+ ```
280
+
281
+ ## Contributing
282
+
283
+ 1. Fork it
284
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
285
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
286
+ 4. Push to the branch (`git push origin my-new-feature`)
287
+ 5. Create new Pull Request
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require "bundler/gem_tasks"
data/bin/dev-lxc CHANGED
@@ -1,9 +1,9 @@
1
- #!/usr/bin/env ruby
2
- require 'dev-lxc/cli'
3
-
4
- unless Process.uid == 0
5
- puts "ERROR: Must run as root"
6
- exit 1
7
- end
8
-
9
- DevLXC::CLI::DevLXC.start
1
+ #!/usr/bin/env ruby
2
+ require 'dev-lxc/cli'
3
+
4
+ unless Process.uid == 0
5
+ puts "ERROR: Must run as root"
6
+ exit 1
7
+ end
8
+
9
+ DevLXC::CLI::DevLXC.start
data/dev-lxc.gemspec CHANGED
@@ -1,26 +1,26 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'dev-lxc/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "dev-lxc"
8
- spec.version = DevLXC::VERSION
9
- spec.authors = ["Jeremiah Snapp"]
10
- spec.email = ["jeremiah@getchef.com"]
11
- spec.description = %q{A tool for building Chef server clusters using LXC containers}
12
- spec.summary = spec.description
13
- spec.licenses = "Apache2"
14
- spec.homepage = "https://github.com/jeremiahsnapp/dev-lxc"
15
-
16
- spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake", "~> 0"
23
- spec.add_runtime_dependency "mixlib-install"
24
- spec.add_runtime_dependency "thor", "~> 0"
25
- spec.add_runtime_dependency "ruby-lxc", "~> 1.2.0"
26
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'dev-lxc/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "dev-lxc"
8
+ spec.version = DevLXC::VERSION
9
+ spec.authors = ["Jeremiah Snapp"]
10
+ spec.email = ["jeremiah@getchef.com"]
11
+ spec.description = %q{A tool for building Chef server clusters using LXC containers}
12
+ spec.summary = spec.description
13
+ spec.licenses = "Apache2"
14
+ spec.homepage = "https://github.com/jeremiahsnapp/dev-lxc"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake", "~> 0"
23
+ spec.add_runtime_dependency "mixlib-install"
24
+ spec.add_runtime_dependency "thor", "~> 0"
25
+ spec.add_runtime_dependency "ruby-lxc", "~> 1.2.0"
26
+ end