#!/bin/bash # Exit immediately if anything goes wrong, instead of making things worse. set -e source $REPO_ROOT/bootstrap/shared/shared_functions.sh global REQUIRED_VARS := '( 'BOOTSTRAP_CHEF_ENV REPO_ROOT ) check_for_envvars $(REQUIRED_VARS[@]) cd $REPO_ROOT/bootstrap/vagrant_scripts global KNIFE := '/opt/opscode/embedded/bin/knife' # Dump the data bag contents to a variable. global DATA_BAG := $[vagrant ssh vm-bootstrap -c "$KNIFE data bag show configs $BOOTSTRAP_CHEF_ENV -F yaml] # Get the management VIP. global MANAGEMENT_VIP := $[vagrant ssh vm-bootstrap -c "$KNIFE environment show $BOOTSTRAP_CHEF_ENV -a override_attributes.bcpc.management.vip | tail -n +2 | awk '{ print \$2 }'] # this is highly naive for obvious reasons (will break on multi-line keys, spaces) # but is sufficient for the items to be extracted here proc extract_value { echo $DATA_BAG | grep "$1:" | awk '{ print $2 }' | tr -d '\r\n' } # Parse certain data bag variables into environment variables for pretty printing. global ROOT_PASSWORD := $[extract_value 'cobbler-root-password] global MYSQL_ROOT_PASSWORD := $[extract_value 'mysql-root-password] global RABBITMQ_USER := $[extract_value 'rabbitmq-user] global RABBITMQ_PASSWORD := $[extract_value 'rabbitmq-password] global HAPROXY_USER := $[extract_value 'haproxy-stats-user] global HAPROXY_PASSWORD := $[extract_value 'haproxy-stats-password] global KEYSTONE_ADMIN_USER := $[extract_value 'keystone-admin-user] global KEYSTONE_ADMIN_PASSWORD := $[extract_value 'keystone-admin-password] # Print everything out for the user. echo "------------------------------------------------------------" echo "Everything looks like it's been installed successfully!" echo echo "Access the BCPC landing page at https://$MANAGEMENT_VIP" echo "Use these users and passwords to access the different resources:" echo echo "Horizon: $KEYSTONE_ADMIN_USER / $KEYSTONE_ADMIN_PASSWORD" echo "HAProxy: $HAPROXY_USER / $HAPROXY_PASSWORD" echo "RabbitMQ: $RABBITMQ_USER / $RABBITMQ_PASSWORD" echo echo "Here are a few additional passwords:" echo "System root password: $ROOT_PASSWORD" echo "MySQL root password: $MYSQL_ROOT_PASSWORD" echo echo "Thanks for using BCPC!" (CommandList children: [ (C {(set)} {(-e)}) (C {(.)} {($ VSub_Name "$REPO_ROOT") (/bootstrap/shared/shared_functions.sh)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REQUIRED_VARS) op: Equal rhs: {(ArrayLiteralPart words:[{(BOOTSTRAP_CHEF_ENV)}{(REPO_ROOT)}])} spids: [17] ) ] spids: [17] ) (C {(check_for_envvars)} { (BracedVarSub token: bracket_op: (WholeArray op_id:Lit_At) spids: [28 33] ) } ) (C {(cd)} {($ VSub_Name "$REPO_ROOT") (/bootstrap/vagrant_scripts)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KNIFE) op: Equal rhs: {(/opt/opscode/embedded/bin/knife)} spids: [42] ) ] spids: [42] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DATA_BAG) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(vagrant)} {(ssh)} {(vm-bootstrap)} {(-c)} { (DQ ($ VSub_Name "$KNIFE") (" data bag show configs ") ($ VSub_Name "$BOOTSTRAP_CHEF_ENV") (" -F yaml") ) } ) ] ) left_token: spids: [49 64] ) } spids: [48] ) ] spids: [48] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANAGEMENT_VIP) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(vagrant)} {(ssh)} {(vm-bootstrap)} {(-c)} { (DQ ($ VSub_Name "$KNIFE") (" environment show ") ($ VSub_Name "$BOOTSTRAP_CHEF_ENV") (" -a override_attributes.bcpc.management.vip | tail -n +2 | awk '{ print ") (EscapedLiteralPart token: ) ("2 }'") ) } ) ] ) left_token: spids: [70 87] ) } spids: [69] ) ] spids: [69] ) (FuncDef name: extract_value body: (BraceGroup children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$DATA_BAG"))}) (C {(grep)} {(DQ ($ VSub_Number "$1") (":"))}) (C {(awk)} {(SQ <"{ print $2 }">)}) (C {(tr)} {(-d)} {(SQ <"\\r\\n">)}) ] negated: False ) ] spids: [100] ) spids: [96 99] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_PASSWORD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(extract_value)} {(SQ )})] ) left_token: spids: [143 149] ) } spids: [142] ) ] spids: [142] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MYSQL_ROOT_PASSWORD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(extract_value)} {(SQ )})] ) left_token: spids: [152 158] ) } spids: [151] ) ] spids: [151] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RABBITMQ_USER) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(extract_value)} {(SQ )})]) left_token: spids: [161 167] ) } spids: [160] ) ] spids: [160] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RABBITMQ_PASSWORD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(extract_value)} {(SQ )})] ) left_token: spids: [170 176] ) } spids: [169] ) ] spids: [169] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HAPROXY_USER) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(extract_value)} {(SQ )})] ) left_token: spids: [179 185] ) } spids: [178] ) ] spids: [178] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HAPROXY_PASSWORD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(extract_value)} {(SQ )})] ) left_token: spids: [188 194] ) } spids: [187] ) ] spids: [187] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KEYSTONE_ADMIN_USER) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(extract_value)} {(SQ )})] ) left_token: spids: [197 203] ) } spids: [196] ) ] spids: [196] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KEYSTONE_ADMIN_PASSWORD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(extract_value)} {(SQ )})] ) left_token: spids: [206 212] ) } spids: [205] ) ] spids: [205] ) (C {(echo)} {(DQ (------------------------------------------------------------))}) (C {(echo)} {(DQ ("Everything looks like it's been installed successfully!"))}) (C {(echo)}) (C {(echo)} {(DQ ("Access the BCPC landing page at https://") ($ VSub_Name "$MANAGEMENT_VIP"))}) (C {(echo)} {(DQ ("Use these users and passwords to access the different resources:"))}) (C {(echo)}) (C {(echo)} { (DQ ("Horizon: ") ($ VSub_Name "$KEYSTONE_ADMIN_USER") (" / ") ($ VSub_Name "$KEYSTONE_ADMIN_PASSWORD") ) } ) (C {(echo)} {(DQ ("HAProxy: ") ($ VSub_Name "$HAPROXY_USER") (" / ") ($ VSub_Name "$HAPROXY_PASSWORD"))} ) (C {(echo)} {(DQ ("RabbitMQ: ") ($ VSub_Name "$RABBITMQ_USER") (" / ") ($ VSub_Name "$RABBITMQ_PASSWORD"))} ) (C {(echo)}) (C {(echo)} {(DQ ("Here are a few additional passwords:"))}) (C {(echo)} {(DQ ("System root password: ") ($ VSub_Name "$ROOT_PASSWORD"))}) (C {(echo)} {(DQ ("MySQL root password: ") ($ VSub_Name "$MYSQL_ROOT_PASSWORD"))}) (C {(echo)}) (C {(echo)} {(DQ ("Thanks for using BCPC!"))}) ] )