dev-lxc 1.5.1 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +28 -40
- data/lib/dev-lxc/cli.rb +123 -23
- data/lib/dev-lxc/cluster.rb +42 -3
- data/lib/dev-lxc/server.rb +74 -41
- data/lib/dev-lxc/version.rb +1 -1
- metadata +2 -6
- data/files/configs/adhoc.yml +0 -31
- data/files/configs/open-source.yml +0 -31
- data/files/configs/standalone.yml +0 -47
- data/files/configs/tier.yml +0 -63
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc3e32a92441d13891b9d18d695f0090b66fda21
|
4
|
+
data.tar.gz: 88ffc5dd9c96a388b05bd667efa0911f49a7b9ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 036550a1aa6075233f9ca49dd69e97dee81e34b0b08b11b19eb4ed277d3a0308b5e422d8ca28c979c91c770651210723e38be3292dc83b2faf355a6a36fc2d72
|
7
|
+
data.tar.gz: 25a763a9686080b77466efe50e77ad7326081ed6569056362a00d2088786f5d471bc826656ba6d582c53106c45d67b623e7f69afe4856b7d45402eb42725bfc2
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,25 @@
|
|
1
1
|
# dev-lxc Change Log
|
2
2
|
|
3
|
+
## 1.6.0 (2015-04-20)
|
4
|
+
|
5
|
+
* Rewrite "dev-lxc init" so its options determine what config gets generated
|
6
|
+
|
7
|
+
* Allow mounts, platform_image and platform_image_options to be set globally
|
8
|
+
|
9
|
+
* Create demo org and mary-admin and joe-user users
|
10
|
+
|
11
|
+
* Add Supermarket server build capability
|
12
|
+
|
13
|
+
* Add Compliance server build capability
|
14
|
+
|
15
|
+
* Improve "dev-lxc status" output
|
16
|
+
|
17
|
+
* Generate Chef Server config in one shot
|
18
|
+
|
19
|
+
* Make standalone topology the default for Analytics
|
20
|
+
|
21
|
+
* Make standalone topology the default for Chef Server
|
22
|
+
|
3
23
|
## 1.5.1 (2015-04-15)
|
4
24
|
|
5
25
|
* Add ability to pass options to LXC create calls
|
data/README.md
CHANGED
@@ -106,8 +106,8 @@ You only have to type enough of a `dev-lxc` subcommand to make it unique.
|
|
106
106
|
The following commands are equivalent:
|
107
107
|
|
108
108
|
```
|
109
|
-
dev-lxc init
|
110
|
-
dl i
|
109
|
+
dev-lxc init --chef > dev-lxc.yml
|
110
|
+
dl i --chef > dev-lxc.yml
|
111
111
|
```
|
112
112
|
|
113
113
|
```
|
@@ -127,7 +127,7 @@ dl d
|
|
127
127
|
|
128
128
|
### Create and Manage a Cluster
|
129
129
|
|
130
|
-
The following instructions will build a tier Chef Server with
|
130
|
+
The following instructions will build a tier Chef Server with an Analytics server
|
131
131
|
for demonstration purposes.
|
132
132
|
The size of this cluster uses about 3GB ram and takes awhile for the first
|
133
133
|
build of the servers. Feel free to try the standalone config first.
|
@@ -141,7 +141,7 @@ Be sure you configure the
|
|
141
141
|
appropriately.
|
142
142
|
|
143
143
|
```
|
144
|
-
dev-lxc init
|
144
|
+
dev-lxc init --tiered-chef --analytics > dev-lxc.yml
|
145
145
|
```
|
146
146
|
|
147
147
|
#### List Images
|
@@ -364,7 +364,7 @@ Chef Delivery cluster.
|
|
364
364
|
```
|
365
365
|
mkdir -p /root/dev/clusters/delivery
|
366
366
|
cd /root/dev/clusters/delivery
|
367
|
-
dev-lxc init adhoc > dev-lxc.yml
|
367
|
+
dev-lxc init --adhoc > dev-lxc.yml
|
368
368
|
cluster-view
|
369
369
|
dl up
|
370
370
|
```
|
@@ -492,67 +492,55 @@ The following command generates sample config files for various cluster topologi
|
|
492
492
|
dev-lxc init
|
493
493
|
```
|
494
494
|
|
495
|
-
`dev-lxc init
|
495
|
+
`dev-lxc init --tiered-chef --analytics > dev-lxc.yml` creates a `dev-lxc.yml` file with the following content:
|
496
496
|
|
497
497
|
```
|
498
498
|
## platform_image can be one of the following:
|
499
499
|
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
500
500
|
|
501
|
-
##
|
501
|
+
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
502
|
+
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
503
|
+
## for example:
|
504
|
+
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
502
505
|
|
503
|
-
## Make sure
|
506
|
+
## Make sure all mount source directories exist in the LXC host
|
507
|
+
|
508
|
+
## Make sure all package paths are correct
|
504
509
|
|
505
510
|
## All FQDNs and server names must end with the `.lxc` domain
|
506
511
|
|
507
512
|
## DHCP reserved (static) IPs must be selected from the IP range 10.0.3.150 - 254
|
508
513
|
|
509
514
|
## topology can be one of the following:
|
510
|
-
## standalone, tier or open-source (for the old open source 11 chef server)
|
515
|
+
## standalone (default), tier or open-source (for the old open source 11 chef server)
|
516
|
+
|
517
|
+
platform_image: p-ubuntu-1404
|
518
|
+
mounts:
|
519
|
+
- /root/dev root/dev
|
511
520
|
|
512
521
|
chef-server:
|
513
|
-
platform_image: p-ubuntu-1404
|
514
|
-
mounts:
|
515
|
-
- /root/dev root/dev
|
516
522
|
packages:
|
517
523
|
server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
|
518
524
|
manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
api_fqdn: chef.lxc
|
525
|
+
reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
|
526
|
+
push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
|
523
527
|
topology: tier
|
528
|
+
api_fqdn: chef.lxc
|
524
529
|
servers:
|
525
530
|
chef-be.lxc:
|
531
|
+
ipaddress: 10.0.3.201
|
526
532
|
role: backend
|
527
|
-
ipaddress: 10.0.3.203
|
528
533
|
bootstrap: true
|
529
534
|
chef-fe1.lxc:
|
535
|
+
ipaddress: 10.0.3.202
|
530
536
|
role: frontend
|
531
|
-
ipaddress: 10.0.3.204
|
532
|
-
# chef-fe2.lxc:
|
533
|
-
# role: frontend
|
534
|
-
# ipaddress: 10.0.3.205
|
535
537
|
|
536
538
|
analytics:
|
537
|
-
platform_image: p-ubuntu-1404
|
538
|
-
mounts:
|
539
|
-
- /root/dev root/dev
|
540
539
|
packages:
|
541
540
|
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
|
542
|
-
|
543
|
-
analytics_fqdn: analytics.lxc
|
544
|
-
topology: tier
|
545
541
|
servers:
|
546
|
-
analytics
|
547
|
-
|
548
|
-
ipaddress: 10.0.3.206
|
549
|
-
bootstrap: true
|
550
|
-
analytics-fe1.lxc:
|
551
|
-
role: frontend
|
552
|
-
ipaddress: 10.0.3.207
|
553
|
-
# analytics-fe2.lxc:
|
554
|
-
# role: frontend
|
555
|
-
# ipaddress: 10.0.3.208
|
542
|
+
analytics.lxc:
|
543
|
+
ipaddress: 10.0.3.204
|
556
544
|
```
|
557
545
|
|
558
546
|
This config defines a tier cluster consisting of a single backend and a single frontend.
|
@@ -591,8 +579,8 @@ each cluster's config file.
|
|
591
579
|
|
592
580
|
```
|
593
581
|
mkdir -p ~/clusters/{clusterA,clusterB}
|
594
|
-
dev-lxc init
|
595
|
-
dev-lxc init
|
582
|
+
dev-lxc init --tiered-chef > ~/clusters/clusterA/dev-lxc.yml
|
583
|
+
dev-lxc init --chef > ~/clusters/clusterB/dev-lxc.yml
|
596
584
|
cd ~/clusters/clusterA && dev-lxc up # starts clusterA
|
597
585
|
cd ~/clusters/clusterB && dev-lxc up # starts clusterB
|
598
586
|
```
|
@@ -619,7 +607,7 @@ more clusters you have to maintain uniqueness across the YAML config files for t
|
|
619
607
|
For example, you can use the following command to prefix the servers names with `1234-` when
|
620
608
|
generating a cluster's config.
|
621
609
|
|
622
|
-
dev-lxc init
|
610
|
+
dev-lxc init --tiered-chef 1234- > dev-lxc.yml
|
623
611
|
|
624
612
|
* IP Addresses
|
625
613
|
|
data/lib/dev-lxc/cli.rb
CHANGED
@@ -68,9 +68,9 @@ module DevLXC::CLI
|
|
68
68
|
puts "ERROR: Can not copy validation key because Chef Server '#{chef_server_bootstrap_backend.name}' is not created."
|
69
69
|
exit 1
|
70
70
|
end
|
71
|
-
chef_server_url = "https://#{cluster.api_fqdn}/organizations/
|
72
|
-
validation_client_name = '
|
73
|
-
validation_key = "#{chef_server_bootstrap_backend.config_item('lxc.rootfs')}/root/chef-repo/.chef/
|
71
|
+
chef_server_url = "https://#{cluster.api_fqdn}/organizations/demo"
|
72
|
+
validation_client_name = 'demo-validator'
|
73
|
+
validation_key = "#{chef_server_bootstrap_backend.config_item('lxc.rootfs')}/root/chef-repo/.chef/demo-validator.pem"
|
74
74
|
elsif chef_server_url.nil? || validation_client_name.nil? || validation_key.nil?
|
75
75
|
puts "ERROR: All of the --chef-server-url, --validation-client-name and --validation-key options must be set or left unset. Do not set only some of these options."
|
76
76
|
exit 1
|
@@ -100,9 +100,9 @@ module DevLXC::CLI
|
|
100
100
|
puts "ERROR: Can not copy validation key because Chef Server '#{chef_server_bootstrap_backend.name}' is not created."
|
101
101
|
exit 1
|
102
102
|
end
|
103
|
-
chef_server_url = "https://#{cluster.api_fqdn}/organizations/
|
104
|
-
validation_client_name = '
|
105
|
-
validation_key = "#{chef_server_bootstrap_backend.config_item('lxc.rootfs')}/root/chef-repo/.chef/
|
103
|
+
chef_server_url = "https://#{cluster.api_fqdn}/organizations/demo"
|
104
|
+
validation_client_name = 'demo-validator'
|
105
|
+
validation_key = "#{chef_server_bootstrap_backend.config_item('lxc.rootfs')}/root/chef-repo/.chef/demo-validator.pem"
|
106
106
|
elsif chef_server_url.nil? || validation_client_name.nil? || validation_key.nil?
|
107
107
|
puts "ERROR: All of the --chef-server-url, --validation-client-name and --validation-key options must be set or left unset. Do not set only some of these options."
|
108
108
|
exit 1
|
@@ -113,25 +113,122 @@ module DevLXC::CLI
|
|
113
113
|
print_elapsed_time(Time.now - start_time)
|
114
114
|
end
|
115
115
|
|
116
|
-
desc "init [
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
116
|
+
desc "init [UNIQUE_STRING]", "Provide a cluster config file with optional uniqueness in server names and FQDNs"
|
117
|
+
option :open_source, :type => :boolean, :desc => "Standalone Old Open Source Chef Server"
|
118
|
+
option :tiered_chef, :type => :boolean, :desc => "Tiered Chef Server"
|
119
|
+
option :chef, :type => :boolean, :desc => "Standalone Chef Server"
|
120
|
+
option :analytics, :type => :boolean, :desc => "Analytics Server"
|
121
|
+
option :compliance, :type => :boolean, :desc => "Compliance Server"
|
122
|
+
option :supermarket, :type => :boolean, :desc => "Supermarket Server"
|
123
|
+
option :adhoc, :type => :boolean, :desc => "Adhoc Servers"
|
124
|
+
def init(unique_string=nil)
|
125
|
+
header = %Q(## platform_image can be one of the following:
|
126
|
+
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
127
|
+
|
128
|
+
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
129
|
+
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
130
|
+
## for example:
|
131
|
+
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
132
|
+
|
133
|
+
## Make sure all mount source directories exist in the LXC host
|
134
|
+
|
135
|
+
## Make sure all package paths are correct
|
136
|
+
|
137
|
+
## All FQDNs and server names must end with the `.lxc` domain
|
138
|
+
|
139
|
+
## DHCP reserved (static) IPs must be selected from the IP range 10.0.3.150 - 254
|
140
|
+
|
141
|
+
## topology can be one of the following:
|
142
|
+
## standalone (default), tier or open-source (for the old open source 11 chef server)
|
143
|
+
|
144
|
+
platform_image: p-ubuntu-1404
|
145
|
+
mounts:
|
146
|
+
- /root/dev root/dev
|
147
|
+
)
|
148
|
+
open_source_config = %Q(
|
149
|
+
chef-server:
|
150
|
+
packages:
|
151
|
+
server: /root/dev/chef-packages/osc/chef-server_11.1.6-1_amd64.deb
|
152
|
+
api_fqdn: chef.lxc
|
153
|
+
topology: open-source
|
154
|
+
servers:
|
155
|
+
osc-chef.lxc:
|
156
|
+
ipaddress: 10.0.3.200
|
157
|
+
)
|
158
|
+
chef_server_packages = %Q( packages:
|
159
|
+
server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
|
160
|
+
manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
|
161
|
+
reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
|
162
|
+
push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
|
163
|
+
)
|
164
|
+
tiered_chef_config = %Q(
|
165
|
+
chef-server:
|
166
|
+
#{chef_server_packages.chomp}
|
167
|
+
topology: tier
|
168
|
+
api_fqdn: chef.lxc
|
169
|
+
servers:
|
170
|
+
chef-be.lxc:
|
171
|
+
ipaddress: 10.0.3.201
|
172
|
+
role: backend
|
173
|
+
bootstrap: true
|
174
|
+
chef-fe1.lxc:
|
175
|
+
ipaddress: 10.0.3.202
|
176
|
+
role: frontend
|
177
|
+
)
|
178
|
+
chef_config = %Q(
|
179
|
+
chef-server:
|
180
|
+
#{chef_server_packages.chomp}
|
181
|
+
servers:
|
182
|
+
chef.lxc:
|
183
|
+
ipaddress: 10.0.3.203
|
184
|
+
)
|
185
|
+
analytics_config = %Q(
|
186
|
+
analytics:
|
187
|
+
packages:
|
188
|
+
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
|
189
|
+
servers:
|
190
|
+
analytics.lxc:
|
191
|
+
ipaddress: 10.0.3.204
|
192
|
+
)
|
193
|
+
compliance_config = %Q(
|
194
|
+
compliance:
|
195
|
+
packages:
|
196
|
+
compliance: /root/dev/chef-packages/compliance/chef-compliance_1.1.2-1_amd64.deb
|
197
|
+
servers:
|
198
|
+
compliance.lxc:
|
199
|
+
ipaddress: 10.0.3.205
|
200
|
+
)
|
201
|
+
supermarket_config = %Q(
|
202
|
+
supermarket:
|
203
|
+
packages:
|
204
|
+
supermarket: /root/dev/chef-packages/supermarket/supermarket_2.5.2-1_amd64.deb
|
205
|
+
servers:
|
206
|
+
supermarket.lxc:
|
207
|
+
ipaddress: 10.0.3.206
|
208
|
+
)
|
209
|
+
adhoc_config = %Q(
|
210
|
+
adhoc:
|
211
|
+
servers:
|
212
|
+
adhoc.lxc:
|
213
|
+
ipaddress: 10.0.3.207
|
214
|
+
)
|
215
|
+
config = header
|
216
|
+
config += chef_config if options[:chef]
|
217
|
+
config += tiered_chef_config if options[:tiered_chef]
|
218
|
+
config += analytics_config if options[:analytics]
|
219
|
+
config += compliance_config if options[:compliance]
|
220
|
+
config += supermarket_config if options[:supermarket]
|
221
|
+
config += adhoc_config if options[:adhoc]
|
126
222
|
unless unique_string.nil?
|
127
223
|
config_hash = YAML.load(config.gsub(/^#/, ''))
|
128
224
|
config.gsub!(/api_fqdn:\s+#{config_hash['api_fqdn']}/, "api_fqdn: #{unique_string}#{config_hash['api_fqdn']}")
|
129
225
|
config.gsub!(/analytics_fqdn:\s+#{config_hash['analytics_fqdn']}/, "analytics_fqdn: #{unique_string}#{config_hash['analytics_fqdn']}")
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
226
|
+
%w(open-source chef-server analytics compliance supermarket adhoc).each do |server_type|
|
227
|
+
if config_hash[server_type]
|
228
|
+
config_hash[server_type]['servers'].keys.each do |server_name|
|
229
|
+
config.gsub!(/ #{server_name}:/, " #{unique_string}#{server_name}:")
|
230
|
+
end
|
231
|
+
end
|
135
232
|
end
|
136
233
|
end
|
137
234
|
puts config
|
@@ -149,8 +246,11 @@ module DevLXC::CLI
|
|
149
246
|
option :config, :desc => "Specify a cluster's YAML config file. `./dev-lxc.yml` will be used by default"
|
150
247
|
def status(server_name_regex=nil)
|
151
248
|
cluster = get_cluster(options[:config])
|
152
|
-
puts "Chef Server:
|
153
|
-
puts "Analytics:
|
249
|
+
puts "Chef Server FQDN: #{cluster.api_fqdn}\n" if cluster.api_fqdn
|
250
|
+
puts "Analytics FQDN: #{cluster.analytics_fqdn}\n" if cluster.analytics_fqdn
|
251
|
+
puts "Compliance FQDN: #{cluster.compliance_fqdn}\n" if cluster.compliance_fqdn
|
252
|
+
puts "Supermarket FQDN: #{cluster.supermarket_fqdn}\n" if cluster.supermarket_fqdn
|
253
|
+
puts
|
154
254
|
servers = Array.new
|
155
255
|
match_server_name_regex(server_name_regex).map { |s| servers << s.server.status }
|
156
256
|
max_server_name_length = servers.max_by { |s| s['name'].length }['name'].length unless servers.empty?
|
data/lib/dev-lxc/cluster.rb
CHANGED
@@ -2,7 +2,7 @@ require "dev-lxc/server"
|
|
2
2
|
|
3
3
|
module DevLXC
|
4
4
|
class Cluster
|
5
|
-
attr_reader :api_fqdn, :
|
5
|
+
attr_reader :api_fqdn, :chef_server_bootstrap_backend, :analytics_fqdn, :analytics_bootstrap_backend, :compliance_fqdn, :supermarket_fqdn, :lxc_config_path
|
6
6
|
|
7
7
|
def initialize(cluster_config)
|
8
8
|
@cluster_config = cluster_config
|
@@ -16,6 +16,7 @@ module DevLXC
|
|
16
16
|
|
17
17
|
if @cluster_config["chef-server"]
|
18
18
|
@chef_server_topology = @cluster_config["chef-server"]["topology"]
|
19
|
+
@chef_server_topology ||= 'standalone'
|
19
20
|
@api_fqdn = @cluster_config["chef-server"]["api_fqdn"]
|
20
21
|
@chef_server_servers = @cluster_config["chef-server"]["servers"]
|
21
22
|
@chef_server_frontends = Array.new
|
@@ -23,6 +24,7 @@ module DevLXC
|
|
23
24
|
case @chef_server_topology
|
24
25
|
when 'open-source', 'standalone'
|
25
26
|
@chef_server_bootstrap_backend = name if config["role"].nil?
|
27
|
+
@api_fqdn ||= @chef_server_bootstrap_backend
|
26
28
|
when 'tier'
|
27
29
|
@chef_server_bootstrap_backend = name if config["role"] == "backend" && config["bootstrap"] == true
|
28
30
|
@chef_server_frontends << name if config["role"] == "frontend"
|
@@ -32,6 +34,7 @@ module DevLXC
|
|
32
34
|
|
33
35
|
if @cluster_config["analytics"]
|
34
36
|
@analytics_topology = @cluster_config["analytics"]["topology"]
|
37
|
+
@analytics_topology ||= 'standalone'
|
35
38
|
@analytics_fqdn = @cluster_config["analytics"]["analytics_fqdn"]
|
36
39
|
@analytics_servers = @cluster_config["analytics"]["servers"]
|
37
40
|
@analytics_frontends = Array.new
|
@@ -39,12 +42,27 @@ module DevLXC
|
|
39
42
|
case @analytics_topology
|
40
43
|
when 'standalone'
|
41
44
|
@analytics_bootstrap_backend = name if config["role"].nil?
|
45
|
+
@analytics_fqdn ||= @analytics_bootstrap_backend
|
42
46
|
when 'tier'
|
43
47
|
@analytics_bootstrap_backend = name if config["role"] == "backend" && config["bootstrap"] == true
|
44
48
|
@analytics_frontends << name if config["role"] == "frontend"
|
45
49
|
end
|
46
50
|
end
|
47
51
|
end
|
52
|
+
|
53
|
+
if @cluster_config["compliance"]
|
54
|
+
compliance_servers = @cluster_config["compliance"]["servers"]
|
55
|
+
compliance_servers.each_key do |name|
|
56
|
+
@compliance_fqdn = name
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
if @cluster_config["supermarket"]
|
61
|
+
supermarket_servers = @cluster_config["supermarket"]["servers"]
|
62
|
+
supermarket_servers.each_key do |name|
|
63
|
+
@supermarket_fqdn = name
|
64
|
+
end
|
65
|
+
end
|
48
66
|
end
|
49
67
|
|
50
68
|
def servers
|
@@ -69,6 +87,9 @@ module DevLXC
|
|
69
87
|
end
|
70
88
|
end
|
71
89
|
servers = adhoc_servers + chef_servers + analytics_servers
|
90
|
+
servers << Server.new(@compliance_fqdn, 'compliance', @cluster_config) if @compliance_fqdn
|
91
|
+
servers << Server.new(@supermarket_fqdn, 'supermarket', @cluster_config) if @supermarket_fqdn
|
92
|
+
servers
|
72
93
|
end
|
73
94
|
|
74
95
|
def chef_repo(force=false, pivotal=false)
|
@@ -98,8 +119,8 @@ module DevLXC
|
|
98
119
|
validator_name = "chef-validator"
|
99
120
|
else
|
100
121
|
chef_server_root = "https://#{@api_fqdn}"
|
101
|
-
chef_server_url = "https://#{@api_fqdn}/organizations/
|
102
|
-
validator_name = "
|
122
|
+
chef_server_url = "https://#{@api_fqdn}/organizations/demo"
|
123
|
+
validator_name = "demo-validator"
|
103
124
|
|
104
125
|
if pivotal
|
105
126
|
if File.exists?("./chef-repo/.chef/pivotal.rb") && ! force
|
@@ -154,6 +175,24 @@ server "#{frontend_name}",
|
|
154
175
|
)
|
155
176
|
end
|
156
177
|
end
|
178
|
+
if @analytics_fqdn
|
179
|
+
chef_server_config += %Q(
|
180
|
+
oc_id['applications'] ||= {}
|
181
|
+
oc_id['applications']['analytics'] = {
|
182
|
+
'redirect_uri' => 'https://#{@analytics_fqdn}/'
|
183
|
+
}
|
184
|
+
rabbitmq['vip'] = '#{@chef_server_bootstrap_backend}'
|
185
|
+
rabbitmq['node_ip_address'] = '0.0.0.0'
|
186
|
+
)
|
187
|
+
end
|
188
|
+
if @supermarket_fqdn
|
189
|
+
chef_server_config += %Q(
|
190
|
+
oc_id['applications'] ||= {}
|
191
|
+
oc_id['applications']['supermarket'] = {
|
192
|
+
'redirect_uri' => 'https://#{@supermarket_fqdn}/auth/chef_oauth2/callback'
|
193
|
+
}
|
194
|
+
)
|
195
|
+
end
|
157
196
|
return chef_server_config
|
158
197
|
end
|
159
198
|
|
data/lib/dev-lxc/server.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "json"
|
1
2
|
require "dev-lxc/container"
|
2
3
|
require "dev-lxc/cluster"
|
3
4
|
|
@@ -15,6 +16,8 @@ module DevLXC
|
|
15
16
|
@lxc_config_path = cluster.lxc_config_path
|
16
17
|
@api_fqdn = cluster.api_fqdn
|
17
18
|
@analytics_fqdn = cluster.analytics_fqdn
|
19
|
+
@compliance_fqdn = cluster.compliance_fqdn
|
20
|
+
@supermarket_fqdn = cluster.supermarket_fqdn
|
18
21
|
@chef_server_bootstrap_backend = cluster.chef_server_bootstrap_backend
|
19
22
|
@analytics_bootstrap_backend = cluster.analytics_bootstrap_backend
|
20
23
|
@chef_server_config = cluster.chef_server_config
|
@@ -23,14 +26,19 @@ module DevLXC
|
|
23
26
|
@server = DevLXC::Container.new(name, @lxc_config_path)
|
24
27
|
@config = cluster_config[@server_type]["servers"][@server.name]
|
25
28
|
@ipaddress = @config["ipaddress"]
|
26
|
-
@role = @config["role"]
|
29
|
+
@role = @config["role"]
|
30
|
+
@role ||= cluster_config[@server_type]['topology']
|
31
|
+
@role ||= 'standalone'
|
27
32
|
@mounts = cluster_config[@server_type]["mounts"]
|
33
|
+
@mounts ||= cluster_config["mounts"]
|
28
34
|
@platform_image_name = cluster_config[@server_type]["platform_image"]
|
35
|
+
@platform_image_name ||= cluster_config["platform_image"]
|
29
36
|
@platform_image_options = cluster_config[@server_type]["platform_image_options"]
|
37
|
+
@platform_image_options ||= cluster_config["platform_image_options"]
|
30
38
|
@packages = cluster_config[@server_type]["packages"]
|
31
39
|
|
32
40
|
case @server_type
|
33
|
-
when 'adhoc'
|
41
|
+
when 'adhoc', 'compliance', 'supermarket'
|
34
42
|
@shared_image_name = ''
|
35
43
|
when 'analytics'
|
36
44
|
@shared_image_name = "s#{@platform_image_name[1..-1]}"
|
@@ -82,6 +90,10 @@ module DevLXC
|
|
82
90
|
DevLXC.create_dns_record(@analytics_fqdn, @server.name, @ipaddress)
|
83
91
|
when 'chef-server'
|
84
92
|
DevLXC.create_dns_record(@api_fqdn, @server.name, @ipaddress)
|
93
|
+
when 'compliance'
|
94
|
+
DevLXC.create_dns_record(@compliance_fqdn, @server.name, @ipaddress)
|
95
|
+
when 'supermarket'
|
96
|
+
DevLXC.create_dns_record(@supermarket_fqdn, @server.name, @ipaddress)
|
85
97
|
end
|
86
98
|
end
|
87
99
|
@server.sync_mounts(@mounts)
|
@@ -163,7 +175,11 @@ module DevLXC
|
|
163
175
|
return
|
164
176
|
else
|
165
177
|
puts "Creating container '#{@server.name}'"
|
166
|
-
if @server_type
|
178
|
+
if %w(adhoc compliance supermarket).include?(@server_type)
|
179
|
+
if @server_type == 'supermarket' && (@chef_server_bootstrap_backend && ! DevLXC::Container.new(@chef_server_bootstrap_backend, @lxc_config_path).defined?)
|
180
|
+
puts "ERROR: The bootstrap backend server '#{@chef_server_bootstrap_backend}' must be created first."
|
181
|
+
exit 1
|
182
|
+
end
|
167
183
|
platform_image = DevLXC.create_platform_image(@platform_image_name, @platform_image_options, @lxc_config_path)
|
168
184
|
puts "Cloning platform image '#{platform_image.name}' into container '#{@server.name}'"
|
169
185
|
platform_image.clone(@server.name, {:flags => LXC::LXC_CLONE_SNAPSHOT})
|
@@ -194,6 +210,10 @@ module DevLXC
|
|
194
210
|
DevLXC.create_dns_record(@analytics_fqdn, @server.name, @ipaddress)
|
195
211
|
when 'chef-server'
|
196
212
|
DevLXC.create_dns_record(@api_fqdn, @server.name, @ipaddress)
|
213
|
+
when 'compliance'
|
214
|
+
DevLXC.create_dns_record(@compliance_fqdn, @server.name, @ipaddress)
|
215
|
+
when 'supermarket'
|
216
|
+
DevLXC.create_dns_record(@supermarket_fqdn, @server.name, @ipaddress)
|
197
217
|
end
|
198
218
|
end
|
199
219
|
@server.sync_mounts(@mounts)
|
@@ -205,7 +225,15 @@ module DevLXC
|
|
205
225
|
@server.start
|
206
226
|
# Allow adhoc servers time to generate SSH Server Host Keys
|
207
227
|
sleep 5 if @server_type == 'adhoc'
|
228
|
+
case @server_type
|
229
|
+
when 'compliance'
|
230
|
+
@server.install_package(@packages["compliance"]) unless @packages["compliance"].nil?
|
231
|
+
when 'supermarket'
|
232
|
+
@server.install_package(@packages["supermarket"]) unless @packages["supermarket"].nil?
|
233
|
+
end
|
208
234
|
configure_analytics if @server_type == 'analytics'
|
235
|
+
configure_compliance if @server_type == 'compliance'
|
236
|
+
configure_supermarket if @server_type == 'supermarket'
|
209
237
|
if @server_type == 'chef-server' && ! @packages["server"].nil?
|
210
238
|
configure_server
|
211
239
|
create_users if @server.name == @chef_server_bootstrap_backend
|
@@ -216,9 +244,6 @@ module DevLXC
|
|
216
244
|
unless @role == 'open-source'
|
217
245
|
configure_reporting unless @packages["reporting"].nil?
|
218
246
|
configure_push_jobs_server unless @packages["push-jobs-server"].nil?
|
219
|
-
if @analytics_bootstrap_backend && %w(standalone backend).include?(@role)
|
220
|
-
configure_chef_server_for_analytics
|
221
|
-
end
|
222
247
|
end
|
223
248
|
end
|
224
249
|
@server.stop
|
@@ -316,29 +341,6 @@ module DevLXC
|
|
316
341
|
run_ctl("opscode-manage", "reconfigure")
|
317
342
|
end
|
318
343
|
|
319
|
-
def configure_chef_server_for_analytics
|
320
|
-
puts "Configuring for Analytics"
|
321
|
-
case @chef_server_type
|
322
|
-
when 'private-chef'
|
323
|
-
DevLXC.append_line_to_file("#{@server.config_item('lxc.rootfs')}/etc/opscode/private-chef.rb",
|
324
|
-
"\noc_id['applications'] = {\n 'analytics' => {\n 'redirect_uri' => 'https://#{@analytics_fqdn}/'\n }\n}\n")
|
325
|
-
|
326
|
-
DevLXC.append_line_to_file("#{@server.config_item('lxc.rootfs')}/etc/opscode/private-chef.rb",
|
327
|
-
"\nrabbitmq['vip'] = '#{@chef_server_bootstrap_backend}'\nrabbitmq['node_ip_address'] = '0.0.0.0'\n")
|
328
|
-
when 'chef-server-core'
|
329
|
-
DevLXC.append_line_to_file("#{@server.config_item('lxc.rootfs')}/etc/opscode/chef-server.rb",
|
330
|
-
"\noc_id['applications'] = {\n 'analytics' => {\n 'redirect_uri' => 'https://#{@analytics_fqdn}/'\n }\n}\n")
|
331
|
-
|
332
|
-
DevLXC.append_line_to_file("#{@server.config_item('lxc.rootfs')}/etc/opscode/chef-server.rb",
|
333
|
-
"\nrabbitmq['vip'] = '#{@chef_server_bootstrap_backend}'\nrabbitmq['node_ip_address'] = '0.0.0.0'\n")
|
334
|
-
end
|
335
|
-
|
336
|
-
run_ctl(@server_ctl, "stop")
|
337
|
-
run_ctl(@server_ctl, "reconfigure")
|
338
|
-
run_ctl(@server_ctl, "restart")
|
339
|
-
run_ctl("opscode-manage", "reconfigure") if @role == 'frontend'
|
340
|
-
end
|
341
|
-
|
342
344
|
def configure_analytics
|
343
345
|
case @role
|
344
346
|
when "standalone", "backend"
|
@@ -355,6 +357,25 @@ module DevLXC
|
|
355
357
|
run_ctl("opscode-analytics", "reconfigure")
|
356
358
|
end
|
357
359
|
|
360
|
+
def configure_compliance
|
361
|
+
run_ctl("chef-compliance", "reconfigure")
|
362
|
+
end
|
363
|
+
|
364
|
+
def configure_supermarket
|
365
|
+
if @chef_server_bootstrap_backend && DevLXC::Container.new(@chef_server_bootstrap_backend, @lxc_config_path).defined?
|
366
|
+
chef_server_supermarket_config = JSON.parse(IO.read("#{LXC::Container.new(@chef_server_bootstrap_backend, @lxc_config_path).config_item('lxc.rootfs')}/etc/opscode/oc-id-applications/supermarket.json"))
|
367
|
+
supermarket_config = {
|
368
|
+
'chef_server_url' => "https://#{@api_fqdn}/",
|
369
|
+
'chef_oauth2_app_id' => chef_server_supermarket_config['uid'],
|
370
|
+
'chef_oauth2_secret' => chef_server_supermarket_config['secret'],
|
371
|
+
'chef_oauth2_verify_ssl' => false
|
372
|
+
}
|
373
|
+
FileUtils.mkdir_p("#{@server.config_item('lxc.rootfs')}/etc/supermarket")
|
374
|
+
IO.write("#{@server.config_item('lxc.rootfs')}/etc/supermarket/supermarket.json", JSON.pretty_generate(supermarket_config))
|
375
|
+
end
|
376
|
+
run_ctl("supermarket", "reconfigure")
|
377
|
+
end
|
378
|
+
|
358
379
|
def run_ctl(component, subcommand)
|
359
380
|
puts "Running `#{component}-ctl #{subcommand}` in '#{@server.name}'"
|
360
381
|
@server.run_command("#{component}-ctl #{subcommand}")
|
@@ -367,15 +388,16 @@ module DevLXC
|
|
367
388
|
case @chef_server_type
|
368
389
|
when 'chef-server'
|
369
390
|
chef_server_url = "https://127.0.0.1"
|
370
|
-
|
391
|
+
admin_username = "admin"
|
371
392
|
validator_name = "chef-validator"
|
372
393
|
|
373
394
|
FileUtils.cp( Dir.glob("#{@server.config_item('lxc.rootfs')}/etc/chef-server/{admin,chef-validator}.pem"), "#{@server.config_item('lxc.rootfs')}/root/chef-repo/.chef" )
|
374
395
|
when 'private-chef', 'chef-server-core'
|
375
396
|
chef_server_root = "https://127.0.0.1"
|
376
|
-
chef_server_url = "https://127.0.0.1/organizations/
|
377
|
-
|
378
|
-
|
397
|
+
chef_server_url = "https://127.0.0.1/organizations/demo"
|
398
|
+
admin_username = "mary-admin"
|
399
|
+
username = "joe-user"
|
400
|
+
validator_name = "demo-validator"
|
379
401
|
|
380
402
|
FileUtils.cp( "#{@server.config_item('lxc.rootfs')}/etc/opscode/pivotal.pem", "#{@server.config_item('lxc.rootfs')}/root/chef-repo/.chef" )
|
381
403
|
|
@@ -401,9 +423,16 @@ current_dir = File.dirname(__FILE__)
|
|
401
423
|
|
402
424
|
chef_server_url "#{chef_server_url}"
|
403
425
|
|
404
|
-
node_name "#{
|
405
|
-
client_key "\#{current_dir}/#{
|
426
|
+
node_name "#{admin_username}"
|
427
|
+
client_key "\#{current_dir}/#{admin_username}.pem"
|
428
|
+
)
|
429
|
+
|
430
|
+
knife_rb += %Q(
|
431
|
+
#node_name "#{username}"
|
432
|
+
#client_key "\#{current_dir}/#{username}.pem"
|
433
|
+
) unless username.nil?
|
406
434
|
|
435
|
+
knife_rb += %Q(
|
407
436
|
validation_client_name "#{validator_name}"
|
408
437
|
validation_key "\#{current_dir}/#{validator_name}.pem"
|
409
438
|
|
@@ -419,15 +448,19 @@ ssl_verify_mode :verify_none
|
|
419
448
|
# give time for all services to come up completely
|
420
449
|
sleep 60
|
421
450
|
@server.run_command("/opt/opscode/embedded/bin/gem install knife-opc --no-ri --no-rdoc")
|
422
|
-
@server.run_command("/opt/opscode/embedded/bin/knife opc org create
|
423
|
-
@server.run_command("/opt/opscode/embedded/bin/knife opc user create
|
424
|
-
@server.run_command("/opt/opscode/embedded/bin/knife opc org user add
|
451
|
+
@server.run_command("/opt/opscode/embedded/bin/knife opc org create demo demo --filename /root/chef-repo/.chef/demo-validator.pem -c /root/chef-repo/.chef/pivotal.rb")
|
452
|
+
@server.run_command("/opt/opscode/embedded/bin/knife opc user create mary-admin mary admin mary-admin@noreply.com mary-admin --filename /root/chef-repo/.chef/mary-admin.pem -c /root/chef-repo/.chef/pivotal.rb")
|
453
|
+
@server.run_command("/opt/opscode/embedded/bin/knife opc org user add demo mary-admin --admin -c /root/chef-repo/.chef/pivotal.rb")
|
454
|
+
@server.run_command("/opt/opscode/embedded/bin/knife opc user create joe-user joe user joe-user@noreply.com joe-user --filename /root/chef-repo/.chef/joe-user.pem -c /root/chef-repo/.chef/pivotal.rb")
|
455
|
+
@server.run_command("/opt/opscode/embedded/bin/knife opc org user add demo joe-user -c /root/chef-repo/.chef/pivotal.rb")
|
425
456
|
when 'chef-server-core'
|
426
457
|
# give time for all services to come up completely
|
427
458
|
sleep 10
|
428
|
-
run_ctl(@server_ctl, "org-create
|
429
|
-
run_ctl(@server_ctl, "user-create
|
430
|
-
run_ctl(@server_ctl, "org-user-add
|
459
|
+
run_ctl(@server_ctl, "org-create demo demo --filename /root/chef-repo/.chef/demo-validator.pem")
|
460
|
+
run_ctl(@server_ctl, "user-create mary-admin mary admin mary-admin@noreply.com mary-admin --filename /root/chef-repo/.chef/mary-admin.pem")
|
461
|
+
run_ctl(@server_ctl, "org-user-add demo mary-admin --admin")
|
462
|
+
run_ctl(@server_ctl, "user-create joe-user joe user joe-user@noreply.com joe-user --filename /root/chef-repo/.chef/joe-user.pem")
|
463
|
+
run_ctl(@server_ctl, "org-user-add demo joe-user")
|
431
464
|
end
|
432
465
|
end
|
433
466
|
end
|
data/lib/dev-lxc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dev-lxc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremiah Snapp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -82,10 +82,6 @@ files:
|
|
82
82
|
- Rakefile
|
83
83
|
- bin/dev-lxc
|
84
84
|
- dev-lxc.gemspec
|
85
|
-
- files/configs/adhoc.yml
|
86
|
-
- files/configs/open-source.yml
|
87
|
-
- files/configs/standalone.yml
|
88
|
-
- files/configs/tier.yml
|
89
85
|
- lib/dev-lxc.rb
|
90
86
|
- lib/dev-lxc/cli.rb
|
91
87
|
- lib/dev-lxc/cluster.rb
|
data/files/configs/adhoc.yml
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
## platform_image can be one of the following:
|
2
|
-
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
|
-
|
4
|
-
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
-
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
-
## for example:
|
7
|
-
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
-
|
9
|
-
## Make sure a mount's source directory exists in the LXC host
|
10
|
-
|
11
|
-
## Make sure a package's path is correct
|
12
|
-
|
13
|
-
## All FQDNs and server names must end with the `.lxc` domain
|
14
|
-
|
15
|
-
## DHCP reserved (static) IPs must be selected from the IP range 10.0.3.150 - 254
|
16
|
-
|
17
|
-
## topology can be one of the following:
|
18
|
-
## standalone, tier or open-source (for the old open source 11 chef server)
|
19
|
-
|
20
|
-
adhoc:
|
21
|
-
platform_image: p-ubuntu-1404
|
22
|
-
mounts:
|
23
|
-
- /root/dev root/dev
|
24
|
-
|
25
|
-
servers:
|
26
|
-
chef.lxc:
|
27
|
-
ipaddress: 10.0.3.210
|
28
|
-
delivery.lxc:
|
29
|
-
ipaddress: 10.0.3.211
|
30
|
-
build-1.lxc:
|
31
|
-
ipaddress: 10.0.3.212
|
@@ -1,31 +0,0 @@
|
|
1
|
-
## platform_image can be one of the following:
|
2
|
-
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
|
-
|
4
|
-
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
-
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
-
## for example:
|
7
|
-
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
-
|
9
|
-
## Make sure a mount's source directory exists in the LXC host
|
10
|
-
|
11
|
-
## Make sure a package's path is correct
|
12
|
-
|
13
|
-
## All FQDNs and server names must end with the `.lxc` domain
|
14
|
-
|
15
|
-
## DHCP reserved (static) IPs must be selected from the IP range 10.0.3.150 - 254
|
16
|
-
|
17
|
-
## topology can be one of the following:
|
18
|
-
## standalone, tier or open-source (for the old open source 11 chef server)
|
19
|
-
|
20
|
-
chef-server:
|
21
|
-
platform_image: p-ubuntu-1204
|
22
|
-
mounts:
|
23
|
-
- /root/dev root/dev
|
24
|
-
packages:
|
25
|
-
server: /root/dev/chef-packages/osc/chef-server_11.1.6-1_amd64.deb
|
26
|
-
|
27
|
-
api_fqdn: chef.lxc
|
28
|
-
topology: open-source
|
29
|
-
servers:
|
30
|
-
osc-chef.lxc:
|
31
|
-
ipaddress: 10.0.3.199
|
@@ -1,47 +0,0 @@
|
|
1
|
-
## platform_image can be one of the following:
|
2
|
-
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
|
-
|
4
|
-
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
-
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
-
## for example:
|
7
|
-
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
-
|
9
|
-
## Make sure a mount's source directory exists in the LXC host
|
10
|
-
|
11
|
-
## Make sure a package's path is correct
|
12
|
-
|
13
|
-
## All FQDNs and server names must end with the `.lxc` domain
|
14
|
-
|
15
|
-
## DHCP reserved (static) IPs must be selected from the IP range 10.0.3.150 - 254
|
16
|
-
|
17
|
-
## topology can be one of the following:
|
18
|
-
## standalone, tier or open-source (for the old open source 11 chef server)
|
19
|
-
|
20
|
-
chef-server:
|
21
|
-
platform_image: p-ubuntu-1404
|
22
|
-
mounts:
|
23
|
-
- /root/dev root/dev
|
24
|
-
packages:
|
25
|
-
server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
|
26
|
-
manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
|
27
|
-
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
|
28
|
-
# push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
|
29
|
-
|
30
|
-
api_fqdn: chef.lxc
|
31
|
-
topology: standalone
|
32
|
-
servers:
|
33
|
-
chef.lxc:
|
34
|
-
ipaddress: 10.0.3.201
|
35
|
-
|
36
|
-
analytics:
|
37
|
-
platform_image: p-ubuntu-1404
|
38
|
-
mounts:
|
39
|
-
- /root/dev root/dev
|
40
|
-
packages:
|
41
|
-
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
|
42
|
-
|
43
|
-
analytics_fqdn: analytics.lxc
|
44
|
-
topology: standalone
|
45
|
-
servers:
|
46
|
-
analytics.lxc:
|
47
|
-
ipaddress: 10.0.3.202
|
data/files/configs/tier.yml
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
## platform_image can be one of the following:
|
2
|
-
## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
|
3
|
-
|
4
|
-
## platform_image_options can be set to provide additional arguments to the LXC create command.
|
5
|
-
## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
|
6
|
-
## for example:
|
7
|
-
## platform_image_options: --no-validate --keyserver http://my.key.server.com
|
8
|
-
|
9
|
-
## Make sure a mount's source directory exists in the LXC host
|
10
|
-
|
11
|
-
## Make sure a package's path is correct
|
12
|
-
|
13
|
-
## All FQDNs and server names must end with the `.lxc` domain
|
14
|
-
|
15
|
-
## DHCP reserved (static) IPs must be selected from the IP range 10.0.3.150 - 254
|
16
|
-
|
17
|
-
## topology can be one of the following:
|
18
|
-
## standalone, tier or open-source (for the old open source 11 chef server)
|
19
|
-
|
20
|
-
chef-server:
|
21
|
-
platform_image: p-ubuntu-1404
|
22
|
-
mounts:
|
23
|
-
- /root/dev root/dev
|
24
|
-
packages:
|
25
|
-
server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
|
26
|
-
manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
|
27
|
-
# reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
|
28
|
-
# push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
|
29
|
-
|
30
|
-
api_fqdn: chef.lxc
|
31
|
-
topology: tier
|
32
|
-
servers:
|
33
|
-
chef-be.lxc:
|
34
|
-
role: backend
|
35
|
-
ipaddress: 10.0.3.203
|
36
|
-
bootstrap: true
|
37
|
-
chef-fe1.lxc:
|
38
|
-
role: frontend
|
39
|
-
ipaddress: 10.0.3.204
|
40
|
-
# chef-fe2.lxc:
|
41
|
-
# role: frontend
|
42
|
-
# ipaddress: 10.0.3.205
|
43
|
-
|
44
|
-
analytics:
|
45
|
-
platform_image: p-ubuntu-1404
|
46
|
-
mounts:
|
47
|
-
- /root/dev root/dev
|
48
|
-
packages:
|
49
|
-
analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
|
50
|
-
|
51
|
-
analytics_fqdn: analytics.lxc
|
52
|
-
topology: tier
|
53
|
-
servers:
|
54
|
-
analytics-be.lxc:
|
55
|
-
role: backend
|
56
|
-
ipaddress: 10.0.3.206
|
57
|
-
bootstrap: true
|
58
|
-
analytics-fe1.lxc:
|
59
|
-
role: frontend
|
60
|
-
ipaddress: 10.0.3.207
|
61
|
-
# analytics-fe2.lxc:
|
62
|
-
# role: frontend
|
63
|
-
# ipaddress: 10.0.3.208
|