#!/bin/bash # # # #set -x global IP := $1 global ENVIRONMENT := $2 echo "initial configuration of $IP" global SCPCMD := ""./nodescp $ENVIRONMENT $IP"" global SSHCMD := ""./nodessh.sh $ENVIRONMENT $IP"" echo "Checking for Chef ..." global CHEF := $[$SSHCMD "which chef-client || true] if [[ -z "$CHEF" ]] { echo "copy files..." $SCPCMD zap-ceph-disks.sh /home/ubuntu $SCPCMD cookbooks/bcpc/files/default/bins/chef-client.deb /home/ubuntu $SCPCMD install-chef.sh /home/ubuntu $SCPCMD finish-worker.sh /home/ubuntu $SCPCMD finish-head.sh /home/ubuntu if [[ -n "$(source proxy_setup.sh >/dev/null; echo $PROXY)" ]] { global PROXY := $[source proxy_setup.sh >/dev/null; echo $PROXY] echo "setting up .wgetrc's to $PROXY" $SSHCMD "echo \"http_proxy = http://$PROXY\" > .wgetrc" # possibly set up a proxy for apt too if [[ -n "$APTPROXY" ]] { echo "Acquire::http::Proxy \"http://$(APTPROXY)\";" > /tmp/apt.conf $SCPCMD /tmp/apt.conf /tmp $SSHCMD "mv /tmp/apt.conf /etc/apt/apt.conf" sudo } } echo "setup chef" $SSHCMD "/home/ubuntu/install-chef.sh" sudo } else { echo "Chef is installed as $CHEF" } echo "zap disks" $SSHCMD "/home/ubuntu/zap-ceph-disks.sh" sudo echo "temporarily adjust system time to avoid time skew related failures" global GOODDATE := $[date] $SSHCMD "date -s '$GOODDATE'" sudo echo "done." (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IP) op:Equal rhs:{(DQ ($ VSub_Number "$1"))} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ENVIRONMENT) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [20] ) ] spids: [20] ) (C {(echo)} {(DQ ("initial configuration of ") ($ VSub_Name "$IP"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCPCMD) op: Equal rhs: {(DQ ("./nodescp ") ($ VSub_Name "$ENVIRONMENT") (" ") ($ VSub_Name "$IP"))} spids: [33] ) ] spids: [33] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SSHCMD) op: Equal rhs: {(DQ ("./nodessh.sh ") ($ VSub_Name "$ENVIRONMENT") (" ") ($ VSub_Name "$IP"))} spids: [41] ) ] spids: [41] ) (C {(echo)} {(DQ ("Checking for Chef ..."))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHEF) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {($ VSub_Name "$SSHCMD")} {(DQ ("which chef-client || true"))})] ) left_token: spids: [58 64] ) } spids: [57] ) ] spids: [57] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$CHEF"))})) terminator: ) ] action: [ (C {(echo)} {(DQ ("copy files..."))}) (C {($ VSub_Name "$SCPCMD")} {(zap-ceph-disks.sh)} {(/home/ubuntu)}) (C {($ VSub_Name "$SCPCMD")} {(cookbooks/bcpc/files/default/bins/chef-client.deb)} {(/home/ubuntu)} ) (C {($ VSub_Name "$SCPCMD")} {(install-chef.sh)} {(/home/ubuntu)}) (C {($ VSub_Name "$SCPCMD")} {(finish-worker.sh)} {(/home/ubuntu)}) (C {($ VSub_Name "$SCPCMD")} {(finish-head.sh)} {(/home/ubuntu)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (DQ (CommandSubPart command_list: (CommandList children: [ (Sentence child: (SimpleCommand words: [{(source)} {(proxy_setup.sh)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [139] ) ] ) terminator: ) (C {(echo)} {($ VSub_Name "$PROXY")}) ] ) left_token: spids: [134 146] ) ) } ) ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROXY) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (SimpleCommand words: [{(source)} {(proxy_setup.sh)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [161] ) ] ) terminator: ) (C {(echo)} {($ VSub_Name "$PROXY")}) ] ) left_token: spids: [156 168] ) } spids: [155] ) ] spids: [155] ) (C {(echo)} {(DQ ("setting up .wgetrc's to ") ($ VSub_Name "$PROXY"))}) (C {($ VSub_Name "$SSHCMD")} { (DQ ("echo ") (EscapedLiteralPart token:) ("http_proxy = http://") ($ VSub_Name "$PROXY") (EscapedLiteralPart token:) (" > .wgetrc") ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_Name "$APTPROXY"))} ) ) terminator: ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("Acquire::http::Proxy ") (EscapedLiteralPart token: ) ("http://") (${ VSub_Name APTPROXY) (EscapedLiteralPart token:) (";") ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/tmp/apt.conf)} spids: [225] ) ] ) (C {($ VSub_Name "$SCPCMD")} {(/tmp/apt.conf)} {(/tmp)}) (C {($ VSub_Name "$SSHCMD")} {(DQ ("mv /tmp/apt.conf /etc/apt/apt.conf"))} {(sudo)} ) ] spids: [-1 209] ) ] spids: [-1 246] ) ] spids: [-1 152] ) ] spids: [-1 249] ) (C {(echo)} {(DQ ("setup chef"))}) (C {($ VSub_Name "$SSHCMD")} {(DQ (/home/ubuntu/install-chef.sh))} {(sudo)}) ] spids: [-1 80] ) ] else_action: [(C {(echo)} {(DQ ("Chef is installed as ") ($ VSub_Name "$CHEF"))})] spids: [268 278] ) (C {(echo)} {(DQ ("zap disks"))}) (C {($ VSub_Name "$SSHCMD")} {(DQ (/home/ubuntu/zap-ceph-disks.sh))} {(sudo)}) (C {(echo)} {(DQ ("temporarily adjust system time to avoid time skew related failures"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GOODDATE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(date)})]) left_token: spids: [303 305] ) } spids: [302] ) ] spids: [302] ) (C {($ VSub_Name "$SSHCMD")} {(DQ ("date -s '") ($ VSub_Name "$GOODDATE") ("'"))} {(sudo)}) (C {(echo)} {(DQ (done.))}) ] )