Advertisement
Guest User

Untitled

a guest
May 10th, 2018
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.76 KB | None | 0 0
  1. #!/bin/bash -x
  2. # Instantiates a new project, creating a admin, its network, router, subnet,
  3. # securitygroup, floats and keypair
  4.  
  5. if [ -z $4 ] ; then
  6.    echo
  7.    echo "Syntax: createproject.sh <project name> <admin username> <admin password> <DNS zone>"
  8.    echo "Example: createproject.sh testproject rfreire redhat rf01.co"
  9.    echo
  10.    exit 1
  11. fi
  12.  
  13. source ~/keystonerc_admin
  14. set -e
  15.  
  16. PROJECT_NAME=$1
  17. ADMIN_USER_NAME=$2
  18. ADMIN_PASSWORD=$3
  19. ZONE_NAME=$4
  20.  
  21. echo
  22. echo "Creating project $PROJECT_NAME, with admin username $ADMIN_USER_NAME and password $ADMIN_PASSWORD"
  23. echo
  24.  
  25. # Draws a number that will be 192.168.xxx.0/24 network
  26. BLOCK=`shuf -i 11-254 -n 1`
  27.  
  28. # Create Project, User ($ADMIN_USER_NAME), password redhat, set it as admin
  29. PROJECT_ID=`openstack project create -c id -f value $PROJECT_NAME`
  30. USER_ID=`openstack user create -f value -c id --password $ADMIN_PASSWORD --project $PROJECT_ID --email $ADMIN_USER_NAME@example.com $ADMIN_USER_NAME`
  31. ADMIN_ROLE_ID=`openstack role show  -f value -c id admin`
  32. openstack role add --user $USER_ID --project $PROJECT_ID $ADMIN_ROLE_ID
  33.  
  34. OS_USERNAME=$ADMIN_USER_NAME
  35. OS_PASSWORD=$ADMIN_PASSWORD
  36. OS_TENANT_NAME=$PROJECT_NAME
  37.  
  38. # Create the network and router
  39. INTERNAL_NET_ID=`neutron net-create net-internal-$PROJECT_NAME -f value -c id --provider:network_type vxlan --tenant-id $PROJECT_ID`
  40. 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`
  41. ROUTER_ID=`openstack router create -f value -c id --project $PROJECT_ID router-$PROJECT_NAME`
  42. openstack router add subnet $ROUTER_ID $INTERNAL_SUBNET_ID
  43. EXTERNAL_NET_ID=`openstack network show -f value -c id externa`
  44. neutron router-gateway-set $ROUTER_ID $EXTERNAL_NET_ID
  45.  
  46. # Create keypair
  47. curl -s http://satserver-rf.usersys.redhat.com/pub/chave-ssh.txt | grep ssh-rsa > /dev/shm/keypair-rf.key
  48. openstack keypair create --public-key /dev/shm/keypair-rf.key keypair-RF
  49.  
  50. # Set security group
  51. 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}'`
  52. openstack security group rule create --protocol tcp --project $PROJECT_ID $SECURITYGROUP_ID
  53.  
  54. # Create a few floats
  55. openstack floating ip create $EXTERNAL_NET_ID -f value -c floating_ip_address
  56. openstack floating ip create $EXTERNAL_NET_ID -f value -c floating_ip_address
  57.  
  58. # Create the DNS zone
  59. DNSAAS_ZONE_ID=`openstack zone create --email $ADMIN_USER_NAME@example.com $ZONE_NAME. -f value -c id`
  60.  
  61. # Bind the Neutron internal network to DNSaaS
  62. neutron net-update $INTERNAL_NET_ID --dns_domain $ZONE_NAME.
  63.  
  64. echo
  65. echo "export OS_USERNAME=$ADMIN_USER_NAME"
  66. echo "export OS_PASSWORD=$ADMIN_PASSWORD"
  67. echo "export OS_TENANT_NAME=$PROJECT_NAME"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement