Skip to content

Instantly share code, notes, and snippets.

@kamidzi
Created June 20, 2016 21:08
Show Gist options
  • Save kamidzi/19cb8feab12ea8d62b6b0435c887c6ba to your computer and use it in GitHub Desktop.
Save kamidzi/19cb8feab12ea8d62b6b0435c887c6ba to your computer and use it in GitHub Desktop.
Exercise pr1054 ?
#!/bin/bash
set -eu
d=$(git rev-parse --show-toplevel)
cd $d/bootstrap/vagrant_scripts || exit 1
if [[ ! -r Vagrantfile ]] ; then exit 2 ; fi
# create the aggregate
vagrant ssh vm1 -c 'bash <<EoF
read sudoscript <<SuDo
source /root/adminrc && openstack aggregate list && \
openstack aggregate delete maintenance && \
openstack aggregate create --zone maintenance maintenance && \
openstack aggregate list
SuDo
sudo bash -c "\$sudoscript"
EoF
'
# set attribute
vagrant ssh -c '
knife exec -E "n = Chef::Node.load(\"bcpc-vm2.hypervisor-bcpc.example.com\"); n.normal[\"bcpc\"][\"in_maintenance\"] = true ; n.save ; print \"in_maintenance = \" ; puts n.normal[\"bcpc\"][\"in_maintenance\"]"
' vm-bootstrap
# re-chef
vagrant ssh -c 'sudo -i chef-client -obcpc::host-aggregates' vm2
# revert
vagrant ssh -c '
knife exec -E "n = Chef::Node.load(\"bcpc-vm2.hypervisor-bcpc.example.com\"); n.normal[\"bcpc\"][\"in_maintenance\"] = false ; n.save ; puts n.normal[\"bcpc\"][\"in_maintenance\"]"
' vm-bootstrap
vagrant ssh vm1 -c 'bash <<EoF
read sudoscript <<SuDo
source /root/adminrc && openstack aggregate list && \
openstack aggregate remove host maintenance bcpc-vm2 || true && \
openstack aggregate delete maintenance && \
openstack aggregate create maintenance && \
openstack aggregate list
SuDo
sudo bash -c "\$sudoscript"
EoF
'
vagrant ssh -c 'sudo -i chef-client -obcpc::host-aggregates' vm2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment