oscar 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +11 -0
- data/README.markdown +112 -3
- data/lib/oscar/command/init.rb +5 -0
- data/lib/oscar/command/init_vms.rb +40 -22
- data/lib/oscar/version.rb +1 -1
- data/oscar.gemspec +1 -1
- data/templates/locales/en.yml +8 -0
- data/templates/oscar-init-skeleton/Vagrantfile +1 -0
- data/templates/oscar-init-skeleton/virtualbox/roles.yaml +2 -2
- metadata +4 -5
data/CHANGELOG
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
=========
|
3
3
|
|
4
|
+
0.3.1
|
5
|
+
-----
|
6
|
+
|
7
|
+
2013-09-11
|
8
|
+
|
9
|
+
This is a backwards compatible bugfix release.
|
10
|
+
|
11
|
+
* Improvements to command line interface, messages, and help options
|
12
|
+
* Updated README to be vaguely helpful
|
13
|
+
* Update 'roles' template to behave with auto_network and vagrant 1.2.7+
|
14
|
+
|
4
15
|
0.3.0
|
5
16
|
-----
|
6
17
|
|
data/README.markdown
CHANGED
@@ -1,10 +1,119 @@
|
|
1
1
|
Oscar
|
2
2
|
=====
|
3
3
|
|
4
|
-
Oscar
|
4
|
+
Oscar is a set of Vagrant plugins and templates that build up a full Puppet
|
5
|
+
Enterprise environment based on top of Vagrant.
|
6
|
+
|
7
|
+
Synopsis
|
8
|
+
--------
|
9
|
+
|
10
|
+
Initialize the base Oscar environment:
|
11
|
+
|
12
|
+
└> vagrant oscar init
|
13
|
+
A stub Vagrantfile has been placed in this directory and default configurations
|
14
|
+
have been placed into the `config` directory. You can now run `vagrant up` to start
|
15
|
+
your Oscar built environment, courtesy of Vagrant.
|
16
|
+
|
17
|
+
Define a set of VMs:
|
18
|
+
|
19
|
+
└> vagrant oscar init-vms \
|
20
|
+
--master master=centos-64-x64-vbox4210-nocm \
|
21
|
+
--agent first=centos-59-x64-vbox4210-nocm \
|
22
|
+
--agent second=ubuntu-server-10044-x64-vbox4210-nocm
|
23
|
+
Your environment has been initialized with the following configuration:
|
24
|
+
masters:
|
25
|
+
- ["master", "centos-64-x64-vbox4210-nocm"]
|
26
|
+
agents:
|
27
|
+
- ["first", "centos-59-x64-vbox4210-nocm"]
|
28
|
+
- ["second", "ubuntu-server-10044-x64-vbox4210-nocm"]
|
29
|
+
pe_version: 3.0.1
|
30
|
+
|
31
|
+
And build everything:
|
32
|
+
|
33
|
+
└> vagrant up
|
34
|
+
Bringing machine 'master' up with 'virtualbox' provider...
|
35
|
+
Bringing machine 'first' up with 'virtualbox' provider...
|
36
|
+
Bringing machine 'second' up with 'virtualbox' provider...
|
37
|
+
[... normal `vagrant up` goes here ...]
|
38
|
+
|
39
|
+
Commands
|
40
|
+
--------
|
41
|
+
|
42
|
+
Oscar provides a set commands to generate a working environment from templates.
|
43
|
+
|
44
|
+
### `vagrant oscar init`
|
45
|
+
|
46
|
+
This command initializes the current working directory with a stub Vagrantfile
|
47
|
+
that loads Oscar, and generates generic configuration information for use with
|
48
|
+
PE.
|
49
|
+
|
50
|
+
### `vagrant oscar init-vms`
|
51
|
+
|
52
|
+
This command generates a set of guest machines inside of the vagrant
|
53
|
+
environment.
|
54
|
+
|
55
|
+
Configuring
|
56
|
+
-----------
|
57
|
+
|
58
|
+
Oscar handles guest machine configuration with YAML.
|
59
|
+
|
60
|
+
The default configuration looks something like this:
|
61
|
+
|
62
|
+
### `config/boxes.yaml`
|
63
|
+
|
64
|
+
---
|
65
|
+
# Boxes from http://puppet-vagrant-boxes.puppetlabs.com/
|
66
|
+
# Updated: 2013-08-08
|
67
|
+
boxes:
|
68
|
+
'fedora-18-x64-vbox4210-nocm': 'http://puppet-vagrant-boxes.puppetlabs.com/fedora-18-x64-vbox4210-nocm.box'
|
69
|
+
'centos-64-x64-vbox4210-nocm': 'http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box'
|
70
|
+
'centos-59-x64-vbox4210-nocm': 'http://puppet-vagrant-boxes.puppetlabs.com/centos-59-x64-vbox4210-nocm.box'
|
71
|
+
[...]
|
72
|
+
|
73
|
+
### `config/roles.yaml`
|
74
|
+
|
75
|
+
---
|
76
|
+
roles:
|
77
|
+
pe-puppet-master:
|
78
|
+
private_networks:
|
79
|
+
- {auto_network: true}
|
80
|
+
provider:
|
81
|
+
type: virtualbox
|
82
|
+
customize:
|
83
|
+
- [modifyvm, !ruby/sym id, '--memory', 1024]
|
84
|
+
provisioners:
|
85
|
+
- {type: hosts}
|
86
|
+
- {type: pe_bootstrap, role: !ruby/sym master}
|
87
|
+
[...]
|
88
|
+
|
89
|
+
### `config/pe_build.yaml`
|
90
|
+
|
91
|
+
---
|
92
|
+
pe_build:
|
93
|
+
version: 3.0.0
|
94
|
+
|
95
|
+
### `config/vms.yaml`
|
96
|
+
|
97
|
+
---
|
98
|
+
vms:
|
99
|
+
- name: master
|
100
|
+
box: centos-6-i386
|
101
|
+
roles:
|
102
|
+
- pe-puppet-master
|
103
|
+
- name: agent
|
104
|
+
box: debian-6-i386
|
105
|
+
roles:
|
106
|
+
- pe-puppet-agent
|
107
|
+
|
108
|
+
Oscar uses `vagrant-config_builder` to handle guest machine configuration.
|
5
109
|
|
6
110
|
Installation
|
7
111
|
------------
|
8
112
|
|
9
|
-
|
10
|
-
|
113
|
+
$ vagrant plugin install oscar
|
114
|
+
|
115
|
+
Requirements
|
116
|
+
------------
|
117
|
+
|
118
|
+
The plugins used in Oscar require the Vagrant 1.1 plugin API, so Vagrant 1.1+ is
|
119
|
+
required.
|
data/lib/oscar/command/init.rb
CHANGED
@@ -33,6 +33,11 @@ class Oscar::Command::Init < Vagrant.plugin('2', :command)
|
|
33
33
|
o.on('-p', '--provider=val', String, 'The Vagrant provider type to template') do |val|
|
34
34
|
@provider = val
|
35
35
|
end
|
36
|
+
|
37
|
+
o.on('-h', '--help', 'Display this help message') do
|
38
|
+
puts o
|
39
|
+
exit 0
|
40
|
+
end
|
36
41
|
end
|
37
42
|
end
|
38
43
|
end
|
@@ -12,7 +12,9 @@ class Oscar::Command::InitVMs < Vagrant.plugin('2', :command)
|
|
12
12
|
|
13
13
|
@masters = []
|
14
14
|
@agents = []
|
15
|
-
|
15
|
+
|
16
|
+
require 'pe_build/release'
|
17
|
+
@pe_version = PEBuild::Release::LATEST_VERSION
|
16
18
|
|
17
19
|
split_argv
|
18
20
|
end
|
@@ -20,22 +22,16 @@ class Oscar::Command::InitVMs < Vagrant.plugin('2', :command)
|
|
20
22
|
def execute
|
21
23
|
argv = parse_options(parser)
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
-
vm_config_file = config_dir + 'vms.yaml'
|
26
|
-
pe_config_file = config_dir + 'pe_build.yaml'
|
27
|
-
|
28
|
-
config_dir.mkpath unless config_dir.exist?
|
25
|
+
write_configs
|
29
26
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
27
|
+
@env.ui.info(
|
28
|
+
I18n.t(
|
29
|
+
'oscar.command.init_vms.settings',
|
30
|
+
:masters => @masters.map { |m| " - #{m}" }.join("\n"),
|
31
|
+
:agents => @agents.map { |m| " - #{m}" }.join("\n"),
|
32
|
+
:pe_version => @pe_version,
|
33
|
+
)
|
34
|
+
)
|
39
35
|
end
|
40
36
|
|
41
37
|
private
|
@@ -58,24 +54,46 @@ class Oscar::Command::InitVMs < Vagrant.plugin('2', :command)
|
|
58
54
|
o.on('-p', '--pe-version=val', String, 'The PE version to install on the VMs') do |val|
|
59
55
|
@pe_version = val
|
60
56
|
end
|
57
|
+
|
58
|
+
o.on('-h', '--help', 'Display this help message') do
|
59
|
+
puts o
|
60
|
+
exit 0
|
61
|
+
end
|
61
62
|
end
|
62
63
|
end
|
63
64
|
|
64
|
-
def
|
65
|
-
|
65
|
+
def write_configs
|
66
|
+
config_dir = Pathname.new(File.join(Dir.getwd, 'config'))
|
67
|
+
|
68
|
+
vm_config_file = config_dir + 'vms.yaml'
|
69
|
+
pe_config_file = config_dir + 'pe_build.yaml'
|
66
70
|
|
71
|
+
config_dir.mkpath unless config_dir.exist?
|
67
72
|
|
73
|
+
vm_config_file.open('w') do |fh|
|
74
|
+
yaml = YAML.dump vms
|
75
|
+
fh.write(yaml)
|
76
|
+
end
|
77
|
+
|
78
|
+
pe_config_file.open('w') do |fh|
|
79
|
+
yaml = YAML.dump pe_build
|
80
|
+
fh.write(yaml)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def vms
|
85
|
+
vm_list = []
|
68
86
|
|
69
|
-
|
70
|
-
{
|
87
|
+
@masters.each do |(name, box)|
|
88
|
+
vm_list << {
|
71
89
|
'name' => name,
|
72
90
|
'box' => box,
|
73
91
|
'roles' => ['pe-puppet-master']
|
74
92
|
}
|
75
93
|
end
|
76
94
|
|
77
|
-
|
78
|
-
{
|
95
|
+
@agents.each do |(name, box)|
|
96
|
+
vm_list << {
|
79
97
|
'name' => name,
|
80
98
|
'box' => box,
|
81
99
|
'roles' => ['pe-puppet-agent']
|
data/lib/oscar/version.rb
CHANGED
data/oscar.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.homepage = 'https://github.com/adrienthebo/oscar'
|
19
19
|
|
20
20
|
gem.add_dependency 'vagrant-hosts', '>= 1.1.2'
|
21
|
-
gem.add_dependency 'vagrant-pe_build', '>= 0.
|
21
|
+
gem.add_dependency 'vagrant-pe_build', '>= 0.4.2'
|
22
22
|
gem.add_dependency 'vagrant-auto_network', '>= 0.2.0'
|
23
23
|
gem.add_dependency 'vagrant-config_builder', '>= 0.1.0'
|
24
24
|
|
data/templates/locales/en.yml
CHANGED
@@ -7,3 +7,11 @@ en:
|
|
7
7
|
A stub Vagrantfile has been placed in this directory and default configurations
|
8
8
|
have been placed into the `config` directory. You can now run `vagrant up` to start
|
9
9
|
your Oscar built environment, courtesy of Vagrant.
|
10
|
+
init_vms:
|
11
|
+
settings: |-
|
12
|
+
Your environment has been initialized with the following configuration:
|
13
|
+
masters:
|
14
|
+
%{masters}
|
15
|
+
agents:
|
16
|
+
%{agents}
|
17
|
+
pe_version: %{pe_version}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
roles:
|
3
3
|
pe-puppet-master:
|
4
4
|
private_networks:
|
5
|
-
- {auto_network: true}
|
5
|
+
- {ip: '0.0.0.0', auto_network: true}
|
6
6
|
provider:
|
7
7
|
type: virtualbox
|
8
8
|
customize:
|
@@ -13,7 +13,7 @@ roles:
|
|
13
13
|
|
14
14
|
pe-puppet-agent:
|
15
15
|
private_networks:
|
16
|
-
- {auto_network: true}
|
16
|
+
- {ip: '0.0.0.0', auto_network: true}
|
17
17
|
provisioners:
|
18
18
|
- {type: hosts}
|
19
19
|
- {type: pe_bootstrap}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oscar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: vagrant-hosts
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.
|
37
|
+
version: 0.4.2
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
45
|
+
version: 0.4.2
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: vagrant-auto_network
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,7 +88,6 @@ files:
|
|
88
88
|
- Gemfile
|
89
89
|
- LICENSE
|
90
90
|
- README.markdown
|
91
|
-
- config/.gitignore
|
92
91
|
- lib/oscar.rb
|
93
92
|
- lib/oscar/command.rb
|
94
93
|
- lib/oscar/command/helpers.rb
|