Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash -x
- # Instantiates a new project, creating a admin, its network, router, subnet,
- # securitygroup, floats and keypair
- if [ -z $4 ] ; then
- echo
- echo "Syntax: createproject.sh <project name> <admin username> <admin password> <DNS zone>"
- echo "Example: createproject.sh testproject rfreire redhat rf01.co"
- echo
- exit 1
- fi
- source ~/keystonerc_admin
- set -e
- PROJECT_NAME=$1
- ADMIN_USER_NAME=$2
- ADMIN_PASSWORD=$3
- ZONE_NAME=$4
- echo
- echo "Creating project $PROJECT_NAME, with admin username $ADMIN_USER_NAME and password $ADMIN_PASSWORD"
- echo
- # Draws a number that will be 192.168.xxx.0/24 network
- BLOCK=`shuf -i 11-254 -n 1`
- # Create Project, User ($ADMIN_USER_NAME), password redhat, set it as admin
- PROJECT_ID=`openstack project create -c id -f value $PROJECT_NAME`
- USER_ID=`openstack user create -f value -c id --password $ADMIN_PASSWORD --project $PROJECT_ID --email $ADMIN_USER_NAME@example.com $ADMIN_USER_NAME`
- ADMIN_ROLE_ID=`openstack role show -f value -c id admin`
- openstack role add --user $USER_ID --project $PROJECT_ID $ADMIN_ROLE_ID
- OS_USERNAME=$ADMIN_USER_NAME
- OS_PASSWORD=$ADMIN_PASSWORD
- OS_TENANT_NAME=$PROJECT_NAME
- # Create the network and router
- INTERNAL_NET_ID=`neutron net-create net-internal-$PROJECT_NAME -f value -c id --provider:network_type vxlan --tenant-id $PROJECT_ID`
- INTERNAL_SUBNET_ID=`neutron subnet-create -f value -c id --name subnet-internal-$PROJECT_NAME --tenant-id $PROJECT_ID $INTERNAL_NET_ID 192.168.$BLOCK.0/24`
- ROUTER_ID=`openstack router create -f value -c id --project $PROJECT_ID router-$PROJECT_NAME`
- openstack router add subnet $ROUTER_ID $INTERNAL_SUBNET_ID
- EXTERNAL_NET_ID=`openstack network show -f value -c id externa`
- neutron router-gateway-set $ROUTER_ID $EXTERNAL_NET_ID
- # Create keypair
- curl -s http://satserver-rf.usersys.redhat.com/pub/chave-ssh.txt | grep ssh-rsa > /dev/shm/keypair-rf.key
- openstack keypair create --public-key /dev/shm/keypair-rf.key keypair-RF
- # Set security group
- SECURITYGROUP_ID=`openstack security group list -f value -c ID -c Project | grep $(openstack project show $PROJECT_ID -f value -c id) | awk '{print $1}'`
- openstack security group rule create --protocol tcp --project $PROJECT_ID $SECURITYGROUP_ID
- # Create a few floats
- openstack floating ip create $EXTERNAL_NET_ID -f value -c floating_ip_address
- openstack floating ip create $EXTERNAL_NET_ID -f value -c floating_ip_address
- # Create the DNS zone
- DNSAAS_ZONE_ID=`openstack zone create --email $ADMIN_USER_NAME@example.com $ZONE_NAME. -f value -c id`
- # Bind the Neutron internal network to DNSaaS
- neutron net-update $INTERNAL_NET_ID --dns_domain $ZONE_NAME.
- echo
- echo "export OS_USERNAME=$ADMIN_USER_NAME"
- echo "export OS_PASSWORD=$ADMIN_PASSWORD"
- echo "export OS_TENANT_NAME=$PROJECT_NAME"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement