(CommandList children: [ (C {(set)} {(-e)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub "$("> spids: [33 35] ) ) } right: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(rev-parse)} {(--show-toplevel)})] ) left_token: <Left_CommandSub "$("> spids: [41 47] ) ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [ {(printf)} {(SQ <"#### WARNING: This should be run in the git top level directory! ####\\n">)} ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/stderr)} spids:[62])] ) ] spids: [-1 53] ) ] spids: [-1 66] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ENVIRONMENT) op:Equal rhs:{(Test-Laptop)} spids:[69])] spids: [69] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROXY) op: Equal rhs: {(proxy.example.com) (Lit_Other ":") (80)} spids: [72] ) ] spids: [72] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DNS_SERVERS) op: Equal rhs: {(SQ <"\"8.8.8.8\", \"8.8.4.4\"">)} spids: [77] ) ] spids: [77] ) (C {(export)} {(Lit_VarLike "BOOTSTRAP_VM_MEM=") (3096)}) (C {(export)} {(Lit_VarLike "BOOTSTRAP_VM_CPUs=") (2)}) (C {(export)} {(Lit_VarLike "CLUSTER_VM_MEM=") (5120)}) (C {(export)} {(Lit_VarLike "CLUSTER_VM_CPUs=") (4)}) (C {(printf)} {(DQ ("#### Setup configuration files") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))} ) (C {(sed)} {(-i)} {(SQ <"s/vb.gui = true/vb.gui = false/">)} {(Vagrantfile)}) (C {(sed)} {(-i)} { (DQ ("s/#export PROXY=.*") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/export PROXY=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$PROXY") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/) ) } {(proxy_setup.sh)} ) (C {(sed)} {(-i)} { (DQ (s/) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (dns_servers) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" : ") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (8.8.8.8) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (8.8.4.4) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) (/) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (dns_servers) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" : ") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) (" ") ($ VSub_Name "$DNS_SERVERS") (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) (/) ) } {(environments/) (${ VSub_Name ENVIRONMENT) (.json)} ) (C {(sed)} {(-i)} { (DQ ("s#") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (bootstrap) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": {") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("#") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (proxy) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" : ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("http://") ($ VSub_Name "$PROXY") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("#") ) } {(environments/) (${ VSub_Name ENVIRONMENT) (.json)} ) (C {(printf)} {(DQ ("#### Setup VB's and Bootstrap") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))} ) (C {(source)} {(./vbox_create.sh)}) (AndOr children: [ (C {(download_VM_files)}) (Subshell child: (AndOr children: [ (C {(echo)} { (DQ ("############## VBOX DOWNLOAD VM FILES RETURNED ") ($ VSub_QMark "$?") (" ##############") ) } ) (C {(exit)} {(1)}) ] op_id: Op_DAmp ) spids: [238 254] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(create_bootstrap_VM)}) (Subshell child: (AndOr children: [ (C {(echo)} { (DQ ("############## VBOX CREATE BOOTSTRAP VM RETURNED ") ($ VSub_QMark "$?") (" ##############") ) } ) (C {(exit)} {(1)}) ] op_id: Op_DAmp ) spids: [260 276] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(create_cluster_VMs)}) (Subshell child: (AndOr children: [ (C {(echo)} { (DQ ("############## VBOX CREATE CLUSTER VMs RETURNED ") ($ VSub_QMark "$?") (" ##############") ) } ) (C {(exit)} {(1)}) ] op_id: Op_DAmp ) spids: [282 298] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(install_cluster)}) (Subshell child: (AndOr children: [ (C {(echo)} { (DQ ("############## bootstrap_chef.sh returned ") ($ VSub_QMark "$?") (" ##############") ) } ) (C {(exit)} {(1)}) ] op_id: Op_DAmp ) spids: [304 320] ) ] op_id: Op_DPipe ) (C {(printf)} {(DQ ("#### Cobbler Boot") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}) (C {(printf)} { (DQ ("Snapshotting pre-Cobbler and booting (unless already running)") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ) } ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:vms_started) op:Equal rhs:{(DQ (False))} spids:[337])] spids: [337] ) (ForEach iter_name: i iter_words: [{(1)} {(2)} {(3)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (Pipeline children: [ (C {(vboxmanage)} {(showvminfo)} {(bcpc-vm) ($ VSub_Name "$i")}) (C {(grep)} {(-q)} {(SQ <"^State:.*running">)}) ] negated: False ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:vms_started) op: Equal rhs: {(DQ (True))} spids: [377] ) ] spids: [377] ) ] op_id: Op_DPipe ) (AndOr children: [ (Pipeline children: [ (C {(vboxmanage)} {(showvminfo)} {(bcpc-vm) ($ VSub_Name "$i")}) (C {(grep)} {(-q)} {(SQ <"^State:.*running">)}) ] negated: False ) (C {(VBoxManage)} {(snapshot)} {(bcpc-vm) ($ VSub_Name "$i")} {(take)} {(Shoe-less)}) ] op_id: Op_DPipe ) (AndOr children: [ (Pipeline children: [ (C {(vboxmanage)} {(showvminfo)} {(bcpc-vm) ($ VSub_Name "$i")}) (C {(grep)} {(-q)} {(SQ <"^State:.*running">)}) ] negated: False ) (C {(VBoxManage)} {(startvm)} {(bcpc-vm) ($ VSub_Name "$i")} {(--type)} {(headless)}) ] op_id: Op_DPipe ) ] spids: [355 444] ) spids: [347 353] ) (C {(printf)} {(DQ ("Checking VMs are up: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}) (While cond: [ (AndOr children: [ (Pipeline children: [(C {(nc)} {(-w)} {(1)} {(-q)} {(0)} {(10.0.100.11)} {(22)})] negated: True ) (AndOr children: [ (Pipeline children: [(C {(nc)} {(-w)} {(1)} {(-q)} {(0)} {(10.0.100.12)} {(22)})] negated: True ) (Pipeline children: [(C {(nc)} {(-w)} {(1)} {(-q)} {(0)} {(10.0.100.13)} {(22)})] negated: True ) ] op_id: Op_DPipe ) ] op_id: Op_DPipe ) ] body: (DoGroup children: [ (C {(sleep)} {(60)}) (C {(printf)} {(DQ ("Hosts down: "))}) (ForEach iter_name: m iter_words: [{(11)} {(12)} {(13)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (SimpleCommand words: [{(nc)} {(-w)} {(1)} {(-q)} {(0)} {(10.0.100.) ($ VSub_Name "$m")} {(22)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [558] ) ] ) (C {(echo)} {(-n)} {(DQ (10.0.100.) ($ VSub_Name "$m") (" "))}) ] op_id: Op_DPipe ) ] spids: [540 575] ) spids: [532 538] ) (C {(printf)} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}) ] spids: [512 584] ) ) (C {(printf)} {(DQ ("Snapshotting post-Cobbler") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$vms_started"))} right: {(DQ (True))} ) ) (C {(VBoxManage)} {(snapshot)} {(bcpc-vm1)} {(take)} {(Post-Cobble)}) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$vms_started"))} right: {(DQ (True))} ) ) (C {(VBoxManage)} {(snapshot)} {(bcpc-vm2)} {(take)} {(Post-Cobble)}) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$vms_started"))} right: {(DQ (True))} ) ) (C {(VBoxManage)} {(snapshot)} {(bcpc-vm3)} {(take)} {(Post-Cobble)}) ] op_id: Op_DAmp ) (C {(printf)} {(DQ ("#### Chef all the nodes") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}) (C {(vagrant)} {(ssh)} {(-c)} {(DQ ("sudo apt-get install -y sshpass"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cobbler_pass) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("cd chef-bcpc; knife data bag show configs ") ($ VSub_Name "$ENVIRONMENT") (" | grep 'cobbler-root-password:'|sed 's/.* //'") ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [692 704] ) } spids: [691] ) ] spids: [691] ) (C {(printf)} {(DQ ("#### Chef the first headnode(s)") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))} ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("cd chef-bcpc; ./cluster-assign-roles.sh ") ($ VSub_Name "$ENVIRONMENT") (" bcpc-vm1") ) } ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(printf)} { (DQ ("## set the first machine to admin") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ) } ) (C {(vagrant)} {(ssh)} {(-c)} { (SQ < "cd chef-bcpc; echo -e \"/\\\"admin\\\": false\\ns/false/true\\nw\\nq\\n\" | EDITOR=ed knife client edit `knife client list | grep bcpc-vm1`" > ) } ) (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("cd chef-bcpc; echo ") ($ VSub_Name "$cobbler_pass") (" | sudo knife bootstrap -E ") ($ VSub_Name "$ENVIRONMENT") (" -r 'role[BCPC-Headnode]' 10.0.100.11 -x ubuntu --sudo") ) } ) ] spids: [-1 731] ) ] spids: [-1 772] ) (ForEach iter_name: i iter_words: [{(2)} {(3)}] do_arg_iter: False body: (DoGroup children: [ (C {(printf)} { (DQ ("## Machine bcpc-vm") (${ VSub_Name i) (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ) } ) (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("cd chef-bcpc; ./cluster-assign-roles.sh ") ($ VSub_Name "$ENVIRONMENT") (" bcpc-vm") ($ VSub_Name "$i") ) } ) ] spids: [786 813] ) spids: [780 784] ) (C {(printf)} {(DQ ("Snapshotting post-Cobbler") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}) (C {(VBoxManage)} {(snapshot)} {(bcpc-vm1)} {(take)} {(Full-Shoes)}) (C {(VBoxManage)} {(snapshot)} {(bcpc-vm2)} {(take)} {(Full-Shoes)}) (C {(VBoxManage)} {(snapshot)} {(bcpc-vm3)} {(take)} {(Full-Shoes)}) ] )