|  | #!/usr/bin/env bash | 
|  |  | 
|  | # Sample ``local.sh`` for user-configurable tasks to run automatically | 
|  | # at the successful conclusion of ``stack.sh``. | 
|  |  | 
|  | # NOTE: Copy this file to the root DevStack directory for it to work properly. | 
|  |  | 
|  | # This is a collection of some of the things we have found to be useful to run | 
|  | # after ``stack.sh`` to tweak the OpenStack configuration that DevStack produces. | 
|  | # These should be considered as samples and are unsupported DevStack code. | 
|  |  | 
|  |  | 
|  | # Keep track of the DevStack directory | 
|  | TOP_DIR=$(cd $(dirname "$0") && pwd) | 
|  |  | 
|  | # Import common functions | 
|  | source $TOP_DIR/functions | 
|  |  | 
|  | # Use openrc + stackrc + localrc for settings | 
|  | source $TOP_DIR/stackrc | 
|  |  | 
|  | # Destination path for installation ``DEST`` | 
|  | DEST=${DEST:-/opt/stack} | 
|  |  | 
|  | if is_service_enabled nova; then | 
|  |  | 
|  | # Import ssh keys | 
|  | # --------------- | 
|  |  | 
|  | # Import keys from the current user into the default OpenStack user (usually | 
|  | # ``demo``) | 
|  |  | 
|  | # Get OpenStack user auth | 
|  | source $TOP_DIR/openrc | 
|  |  | 
|  | # Add first keypair found in localhost:$HOME/.ssh | 
|  | for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do | 
|  | if [[ -r $i ]]; then | 
|  | openstack keypair create --public-key $i `hostname` | 
|  | break | 
|  | fi | 
|  | done | 
|  |  | 
|  |  | 
|  | # Create A Flavor | 
|  | # --------------- | 
|  |  | 
|  | # Get OpenStack admin auth | 
|  | source $TOP_DIR/openrc admin admin | 
|  |  | 
|  | # Name of new flavor | 
|  | # set in ``local.conf`` with ``DEFAULT_INSTANCE_TYPE=m1.micro`` | 
|  | MI_NAME=m1.micro | 
|  |  | 
|  | # Create micro flavor if not present | 
|  | if [[ -z $(openstack flavor list | grep $MI_NAME) ]]; then | 
|  | openstack flavor create $MI_NAME --id 6 --ram 128 --disk 0 --vcpus 1 | 
|  | fi | 
|  |  | 
|  |  | 
|  | # Other Uses | 
|  | # ---------- | 
|  |  | 
|  | # Add tcp/22 and icmp to default security group | 
|  | openstack security group rule create --project $OS_PROJECT_NAME default --protocol tcp --ingress --dst-port 22 | 
|  | openstack security group rule create --project $OS_PROJECT_NAME default --protocol icmp | 
|  |  | 
|  | fi |