inital commit

This commit is contained in:
2013-07-12 23:21:10 -04:00
parent f742757cf7
commit e708ee0210
8 changed files with 280 additions and 0 deletions

1
.vagrant.v1.1373639075 Normal file
View File

@@ -0,0 +1 @@
{"active":{"master":"d823bfc9-ef9e-44fc-a85e-78dfebeb26f3","controller":"66baa24c-0474-42d0-9880-89b4bb9a24cc","compute1":"af5beec5-26a5-43c6-8473-ad6f54b1fc5a"}}

View File

@@ -0,0 +1 @@
27bb383d-c4f5-4943-a459-5cd5ecf2f6c3

View File

@@ -0,0 +1 @@
bfcdeb20-d7cb-45f4-8fc4-394378ea1c78

View File

@@ -0,0 +1 @@
ff2024ca-2e17-4988-93a3-eb3885c64872

48
Vagrantfile vendored Normal file
View File

@@ -0,0 +1,48 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "Centos64Puppet"
config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210.box"
config.vm.define :puppet do |puppet_config|
puppet_config.vm.host_name = "puppet.vagrant.info"
puppet_config.vm.network :hostonly, "192.168.33.10" #eth1 MGMT
end
config.vm.define :controller do |controller_config|
controller_config.vm.host_name = "controller.vagrant.info"
controller_config.vm.network :hostonly, "192.168.33.11" #eth1 MGMT
controller_config.vm.network :hostonly, "10.0.1.11" #eth2 VM Traffic
controller_config.vm.network :hostonly, "10.0.2.11" #eth3 floating
controller_config.vm.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"] # eth3
controller_config.vm.provision :shell, :inline => "ip link set mtu 1546 dev eth2"
controller_config.vm.forward_port 80, 8080
end
config.vm.define :compute1 do |compute1_config|
compute1_config.vm.host_name = "compute1.vagrant.info"
compute1_config.vm.network :hostonly, "192.168.33.12" #eth1 MGMT
compute1_config.vm.network :hostonly, "10.0.1.12"
compute1_config.vm.provision :shell, :inline => "ip link set mtu 1546 dev eth2"
compute1_config.vm.customize ["modifyvm", :id, "--memory", 2048]
compute1_config.vm.customize ["modifyvm", :id, "--cpus", 4]
end
config.vm.boot_mode = :headless
config.vm.provision :puppet do |puppet|
puppet.manifests_path = "manifests"
puppet.module_path = "modules"
puppet.manifest_file = "site.pp"
puppet.options = "--verbose --debug"
end
end

70
Vagrantfile.save Normal file
View File

@@ -0,0 +1,70 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "Centos64Puppet"
config.vm.define :master do |master_config|
master_config.vm.host_name = "master.vagrant.info"
master_config.vm.network :hostonly, "192.168.33.10" # Enable provisioning with chef solo, specifying a cookbooks path, roles
# path, and data_bags path (all relative to this Vagrantfile), and adding
# some recipes and/or roles.
#
# config.vm.provision :chef_solo do |chef|
# chef.cookbooks_path = "../my-recipes/cookbooks"
# chef.roles_path = "../my-recipes/roles"
# chef.data_bags_path = "../my-recipes/data_bags"
# chef.add_recipe "mysql"
# chef.add_role "web"
#
# # You may also specify custom JSON attributes:
# chef.json = { :mysql_password => "foo" }
# end
# Enable provisioning with chef server, specifying the chef server URL,
# and the path to the validation key (relative to this Vagrantfile).
#
# The Opscode Platform uses HTTPS. Substitute your organization for
# ORGNAME in the URL and validation key.
#
# If you have your own Chef Server, use the appropriate URL, which may be
# HTTP instead of HTTPS depending on your configuration. Also change the
# validation key to validation.pem.
#
# config.vm.provision :chef_client do |chef|
# chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
# chef.validation_key_path = "ORGNAME-validator.pem"
# end
#
# If you're using the Opscode platform, your validator client is
# ORGNAME-validator, replacing ORGNAME with your organization name.
#
# IF you have your own Chef Server, the default validation client name is
# chef-validator, unless you changed the configuration.
#
# chef.validation_client_name = "ORGNAME-validator"
end
config.vm.define :client do |client_config|
client_config.vm.host_name = "client.vagrant.info"
client_config.vm.network :hostonly, "192.168.33.11"
client_config.vm.forward_port 80, 8080
end
config.vm.boot_mode = :headless
# config.vm.provision :puppet do |puppet|
# puppet.manifests_path = "manifests"
# puppet.manifest_file = "site.pp"
# puppet.options = "--verbose --debug"
#
# end
end

157
manifests/site.pp Normal file
View File

@@ -0,0 +1,157 @@
node puppet {
#ensure git is installed
package { 'puppetlabs-release-6-7':
provider => 'rpm',
ensure => installed,
source => "http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-7.noarch.rpm";
'git':
ensure => 'present';
'puppet-server':
require => Package["puppetlabs-release-6-7"],
ensure => 'present';
'rubygem-rake':
ensure => 'present';
}
vcsrepo { '/etc/puppet/modules/openstack':
require => Package["puppet-server"],
ensure => latest,
provider => git,
source => 'https://sstent:farscape5@github.com/stratustech/puppet-openstack.git',
notify => File["/etc/puppet/modules/openstack"];
'/etc/puppet/manifests':
require => [Package["puppet-server"],File['/etc/puppet/manifests']],
ensure => latest,
provider => git,
source => 'https://sstent:farscape5@github.com/stratustech/POC_ALPHA.git';
'/etc/puppet/modules/rabbitmq':
require => Package["puppet-server"],
ensure => latest,
provider => git,
source => 'https://github.com/gergnz/puppetlabs-rabbitmq.git';
'/etc/puppet/modules/horizon':
require => Package["puppet-server"],
ensure => latest,
provider => git,
source => 'https://sstent:farscape5@github.com/stratustech/puppet-horizon.git';
}
file { "/etc/puppet/modules/openstack":
require => Package["puppet-server"],
ensure => "directory",
owner => "root",
group => "root",
mode => 755,
recurse => true,
notify => Exec["sudo rake modules:clone"];
"/etc/puppet/manifests":
require => Package["puppet-server"],
before => Vcsrepo['/etc/puppet/manifests'],
force => true,
backup => false,
ensure => "absent";
"/etc/puppet/autosign.conf":
require => Package["puppet-server"],
owner => "root",
group => "root",
mode => 0644,
content => "*";
}
exec {"sudo rake modules:clone":
require => [Package["rubygem-rake"],Vcsrepo['/etc/puppet/modules/horizon','/etc/puppet/modules/rabbitmq','/etc/puppet/manifests','/etc/puppet/modules/openstack']],
cwd => "/etc/puppet/modules/openstack",
path => ["/usr/local/bin","/bin","/usr/bin","/usr/local/sbin","/usr/sbin","/sbin","/home/vagrant/bin"];
}
service { "iptables":
ensure => "stopped",
enable => false;
"puppetmaster":
require => [File["/etc/puppet/autosign.conf"],Exec["sudo rake modules:clone"]],
ensure => "running",
enable => true;
}
host { 'controller.vagrant.info':
ip => '192.168.33.11',
host_aliases => 'controller';
'compute1.vagrant.info':
ip => '192.168.33.12',
host_aliases => 'compute1';
}
}
node controller {
#ensure git is installed
package { 'puppetlabs-release-6-7':
provider => 'rpm',
ensure => installed,
source => "http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-7.noarch.rpm";
'puppet':
require => Package["puppetlabs-release-6-7"],
ensure => 'present';
}
service { "iptables":
ensure => "stopped",
enable => false;
"puppet":
require => Package["puppet"],
ensure => "running",
enable => true;
}
host { 'puppet.vagrant.info':
ip => '192.168.33.10',
host_aliases => 'puppet';
'compute1.vagrant.info':
ip => '192.168.33.12',
host_aliases => 'compute1';
}
}
node compute1 {
#ensure git is installed
package { 'puppetlabs-release-6-7':
provider => 'rpm',
ensure => installed,
source => "http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-7.noarch.rpm";
'puppet':
require => Package["puppetlabs-release-6-7"],
ensure => 'present';
}
service { "puppet":
require => Package["puppet"],
ensure => "running",
enable => true;
}
host { 'puppet.vagrant.info':
ip => '192.168.33.10',
host_aliases => 'puppet';
'controller.vagrant.info':
ip => '192.168.33.11',
host_aliases => 'controller';
}
}

1
modules/vcsrepo Submodule

Submodule modules/vcsrepo added at 2c81045b53