Merge pull request #9 from bodepd/feature/master/add_build_files
Feature/master/add build files
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,3 +4,4 @@ facter
|
|||||||
puppet
|
puppet
|
||||||
bashrc
|
bashrc
|
||||||
.vagrant
|
.vagrant
|
||||||
|
graphs/*
|
||||||
|
77
Rakefile
Normal file
77
Rakefile
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
require 'vagrant'
|
||||||
|
|
||||||
|
env=Vagrant::Environment.new(:cwd => File.dirname(__FILE__))
|
||||||
|
# this captures the regular output to stdout
|
||||||
|
env.ui = Vagrant::UI::Shell.new(env, Thor::Base.shell.new)
|
||||||
|
env.load!
|
||||||
|
|
||||||
|
# all of the instance to build out for multi-node
|
||||||
|
instances = [
|
||||||
|
:db,
|
||||||
|
:rabbitmq,
|
||||||
|
:glance,
|
||||||
|
:controller,
|
||||||
|
:compute
|
||||||
|
]
|
||||||
|
|
||||||
|
namespace :build do
|
||||||
|
desc 'build out 5 node openstack cluster'
|
||||||
|
task :multi do
|
||||||
|
instance.each do |instance|
|
||||||
|
build(instance, env)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
desc 'build out openstack on one node'
|
||||||
|
task :all do
|
||||||
|
build(:all, env)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# bring vagrant vm with image name up
|
||||||
|
def build(instance, env)
|
||||||
|
unless vm = env.vms[instance]
|
||||||
|
puts "invalid VM: #{instance}"
|
||||||
|
else
|
||||||
|
if vm.created?
|
||||||
|
puts "VM: #{instance} was already created"
|
||||||
|
else
|
||||||
|
# be very fault tolerant :)
|
||||||
|
begin
|
||||||
|
# this will always fail
|
||||||
|
vm.up(:provision => true)
|
||||||
|
rescue Exception => e
|
||||||
|
puts e.class
|
||||||
|
puts e
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
namespace :test do
|
||||||
|
desc 'test multi-node installation'
|
||||||
|
task :multi do
|
||||||
|
{:glance => ['sudo /vagrant/ext/glance.sh'],
|
||||||
|
:controller => ['sudo /vagrant/ext/nova.sh'],
|
||||||
|
}.each do |instance, commands|
|
||||||
|
test(instance, commands, env)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
desc 'test single node installation'
|
||||||
|
task :all do
|
||||||
|
test(:all, ['sudo /vagrant/ext/glance.sh', 'sudo /vagrant/ext/nova.sh'], env)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test(instance, commands, env)
|
||||||
|
unless vm = env.vms[instance]
|
||||||
|
puts "invalid VM: #{instance}"
|
||||||
|
else
|
||||||
|
puts "testing :#{instance}"
|
||||||
|
vm.ssh.execute do |ssh|
|
||||||
|
commands.each do |c|
|
||||||
|
#puts ssh.methods - Object.methods
|
||||||
|
puts ssh.exec!(c)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
8
Vagrantfile
vendored
8
Vagrantfile
vendored
@@ -27,10 +27,10 @@ Vagrant::Config.run do |config|
|
|||||||
pm.vm.forward_port('ssh', 22, ssh_forward, :auto => true)
|
pm.vm.forward_port('ssh', 22, ssh_forward, :auto => true)
|
||||||
# hard-coding this b/c it is important
|
# hard-coding this b/c it is important
|
||||||
pm.vm.network("#{net_base}.10")
|
pm.vm.network("#{net_base}.10")
|
||||||
pm.vm.provision :puppet do |puppet|
|
#pm.vm.provision :puppet do |puppet|
|
||||||
puppet.manifest_file = "master.pp"
|
# puppet.manifest_file = "master.pp"
|
||||||
puppet.options = ["--certname","puppetmaster", '--modulepath', '/vagrant/modules']
|
# puppet.options = ["--certname","puppetmaster", '--modulepath', '/vagrant/modules']
|
||||||
end
|
#end
|
||||||
end
|
end
|
||||||
|
|
||||||
config.vm.define :all do |all|
|
config.vm.define :all do |all|
|
||||||
|
19
ext/test.sh → ext/glance.sh
Normal file → Executable file
19
ext/test.sh → ext/glance.sh
Normal file → Executable file
@@ -1,24 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
# Extract creds
|
# Extract creds
|
||||||
cd ~
|
|
||||||
sudo nova-manage project zipfile nova novaadmin
|
|
||||||
unzip nova.zip
|
|
||||||
source novarc
|
|
||||||
euca-add-keypair openstack > ~/cert.pem
|
|
||||||
|
|
||||||
# Add images to glance and index
|
# Add images to glance and index
|
||||||
glance add name=ramdisk disk_format=ari container_format=ari is_public=True < /vagrant/images/lucid_ami/initrd.img-2.6.32-23-server
|
glance add name=ramdisk disk_format=ari container_format=ari is_public=True < /vagrant/images/lucid_ami/initrd.img-2.6.32-23-server
|
||||||
glance add name=kernel disk_format=aki container_format=aki is_public=True < /vagrant/images/lucid_ami/vmlinuz-2.6.32-23-server
|
glance add name=kernel disk_format=aki container_format=aki is_public=True < /vagrant/images/lucid_ami/vmlinuz-2.6.32-23-server
|
||||||
glance add name=lucid_ami disk_format=ami container_format=ami is_public=True ramdisk_id=1 kernel_id=2 < /vagrant/images/lucid_ami/ubuntu-lucid.img
|
glance add name=lucid_ami disk_format=ami container_format=ami is_public=True ramdisk_id=1 kernel_id=2 < /vagrant/images/lucid_ami/ubuntu-lucid.img
|
||||||
glance index
|
glance index
|
||||||
|
|
||||||
# List
|
|
||||||
nova flavor-list
|
|
||||||
nova image-list
|
|
||||||
|
|
||||||
# Run instance
|
|
||||||
euca-run-instances ami-00000003 -k openstack -t m1.tiny
|
|
||||||
euca-describe-instances
|
|
||||||
|
|
||||||
echo 'check the status of your VM with euca-describe-instances'
|
|
||||||
echo 'when it is in the running state, verify that you can login'
|
|
||||||
echo 'using ssh -i ~/cert.pem root@ip.address'
|
|
19
ext/nova.sh
Executable file
19
ext/nova.sh
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Extract creds
|
||||||
|
cd ~
|
||||||
|
sudo nova-manage project zipfile nova novaadmin
|
||||||
|
unzip nova.zip
|
||||||
|
source novarc
|
||||||
|
euca-add-keypair openstack > ~/cert.pem
|
||||||
|
# List
|
||||||
|
nova flavor-list
|
||||||
|
nova image-list
|
||||||
|
|
||||||
|
# Run instance
|
||||||
|
euca-run-instances ami-00000003 -k openstack -t m1.tiny
|
||||||
|
euca-describe-instances
|
||||||
|
|
||||||
|
echo 'log into your controller VM'
|
||||||
|
echo 'check the status of your VM with euca-describe-instances'
|
||||||
|
echo 'when it is in the running state, verify that you can login'
|
||||||
|
echo 'using ssh -i ~/cert.pem root@ip.address'
|
@@ -77,7 +77,7 @@ node compute {
|
|||||||
class { "nova":
|
class { "nova":
|
||||||
verbose => $verbose,
|
verbose => $verbose,
|
||||||
sql_connection => "mysql://${db_username}:${db_password}@${db_host}/${db_name}",
|
sql_connection => "mysql://${db_username}:${db_password}@${db_host}/${db_name}",
|
||||||
image_service => $image_service,
|
image_service => 'nova.image.glance.GlanceImageService',
|
||||||
glance_api_servers => $glance_api_servers,
|
glance_api_servers => $glance_api_servers,
|
||||||
glance_host => $glance_host,
|
glance_host => $glance_host,
|
||||||
glance_port => $glance_port,
|
glance_port => $glance_port,
|
||||||
|
Reference in New Issue
Block a user