(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --show-toplevel]})]]}}) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/stderr]} "> 1), > ) ) (= scope= flags=0 words=[] bindings=[('ENVIRONMENT', {[LIT_CHARS Test-Laptop]})]) (= scope= flags=0 words=[] bindings=[('PROXY', {[LIT_CHARS proxy.example.com] [LIT_OTHER ":"] [LIT_CHARS 80]})]) (= scope= flags=0 words=[] bindings=[('DNS_SERVERS', {[SQ ]})]) (= scope= flags=1 words=[] bindings=[('BOOTSTRAP_VM_MEM', {[LIT_CHARS 3096]})]) (= scope= flags=1 words=[] bindings=[('BOOTSTRAP_VM_CPUs', {[LIT_CHARS 2]})]) (= scope= flags=1 words=[] bindings=[('CLUSTER_VM_MEM', {[LIT_CHARS 5120]})]) (= scope= flags=1 words=[] bindings=[('CLUSTER_VM_CPUs', {[LIT_CHARS 4]})]) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "#### Setup configuration files"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[SQ ]} {[LIT_CHARS Vagrantfile]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[DQ [LIT_CHARS "s/#export PROXY=.*"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "/export PROXY="][\ LIT_ESCAPED_CHAR "\\\""][VarSub PROXY][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /]]} {[LIT_CHARS proxy_setup.sh]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS dns_servers][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " : "][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS 8.8.8.8][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS 8.8.4.4][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS /][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS dns_servers][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " : "][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS " "][VarSub DNS_SERVERS][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS /]]} {[LIT_CHARS environments/] [VarSub ENVIRONMENT] [LIT_CHARS .json]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[DQ [LIT_CHARS "s#"][\ LIT_ESCAPED_CHAR "\\("][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS bootstrap][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": {"][\ LIT_ESCAPED_CHAR "\\)"][LIT_CHARS "#"][\ LIT_ESCAPED_CHAR "\\1"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS proxy][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " : "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "http://"][VarSub PROXY][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "#"]]} {[LIT_CHARS environments/] [VarSub ENVIRONMENT] [LIT_CHARS .json]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "#### Setup VB's and Bootstrap"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS source]} {[LIT_CHARS ./vbox_create.sh]}) (AndOr OP_OR_IF (Com {[LIT_CHARS download_VM_files]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "############## VBOX DOWNLOAD VM FILES RETURNED "][VarSub ?][LIT_CHARS " ##############"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS create_bootstrap_VM]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "############## VBOX CREATE BOOTSTRAP VM RETURNED "][VarSub ?][LIT_CHARS " ##############"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS create_cluster_VMs]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "############## VBOX CREATE CLUSTER VMs RETURNED "][VarSub ?][LIT_CHARS " ##############"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS install_cluster]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "############## bootstrap_chef.sh returned "][VarSub ?][LIT_CHARS " ##############"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "#### Cobbler Boot"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Snapshotting pre-Cobbler and booting (unless already running)"][\ LIT_ESCAPED_CHAR "\\n"]]}) (= scope= flags=0 words=[] bindings=[('vms_started', {[DQ [LIT_CHARS False]]})]) (For i [{[LIT_CHARS 1]}, {[LIT_CHARS 2]}, {[LIT_CHARS 3]}]) (List (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS vboxmanage]} {[LIT_CHARS showvminfo]} {[LIT_CHARS bcpc-vm] [VarSub i]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]}) ) (= scope= flags=0 words=[] bindings=[('vms_started', {[DQ [LIT_CHARS True]]})]) ) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS vboxmanage]} {[LIT_CHARS showvminfo]} {[LIT_CHARS bcpc-vm] [VarSub i]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]}) ) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-vm] [VarSub i]} {[LIT_CHARS take]} {[LIT_CHARS Shoe-less]}) ) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS vboxmanage]} {[LIT_CHARS showvminfo]} {[LIT_CHARS bcpc-vm] [VarSub i]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]}) ) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS startvm]} {[LIT_CHARS bcpc-vm] [VarSub i]} {[LIT_CHARS --type]} {[LIT_CHARS headless]}) ) ) ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Checking VMs are up: "][\ LIT_ESCAPED_CHAR "\\n"]]}) (While (AndOr OP_OR_IF (Pipeline! (Com {[LIT_CHARS nc]} {[LIT_CHARS -w]} {[LIT_CHARS 1]} {[LIT_CHARS -q]} {[LIT_CHARS 0]} {[LIT_CHARS 10.0.100.11]} {[LIT_CHARS 22]}) ) (AndOr OP_OR_IF (Pipeline! (Com {[LIT_CHARS nc]} {[LIT_CHARS -w]} {[LIT_CHARS 1]} {[LIT_CHARS -q]} {[LIT_CHARS 0]} {[LIT_CHARS 10.0.100.12]} {[LIT_CHARS 22]}) ) (Pipeline! (Com {[LIT_CHARS nc]} {[LIT_CHARS -w]} {[LIT_CHARS 1]} {[LIT_CHARS -q]} {[LIT_CHARS 0]} {[LIT_CHARS 10.0.100.13]} {[LIT_CHARS 22]}) ) ) ) (List (Com {[LIT_CHARS sleep]} {[LIT_CHARS 60]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Hosts down: "]]}) (For m [{[LIT_CHARS 11]}, {[LIT_CHARS 12]}, {[LIT_CHARS 13]}]) (AndOr OP_OR_IF (Com {[LIT_CHARS nc]} {[LIT_CHARS -w]} {[LIT_CHARS 1]} {[LIT_CHARS -q]} {[LIT_CHARS 0]} {[LIT_CHARS 10.0.100.] [VarSub m]} {[LIT_CHARS 22]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS 10.0.100.][VarSub m][LIT_CHARS " "]]}) ) ) (Com {[LIT_CHARS printf]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"]]}) ) ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Snapshotting post-Cobbler"][\ LIT_ESCAPED_CHAR "\\n"]]}) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub vms_started]]} {[DQ [LIT_CHARS True]]}}) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-vm1]} {[LIT_CHARS take]} {[LIT_CHARS Post-Cobble]}) ) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub vms_started]]} {[DQ [LIT_CHARS True]]}}) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-vm2]} {[LIT_CHARS take]} {[LIT_CHARS Post-Cobble]}) ) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub vms_started]]} {[DQ [LIT_CHARS True]]}}) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-vm3]} {[LIT_CHARS take]} {[LIT_CHARS Post-Cobble]}) ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "#### Chef all the nodes"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "sudo apt-get install -y sshpass"]]}) (= scope= flags=0 words=[] bindings=[('cobbler_pass', {[ComSub (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "cd chef-bcpc; knife data bag show configs "][VarSub ENVIRONMENT][LIT_CHARS " | grep 'cobbler-root-password:'|sed 's/.* //'"]]})]})]) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "#### Chef the first headnode(s)"][\ LIT_ESCAPED_CHAR "\\n"]]}) (If (Pipeline! (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "cd chef-bcpc; ./cluster-assign-roles.sh "][VarSub ENVIRONMENT][LIT_CHARS " bcpc-vm1"]]}) ) (List (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "## set the first machine to admin"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[SQ ]}) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "cd chef-bcpc; echo "][VarSub cobbler_pass][LIT_CHARS " | sudo knife bootstrap -E "][VarSub ENVIRONMENT][LIT_CHARS " -r 'role[BCPC-Headnode]' 10.0.100.11 -x ubuntu --sudo"]]}) ) ) (For i [{[LIT_CHARS 2]}, {[LIT_CHARS 3]}]) (List (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "## Machine bcpc-vm"][VarSub i][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "cd chef-bcpc; ./cluster-assign-roles.sh "][VarSub ENVIRONMENT][LIT_CHARS " bcpc-vm"][VarSub i]]}) ) ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Snapshotting post-Cobbler"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-vm1]} {[LIT_CHARS take]} {[LIT_CHARS Full-Shoes]}) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-vm2]} {[LIT_CHARS take]} {[LIT_CHARS Full-Shoes]}) (Com {[LIT_CHARS VBoxManage]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-vm3]} {[LIT_CHARS take]} {[LIT_CHARS Full-Shoes]}) )