Nur falls das mal verschwindet: Hier der Upgrade-Prozess, der pro Datacenter durchlaufen werden muß, um ein Triton-Datacenter auf ein neues Release anzuheben. Was fehlt, ist das Rebooten aller Nodes (inklusive Headnode), damit diese von dem neuen Platform-Image booten. Beim Reboot des Headnodes empfiehlt es sich, zunächst sicherzustellen, dass der Manatee-Primary auf dem Headnode läuft, damit man einfach mit manatee-adm freeze
den Manatee-Cluster "einfrieren" und dann den Headnode durchbooten kann, ohne daß es einen Clusterfailover gibt.
[root@headnode (barovia) ~]# cat /opt/custom/bin/update-all
#!/bin/bash
set -o errexit
set -o xtrace
imgadm vacuum -f
sdcadm update --all --just-images -y
sdcadm self-update --allow-major-update --latest
sdcadm dc-maint start && printf "DC maintenance has started at %s\n" "$(date)"
sdcadm update --all -y
sdcadm experimental update-agents --latest --all -y
sdcadm experimental update-other
sdcadm experimental update-gz-tools --latest
sdcadm dc-maint stop && printf "DC maintenance has ended at %s\n" "$(date)"
sdcadm platform remove -a --cleanup-cache -y
sdcadm platform install --latest
sdcadm platform assign --latest --all
sdcadm platform set-default --latest
sdc-oneachnode -a 'sdc-usbkey update'
# Optional, will disrupt fabric network traffic
sdcadm update portolan --force-data-path
printf 'Update of all components complete\n'
now=$(date +%Y%m%dT%H%M%SZ)
sdc-vmapi /vms?state=active\&tag.smartdc_type=core | json -Ha > "/opt/custom/core_services_${now}.json"
exit
update-agents Update SDC agents
dc-maint Show and modify the DC maintenance mode.
update-other Temporary grabbag for small SDC update steps.
update-gz-tools Temporary grabbag for updating the SDC global zone tools.
add-new-agent-svcs Temporary grabbag for installing the SDC global zone new agents.
update-docker Add/update the docker service.
install-docker-cert Installs a custom TLS certificate to be used by sdc-docker.
portolan Add/update the portolan service.
fabrics Initialize fabrics in the datacenter.
default-fabric Initialize a default fabric for an account.
Als Ergänzung findet man im Gist-Repo von Brian Bennet auch noch ein Skriptchen, um alle Compute-Nodes nacheinander durchzubooten:
#!/bin/bash
if [[ -n "$TRACE" ]]; then
export PS4='[\D{%FT%TZ}] ${BASH_SOURCE}:${LINENO}: ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
set -o xtrace
fi
# Stage each CN to reboot in 10m intervals
for s in $(sdc-server lookup hostname!=headnode -j | sort | json -ga hostname); do
printf '%s will reboot in %d m.\n' "$s" "${time:=1}"
sdc-oneachnode -n "$s" 'echo "init 6" | at now +'${time}'minute'
time=$(( time + 10 ))
done
printf 'headnode will reboot in %d m.\n' "$time"
echo "init 6" | at now +${time}minute