Make get-occ-config.sh support custom roles

Updates the get-occ-config.sh script used with the deployed-server
environment to support custom roles. Any custom role name, and a
corresponding set of hosts (ip addresses or hostnames) can now be passed
to the script and it will query for the proper nested stack uuid's and
configure os-collect-config appropriately on the respective nodes.

Change-Id: I8fc39e6d18cd70ff881e2a284234b26261018d67
This commit is contained in:
James Slagle 2016-10-12 16:06:00 -04:00
parent d19ae9f490
commit 64e44e8626
2 changed files with 23 additions and 10 deletions

View File

@ -119,10 +119,15 @@ from the deployment command, the script should be ready to run:
[NovaCompute]: CREATE_IN_PROGRESS state changed [NovaCompute]: CREATE_IN_PROGRESS state changed
The user running the script must be able to ssh as root to each server. Define The user running the script must be able to ssh as root to each server. Define
the hostnames of the deployed servers you intend to use for each role type:: the the names of your custom roles (if applicable) and hostnames of the deployed
servers you intend to use for each role type. For each role name, a
corresponding <role-name>_hosts variable should also be defined, e.g.::
export controller_hosts="controller0 controller1 controller2" export ROLES="Controller NewtorkNode StorageNode Compute"
export compute_hosts="compute0" export Controller_hosts="10.0.0.1 10.0.0.2 10.0.0.3"
export NetworkNode_hosts="10.0.0.4 10.0.0.5 10.0.0.6"
export StorageNode_hosts="10.0.0.7 10.0.08"
export Compute_hosts="10.0.0.9 10.0.0.10 10.0.0.11"
Then run the script on the undercloud with a stackrc file sourced, and Then run the script on the undercloud with a stackrc file sourced, and
the script will copy the needed os-collect-config.conf configuration to each the script will copy the needed os-collect-config.conf configuration to each

View File

@ -11,14 +11,22 @@ OBJECTSTORAGE_HOSTS=${OBJECTSTORAGE_HOSTS:-""}
CEPHSTORAGE_HOSTS=${CEPHSTORAGE_HOSTS:-""} CEPHSTORAGE_HOSTS=${CEPHSTORAGE_HOSTS:-""}
SUBNODES_SSH_KEY=${SUBNODES_SSH_KEY:-"~/.ssh/id_rsa"} SUBNODES_SSH_KEY=${SUBNODES_SSH_KEY:-"~/.ssh/id_rsa"}
SSH_OPTIONS="-tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=Verbose -o PasswordAuthentication=no -o ConnectionAttempts=32" SSH_OPTIONS="-tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=Verbose -o PasswordAuthentication=no -o ConnectionAttempts=32"
OVERCLOUD_ROLES=${OVERCLOUD_ROLES:-"Controller Compute BlockStorage ObjectStorage CephStorage"}
read -a Controller_hosts_a <<< $CONTROLLER_HOSTS # Set the _hosts vars for the default roles based on the old var names that
read -a Compute_hosts_a <<< $COMPUTE_HOSTS # were all caps for backwards compatibility.
read -a BlockStorage_hosts_a <<< $BLOCKSTORAGE_HOSTS Controller_hosts=${Controller_hosts:-"$CONTROLLER_HOSTS"}
read -a ObjectStorage_hosts_a <<< $OBJECTSTORAGE_HOSTS Compute_hosts=${Compute_hosts:-"$COMPUTE_HOSTS"}
read -a CephStorage_hosts_a <<< $CEPHSTORAGE_HOSTS BlockStorage_hosts=${BlockStorage_hosts:-"$BLOCKSTORAGE_HOSTS"}
ObjectStorage_hosts=${ObjectStorage_hosts:-"$OBJECTSTORAGE_HOSTS"}
CephStorage_hosts=${CephStorage_hosts:-"$CEPHSTORAGE_HOSTS"}
# Set the _hosts_a vars for each role defined
for role in $OVERCLOUD_ROLES; do
eval hosts=\${${role}_hosts}
read -a ${role}_hosts_a <<< $hosts
done
roles=${OVERCLOUD_ROLES:-"Controller Compute BlockStorage ObjectStorage CephStorage"}
admin_user_id=$(openstack user show admin -c id -f value) admin_user_id=$(openstack user show admin -c id -f value)
admin_project_id=$(openstack project show admin -c id -f value) admin_project_id=$(openstack project show admin -c id -f value)
@ -44,7 +52,7 @@ function check_stack {
} }
for role in $roles; do for role in $OVERCLOUD_ROLES; do
while ! check_stack overcloud; do while ! check_stack overcloud; do
sleep $SLEEP_TIME sleep $SLEEP_TIME
done done