Add snippets of migrating hostname of a existing ceph host manually

This commit is contained in:
Alex Denes 2023-11-14 15:11:59 +00:00
parent 18a0fa1f01
commit fd4d3f53e0
No account linked to committer's email address
1 changed files with 73 additions and 0 deletions

73
ceph-hostname-migrate.sh Normal file
View File

@ -0,0 +1,73 @@
HOSTNAME="tentacle-0"
NEWHOST="leigh.united-kingdom"
NEWMONMAP="/tmp/monmap"
ADDR="2a04:5b81:2060:b00b:5054:ff:fe42:9677"
CEPH_STOR="/var/lib/ceph/"
HOSTNAME="tentacle-1"
NEWHOST="dumraon.india"
NEWMONMAP="/tmp/monmap"
ADDR="2a04:5b81:2060:b00b:5054:ff:fe33:bd4b"
CEPH_STOR="/var/lib/ceph/"
HOSTNAME="tentacle-2"
NEWHOST="flying-fish-cove.christmas-island"
NEWMONMAP="/tmp/monmap"
ADDR="2a04:5b81:2060:b00b:5054:ff:fe35:473c"
CEPH_STOR="/var/lib/ceph/"
ceph mon getmap -o "$NEWMONMAP"
monmaptool --rm "$HOSTNAME" "$NEWMONMAP"
monmaptool --addv "$NEWHOST" 'v2:['"$ADDR"']:3300' "$NEWMONMAP"
scp "$NEWMONMAP" root@"[$ADDR]":"$NEWMONMAP"
ceph osd crush rename-bucket "$HOSTNAME" "$(echo $NEWHOST | cut -d'.' -f1)"
ceph auth get mgr."$HOSTNAME" | sed 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' | ceph auth import -i /dev/stdin
ceph auth rm mgr."$HOSTNAME"
ceph auth get mds."$HOSTNAME".0 | sed 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' | ceph auth import -i /dev/stdin
ceph auth rm mds."$HOSTNAME".0
ceph auth get mds."$HOSTNAME".1 | sed 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' | ceph auth import -i /dev/stdin
ceph auth rm mds."$HOSTNAME".1
exit
# Change hostname
echo "$NEWHOST" > /etc/s6/env/sysctl.kernel-hostname/VAL
sysctl kernel/hostname="$NEWHOST"
# Handle simple graceful monmap update
s6-rc -v2 -d change ceph.mon
mv "$CEPH_STOR"/mon/ceph-"$HOSTNAME" "$CEPH_STOR"/mon/ceph-"$NEWHOST"
ceph-mon -i "$(hostname)" --inject-monmap "$NEWMONMAP"
s6-rc -v2 change ceph.mon
# Rename keyring IDS and restart everything
s6-rc -v2 -d change ceph.mgr
mv "$CEPH_STOR"/mgr/ceph-"$HOSTNAME" "$CEPH_STOR"/mgr/ceph-"$NEWHOST"
sed -i 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' "$CEPH_STOR"/mgr/ceph-"$NEWHOST"/keyring
s6-rc -v2 change ceph.mgr
sed -i 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' /etc/s6/rc/logger.ceph/consumer-for
mv /etc/s6/rc/bundle.ceph/contents.d/ceph.mds."$HOSTNAME".0 /etc/s6/rc/bundle.ceph/contents.d/ceph.mds."$NEWHOST".0
mv /etc/s6/rc/bundle.ceph/contents.d/ceph.mds."$HOSTNAME".1 /etc/s6/rc/bundle.ceph/contents.d/ceph.mds."$NEWHOST".1
s6-rc -v2 -d change ceph.mds."$HOSTNAME".0
mv /etc/s6/rc/ceph.mds."$HOSTNAME".0 /etc/s6/rc/ceph.mds."$NEWHOST".0
sed -i 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' /etc/s6/rc/ceph.mds."$NEWHOST".0/run
mv "$CEPH_STOR"/mds/ceph-"$HOSTNAME".0 "$CEPH_STOR"/mds/ceph-"$NEWHOST".0
sed -i 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' "$CEPH_STOR"/mds/ceph-"$NEWHOST".0/keyring
s6-rc -v2 change ceph.mds."$NEWHOST".0
s6-rc -v2 -d change ceph.mds."$HOSTNAME".1
mv /etc/s6/rc/ceph.mds."$HOSTNAME".1 /etc/s6/rc/ceph.mds."$NEWHOST".1
sed -i 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' /etc/s6/rc/ceph.mds."$NEWHOST".1/run
mv "$CEPH_STOR"/mds/ceph-"$HOSTNAME".1 "$CEPH_STOR"/mds/ceph-"$NEWHOST".1
sed -i 's/'"$HOSTNAME"'/'"$NEWHOST"'/g' "$CEPH_STOR"/mds/ceph-"$NEWHOST".1/keyring
s6-rc -v2 change ceph.mds."$NEWHOST".1
nnd-s6