#!/bin/bash # Copyright (C) 2012 # Authors: # Angus Salkeld # Steven Dake # ASL2.0 # sleep 1 = systemd's definition of start is different from mine action=$1 if [ -z "$action" ] then echo "openstack [start|stop|install|erase]" echo "" echo "This tool is designed to control OpenStack on a Fedora 16/17 system" echo "" echo "start - Starts OpenStack" echo "stop - Stops OpenStack" echo "install - Installs a fresh OpenStack system with Keystone from RPM repostories" echo "erase - permanently destroys an existing installation of OpenStack" fi function os_start() { action=start sudo systemctl $action qpidd.service mysqld.service sleep 1 sudo systemctl $action openstack-keystone.service tgtd.service sleep 1 for svc in api registry do sudo systemctl $action openstack-glance-$svc.service done sudo vgcreate nova-volumes $(sudo losetup --show -f /var/lib/nova/nova-volumes.img) for svc in api objectstore compute network volume scheduler cert do sudo systemctl $action openstack-nova-$svc.service done } function os_stop() { action=stop sudo systemctl $action openstack-keystone.service tgtd.service for svc in api objectstore compute network volume scheduler cert do sudo systemctl $action openstack-nova-$svc.service done for svc in api registry do sudo systemctl $action openstack-glance-$svc.service done } function os_erase() { os_stop sleep 1 sudo rm -f /var/lib/libvirt/qemu/save/instance-000* sudo rm -f /var/lib/libvirt/qemu/instance-000* for iii in /usr/lib/systemd/system/openstack-*.service; do sudo systemctl stop $(basename $iii); done sudo yum erase -y python-glance python-nova* python-keystone* openstack-swift* openstack-dashboard sudo systemctl start mysqld.service sleep 1 cat << EOF | mysql -u root -p DROP USER 'nova'@'localhost'; DROP USER 'nova'@'%'; DROP USER 'keystone'@'localhost'; DROP USER 'keystone'@'%'; DROP USER 'glance'@'localhost'; DROP USER 'glance'@'%'; DROP DATABASE nova; DROP DATABASE keystone; DROP DATABASE glance; flush privileges; EOF sudo vgchange -an nova-volumes sudo losetup -d /dev/loop0 sudo rm -f /var/lib/nova/nova-volumes.img sudo rm -rf /etc/{glance,nova,swift,keystone,openstack-dashboard} /var/lib/{glance,nova,swift,keystone} /var/log/{glance,nova,swift,keystone} /var/run/{glance,nova,swift,keystone} rm -f $HOME/.openstack/.keystonerc } function os_install() { sudo yum install -y openstack-nova openstack-glance openstack-keystone openstack-dashboard scsi-target-utils sudo dd if=/dev/zero of=/var/lib/nova/nova-volumes.img bs=1M seek=20k count=0 sudo systemctl start mysqld.service sleep 1 # Configure the databases sudo openstack-nova-db-setup sudo openstack-glance-db-setup sudo openstack-keystone-db-setup # Create a keystone RC file mkdir -p $HOME/.openstack cat > $HOME/.openstack/keystonerc <