Skip to content

Instantly share code, notes, and snippets.

@agentultra
Last active February 25, 2016 19:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save agentultra/4d91fcde74a8a270b191 to your computer and use it in GitHub Desktop.
Save agentultra/4d91fcde74a8a270b191 to your computer and use it in GitHub Desktop.
git clone https://git.openstack.org/openstack-dev/devstack
cd devstack
cat << EOF > local.conf
[[local|localrc]]
HOST_IP=192.168.33.33
PUBLIC_NETWORK_CIDR=10.0.1.0/24
DEST=/opt/stack
DATA_DIR=/opt/stack/data
SCREEN_LOGDIR=/opt/stack/data/logs/
LOGFILE=/opt/stack/data/logs/devstacklog.txt
VERBOSE=True
USE_SCREEN=True
LOG_COLOR=True
RABBIT_PASSWORD=secret
MYSQL_PASSWORD=secret
SERVICE_TOKEN=secret
SERVICE_PASSWORD=secret
ADMIN_PASSWORD=secret
SERVICE_HOST=127.0.0.1
FORCE_CONFIG_DRIVE=True
VIRT_DRIVER=libvirt
# To use nested KVM, un-comment the below line
LIBVIRT_TYPE=kvm
IMAGE_URLS="http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img"
# If you have `dnf` package manager, use it to improve speedups in DevStack build/tear down
# export YUM=dnf
Q_PLUGIN=ml2
Q_AGENT=linuxbridge
Q_USE_PROVIDERNET_FOR_PUBLIC=True
PUBLIC_PHYSICAL_NETWORK=republic
Q_ML2_PLUGIN_TYPE_DRIVERS=vxlan,flat
Q_ML2_PLUGIN_MECHANISM_DRIVERS=linuxbridge
enable_plugin astara https://github.com/openstack/astara
enable_service g-api g-reg key n-api n-cpu n-sch n-cond mysql rabbit dstat q-svc q-agt astara
disable_service n-net
[[post-extras|/$Q_PLUGIN_CONF_FILE]]
[ml2]
tenant_network_types = vxlan,flat
type_drivers = flat,vxlan
mechanism_drivers = linuxbridge
[vxlan]
enable_vxlan = True
local_ip = $HOST_IP
[ml2_type_vxlan]
vni_ranges = 1001:2000
[ml2_type_flat]
flat_networks = republic
[linux_bridge]
# virtualbox: these interfaces need promiscuous mode enabled
physical_interface_mappings = republic:eth1
[securitygroup]
enable_security_group = True
EOF
./stack.sh
. openrc admin admin
DEFAULT_GATEWAY=$(route -n | grep UG | awk '{print $2}')
DEFAULT_DNS_SERVER=$(cat /etc/resolv.conf | grep -m 1 'nameserver' | awk '{print $2}')
echo "Public network CIDR is $PUBLIC_NETWORK_CIDR"
echo "Discovered gateway $DEFAULT_GATEWAY"
echo "Setting public net DNS server to $DEFAULT_DNS_SERVER"
neutron net-create republic --shared --provider:physical_network republic \
--provider:network_type flat
neutron subnet-create republic $PUBLIC_NETWORK_CIDR --name sub-republic \
--allocation-pool start=10.0.1.101,end=10.0.1.200 \
--dns-nameserver $DEFAULT_DNS_SERVER \
--gateway $DEFAULT_GATEWAY
. openrc demo demo
openstack security group rule create --proto icmp --src-ip 0.0.0.0/0 default
openstack security group rule create --proto tcp --dst-port 22 default
PRIV_NET=$(openstack network list | grep thenet | awk '{print $2}')
PUB_NET=$(openstack network list | grep republic | awk '{print $2}')
openstack keypair create oskey0 > oskey1.priv
chmod 600 oskey1.priv
openstack server create \
--image cirros-0.3.3-x86_64-disk \
--nic net-id=$PRIV_NET --flavor m1.tiny \
--key-name oskey0 \
--security-group default \
cirrvm1
echo "Waiting for cirrvm1 to boot..."
sleep 10
openstack server create \
--image cirros-0.3.3-x86_64-disk \
--nic net-id=$PUB_NET --flavor m1.tiny \
--key-name oskey0 \
--security-group default \
cirrvm2
echo "Waiting for cirrvm2 to boot..."
sleep 10
INSTANCE_ID=$(openstack server list | grep -i active | awk '{print $2}')
openstack ip floating create public
FLOATING_IP=$(openstack ip floating list | grep public | awk '{print $6}')
sleep 5 # give a little time for neutron to bring it to active
echo "Attempting to associate $FLOATING_IP to $INSTANCE_ID"
openstack ip floating add $FLOATING_IP $INSTANCE_ID
nova list
echo "done."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment