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.
- checksums.yaml +4 -4
- data/.gitignore +17 -17
- data/CHANGELOG.md +317 -313
- data/Gemfile +4 -4
- data/LICENSE +201 -201
- data/README.md +287 -279
- data/Rakefile +1 -1
- data/bin/dev-lxc +9 -9
- data/dev-lxc.gemspec +26 -26
- data/docs/adhoc_clusters.md +22 -22
- data/docs/base_containers.md +44 -44
- data/docs/configuration.md +203 -203
- data/docs/dev-lxc_version_2.md +10 -10
- data/docs/manage_multiple_clusters.md +30 -30
- data/docs/usage.md +187 -187
- data/lib/dev-lxc/cli.rb +434 -434
- data/lib/dev-lxc/cluster.rb +1211 -1211
- data/lib/dev-lxc/container.rb +123 -123
- data/lib/dev-lxc/server.rb +197 -197
- data/lib/dev-lxc/version.rb +3 -3
- data/lib/dev-lxc.rb +118 -118
- metadata +2 -2
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
|
60
|
-
|
61
|
-
Some of the keys that will be most useful to you are:
|
62
|
-
|
63
|
-
*
|
64
|
-
* `option-
|
65
|
-
*
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
dev-lxc
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
### dev-lxc
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
dl
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
```
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
dl
|
112
|
-
```
|
113
|
-
|
114
|
-
### Create
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
```
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
```
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
cluster-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
```
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
```
|
216
|
-
dl
|
217
|
-
```
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
```
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
```
|
252
|
-
dl sn
|
253
|
-
```
|
254
|
-
|
255
|
-
You
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
```
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
```
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
```
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
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
|