(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (Com {[LIT_CHARS .]} {[VarSub REPO_ROOT] [LIT_CHARS /bootstrap/shared/shared_functions.sh]}) (= scope= flags=0 words=[] bindings=[('REQUIRED_VARS', {[Array {[LIT_CHARS BOOTSTRAP_CHEF_DO_CONVERGE]} {[LIT_CHARS BOOTSTRAP_CHEF_ENV]} {[LIT_CHARS BCPC_HYPERVISOR_DOMAIN]} {[LIT_CHARS FILECACHE_MOUNT_POINT]} {[LIT_CHARS REPO_MOUNT_POINT]} {[LIT_CHARS REPO_ROOT]}]})]) (Com {[LIT_CHARS check_for_envvars]} {[VarSub REQUIRED_VARS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}) (Com {[LIT_CHARS cd]} {[VarSub REPO_ROOT] [LIT_CHARS /bootstrap/vagrant_scripts]}) (= scope= flags=0 words=[] bindings=[('KNIFE', {[LIT_CHARS /opt/opscode/embedded/bin/knife]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub CHEF_SERVER_DEB]]}}) (List (= scope= flags=0 words=[] bindings=[('debpath', {[DQ [VarSub FILECACHE_MOUNT_POINT][LIT_CHARS /][VarSub CHEF_SERVER_DEB]]})]) (= scope= flags=0 words=[] bindings=[('CHEF_SERVER_INSTALL_CMD', {[DQ [LIT_CHARS "sudo dpkg -i "][VarSub debpath]]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('CHEF_SERVER_INSTALL_CMD', {[DQ [LIT_CHARS "sudo dpkg -i "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "(find "][VarSub FILECACHE_MOUNT_POINT][LIT_CHARS "/ -name chef-server"][\ LIT_ESCAPED_CHAR "\\*"][LIT_CHARS "deb -not -name "][\ LIT_ESCAPED_CHAR "\\*"][LIT_CHARS "downloaded | tail -1)"]]})]) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub CHEF_CLIENT_DEB]]}}) (List (= scope= flags=0 words=[] bindings=[('debpath', {[DQ [VarSub FILECACHE_MOUNT_POINT][LIT_CHARS /][VarSub CHEF_CLIENT_DEB]]})]) (= scope= flags=0 words=[] bindings=[('CHEF_CLIENT_INSTALL_CMD', {[DQ [LIT_CHARS "sudo dpkg -i "][VarSub debpath]]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('CHEF_CLIENT_INSTALL_CMD', {[DQ [LIT_CHARS "sudo dpkg -i "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "(find "][VarSub FILECACHE_MOUNT_POINT][LIT_CHARS "/ -name chef_"][\ LIT_ESCAPED_CHAR "\\*"][LIT_CHARS "deb -not -name "][\ LIT_ESCAPED_CHAR "\\*"][LIT_CHARS "downloaded | tail -1)"]]})]) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS debpath]}) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [VarSub CHEF_SERVER_INSTALL_CMD][LIT_CHARS " "][LIT_CHARS " && sudo sh -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo nginx["][\ LIT_ESCAPED_CHAR "\\'"][LIT_CHARS non_ssl_port][\ LIT_ESCAPED_CHAR "\\'"][LIT_CHARS "] = 4000 > /etc/opscode/chef-server.rb"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " "][LIT_CHARS " && sudo chef-server-ctl reconfigure "][LIT_CHARS " && sudo chef-server-ctl user-create admin admin admin admin@localhost.com welcome --filename /etc/opscode/admin.pem "][LIT_CHARS " && sudo chef-server-ctl org-create bcpc BCPC --association admin --filename /etc/opscode/bcpc-validator.pem "][LIT_CHARS " && sudo chmod 0644 /etc/opscode/admin.pem /etc/opscode/bcpc-validator.pem "][LIT_CHARS " && "][VarSub CHEF_CLIENT_INSTALL_CMD]]}) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [LIT_CHARS "mkdir -p "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/.chef && echo -e "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "chef_server_url 'https://bcpc-vm-bootstrap."][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS "/organizations/bcpc'"][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "validation_client_name 'bcpc-validator'"][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "validation_key '/etc/opscode/bcpc-validator.pem'"][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "node_name 'admin'"][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "client_key '/etc/opscode/admin.pem'"][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "knife['editor'] = 'vim'"][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "cookbook_path [ "][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "#{ENV['HOME']}/chef-bcpc/cookbooks"][\ LIT_ESCAPED_CHAR "\\\\"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " ]"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/.chef/knife.rb "][LIT_CHARS " && "][VarSub KNIFE][LIT_CHARS " ssl fetch "][LIT_CHARS " && "][VarSub KNIFE][LIT_CHARS " bootstrap -x vagrant -P vagrant --sudo 10.0.100.3"]]}) (= scope= flags=0 words=[] bindings=[('vms', {[DQ [LIT_CHARS "vm1 vm2 vm3"]]})]) (If (Com {[LIT_OTHER "["]} {[VarSub MONITORING_NODES]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 1]})]) (While (Com {[LIT_OTHER "["]} {[VarSub i]} {[LIT_CHARS -le]} {[VarSub MONITORING_NODES]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('mon_vm', {[DQ [LIT_CHARS vm][ComSub (Com {[LIT_CHARS expr]} {[LIT_CHARS 3]} {[LIT_OTHER "+"]} {[VarSub i]})]]})]) (= scope= flags=0 words=[] bindings=[('mon_vms', {[DQ [VarSub mon_vms][LIT_CHARS " "][VarSub mon_vm]]})]) (= scope= flags=0 words=[] bindings=[('i', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub i]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) ) ) ) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [LIT_CHARS "sudo /opt/opscode/embedded/bin/gem install "][VarSub FILECACHE_MOUNT_POINT][LIT_CHARS "/knife-acl-1.0.2.gem "][LIT_CHARS " && rsync -a "][VarSub REPO_MOUNT_POINT][LIT_CHARS "/* "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/chef-bcpc "][LIT_CHARS " && cp "][VarSub FILECACHE_MOUNT_POINT][LIT_CHARS "/cookbooks/*.tar.gz "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/chef-bcpc/cookbooks "][LIT_CHARS " && cd "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/chef-bcpc/cookbooks && ls -1 *.tar.gz | xargs -I% tar xvzf %"]]}) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [LIT_CHARS "sudo apt-get update "][LIT_CHARS " && cd "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/chef-bcpc "][LIT_CHARS " && sudo bash -c 'export FILECACHE_MOUNT_POINT="][VarSub FILECACHE_MOUNT_POINT][LIT_CHARS " "][LIT_CHARS " && source "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/proxy_config.sh && bootstrap/shared/shared_build_bins.sh'"]]}) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [VarSub KNIFE][LIT_CHARS " cookbook upload -a "][LIT_CHARS " && cd "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/chef-bcpc/roles && "][VarSub KNIFE][LIT_CHARS " role from file *.json "][LIT_CHARS " && cd "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "HOME/chef-bcpc/environments && "][VarSub KNIFE][LIT_CHARS " environment from file "][VarSub BOOTSTRAP_CHEF_ENV][LIT_CHARS .json]]}) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 1]})]) (For vm [{[VarSub vms]}, {[VarSub mon_vms]}]) (List (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub CHEF_CLIENT_DEB]]}}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Installing latest chef-client found in "][VarSub vm][LIT_CHARS ":"][VarSub FILECACHE_MOUNT_POINT]]}) ) (Com {[LIT_CHARS do_on_node]} {[VarSub vm]} {[DQ [VarSub CHEF_CLIENT_INSTALL_CMD]]}) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [VarSub KNIFE][LIT_CHARS " bootstrap -x vagrant -P vagrant --sudo 10.0.100.1"][VarSub i]]}) (= scope= flags=0 words=[] bindings=[('i', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub i]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) ) (= scope= flags=0 words=[] bindings=[('ENVIRONMENT_SET', {[DQ ]})]) (For vm [{[LIT_CHARS vm-bootstrap]}, {[VarSub vms]}, {[VarSub mon_vms]}]) (= scope= flags=0 words=[] bindings=[('ENVIRONMENT_SET', {[DQ [VarSub ENVIRONMENT_SET][LIT_CHARS " "][VarSub KNIFE][LIT_CHARS " node environment set bcpc-"][VarSub vm][LIT_CHARS .][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " "][VarSub BOOTSTRAP_CHEF_ENV][LIT_CHARS " && "]]})]) ) (= scope= flags=0 words=[] bindings=[('ENVIRONMENT_SET', {[DQ [VarSub ENVIRONMENT_SET][LIT_CHARS " :"]]})]) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[VarSub ENVIRONMENT_SET]}) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [VarSub KNIFE][LIT_CHARS " node run_list set bcpc-vm-bootstrap."][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " 'role[BCPC-Hardware-Virtual],role[BCPC-Bootstrap]' "][LIT_CHARS " && "][VarSub KNIFE][LIT_CHARS " node run_list set bcpc-vm1."][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " 'role[BCPC-Hardware-Virtual],role[BCPC-Headnode]' "][LIT_CHARS " && "][VarSub KNIFE][LIT_CHARS " node run_list set bcpc-vm2."][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " 'role[BCPC-Hardware-Virtual],role[BCPC-Worknode]' "][LIT_CHARS " && "][VarSub KNIFE][LIT_CHARS " node run_list set bcpc-vm3."][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " 'role[BCPC-Hardware-Virtual],role[BCPC-EphemeralWorknode]'"]]}) (= scope= flags=0 words=[] bindings=[('ADMIN_SET', {[DQ [LIT_CHARS "true && "]]})]) (For vm [{[LIT_CHARS vm-bootstrap]}, {[LIT_CHARS vm1]}, {[VarSub mon_vms]}]) (= scope= flags=0 words=[] bindings=[('ADMIN_SET', {[DQ [VarSub ADMIN_SET][LIT_CHARS " "][VarSub KNIFE][LIT_CHARS " group add client bcpc-"][VarSub vm][LIT_CHARS .][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " admins && "]]})]) ) (= scope= flags=0 words=[] bindings=[('ADMIN_SET', {[DQ [VarSub ADMIN_SET][LIT_CHARS " :"]]})]) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[VarSub ADMIN_SET]}) (If (DBracket {B2 BINARY_INT_EQ {[VarSub BOOTSTRAP_CHEF_DO_CONVERGE]} {[LIT_CHARS 0]}}) (List (For vm [{[VarSub mon_vms]}]) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [VarSub KNIFE][LIT_CHARS " node run_list set bcpc-"][VarSub vm][LIT_CHARS .][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " 'role[BCPC-Monitoring]'"]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "BOOTSTRAP_CHEF_DO_CONVERGE is set to 0, skipping automatic convergence."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) (ElseTrue) (List (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [LIT_CHARS "sudo chef-client"]]}) (For vm [{[VarSub vms]}]) (Com {[LIT_CHARS do_on_node]} {[VarSub vm]} {[DQ [LIT_CHARS "sudo chef-client"]]}) ) (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm1]} {[DQ [LIT_CHARS "sudo chef-client"]]}) (For vm [{[VarSub vms]}]) (Com {[LIT_CHARS do_on_node]} {[VarSub vm]} {[DQ [LIT_CHARS "sudo hup_openstack || true"]]}) ) (For vm [{[VarSub mon_vms]}]) (List (Com {[LIT_CHARS do_on_node]} {[LIT_CHARS vm-bootstrap]} {[DQ [VarSub KNIFE][LIT_CHARS " node run_list set bcpc-"][VarSub vm][LIT_CHARS .][VarSub BCPC_HYPERVISOR_DOMAIN][LIT_CHARS " 'role[BCPC-Monitoring]'"]]}) (Com {[LIT_CHARS do_on_node]} {[VarSub vm]} {[DQ [LIT_CHARS "sudo chef-client"]]}) ) ) (For vm [{[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub mon_vms]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]}]) (Com {[LIT_CHARS do_on_node]} {[VarSub vm]} {[DQ [LIT_CHARS "sudo chef-client"]]}) ) ) ) )