Files
puppet-openstack/templates/test_nova.sh.erb
2012-10-29 18:28:31 -07:00

77 lines
3.1 KiB
Plaintext

#!/bin/bash
#
# assumes that openstack credentails are set in this file
source <%= rc_file_path %>
<% if image_type == 'cirros' -%>
# Grab an image. Cirros is a nice small Linux that's easy to deploy
wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
# Add it to glance so that we can use it in Openstack
glance add name='cirros image' is_public=true container_format=bare disk_format=qcow2 < cirros-0.3.0-x86_64-disk.img
# Caputre the Image ID so taht we can call the right UUID for this image
IMAGE_ID=`glance index | grep 'cirros image' | head -1 | awk -F' ' '{print $1}'`
login_user='cirros'
<% else -%>
# otherwise, use an Ubuntu precise image. This is a larger image, but a little more
# feature-full and realistic
wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img
# import that image into glance
glance add name="precise-amd64" is_public=true container_format=ovf disk_format=qcow2 < precise-server-cloudimg-amd64-disk1.img
# Caputre the Image ID so taht we can call the right UUID for this image
IMAGE_ID=`glance index | grep 'precise-amd64' | head -1 | awk -F' ' '{print $1}'`
login_user='ubuntu'
<% end -%>
# create a pub/priv keypair
ssh-keygen -f /tmp/id_rsa -t rsa -N ''
#add the public key to nova.
nova --no-cache keypair-add --pub_key /tmp/id_rsa.pub key_cirros
instance_name='<%= image_type %>_test_vm'
<% if quantum -%>
quantum net-create net1
quantum subnet-create net1 10.0.0.0/24
quantum_net=`quantum net-list | grep net1 | awk -F' ' '{print $2}'`
nova --no-cache boot --flavor 1 --image $IMAGE_ID --key_name key_cirros --nic net-id=$quantum_net $instance_name
<% else -%>
<% if floating_ip -%>
# create a security group so that we can allow ssh, http, and ping traffic
# when we add a floating IP (assuming you are adding floating IPs)
nova --no-cache secgroup-create nova_test 'Cirros test security group'
nova --no-cache secgroup-add-rule nova_test tcp 22 22 0.0.0.0/0
nova --no-cache secgroup-add-rule nova_test tcp 80 80 0.0.0.0/0
nova --no-cache secgroup-add-rule nova_test icmp -1 -1 0.0.0.0/0
# request a floating IP address, and extract the address from the results message
floating_ip=`nova --no-cache floating-ip-create | grep None | awk '{print $2}'`
<% end -%>
# Boot the added image against the "1" flavor which by default maps to a micro instance. <% if floating_ip -%> Include the cirros_test group so our address will work when we add it later <% end %>
nova --no-cache boot --flavor 1 <% if floating_ip -%>--security_groups nova_test<% end %> --image ${IMAGE_ID} --key_name key_cirros $instance_name
<% end -%>
# let the system catch up
sleep <%= sleep_time %>
# Show the state of the system we just requested.
nova --no-cache show $instance_name
# wait for the server to boot
sleep <%= sleep_time %>
<% if floating_ip -%>
# Now add the floating IP we reserved earlier to the machine.
nova --no-cache add-floating-ip $instance_name $floating_ip
# Wait and then try to SSH to the node, leveraging the private key
# we generated earlier.
sleep <%= sleep_time %>
ssh $login_user@$floating_ip -i /tmp/id_rsa
<% end -%>