Skip to content

Instantly share code, notes, and snippets.

@mittwillson
Last active July 23, 2024 09:10
Show Gist options
  • Save mittwillson/eb4ded865b7ba282c622ab4f282316cc to your computer and use it in GitHub Desktop.
Save mittwillson/eb4ded865b7ba282c622ab4f282316cc to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
OLD_HOSTNAME=$(hostname)
NEW_HOSTNAME=$1
rename() {
echo $OLD_HOSTNAME > /.old_nodename
hostnamectl set-hostname "$NEW_HOSTNAME"
# edit hostname file
sed -i.bak "s/$OLD_HOSTNAME/$NEW_HOSTNAME/gi" /etc/hostname
# edit hosts file
sed -i.bak "s/$OLD_HOSTNAME/$NEW_HOSTNAME/gi" /etc/hosts
# edit mailname if it exists
[ -e "/etc/mailname" ] && sed -i.bak "s/$OLD_HOSTNAME/$NEW_HOSTNAME/gi" /etc/mailname
# edit main.cf if it exists
[ -e "/etc/postfix/main.cf" ] && sed -i.bak "s/$OLD_HOSTNAME/$NEW_HOSTNAME/gi" /etc/postfix/main.cf
# copy config files to new node name
cp "/var/lib/rrdcached/db/pve2-node/$OLD_HOSTNAME" "/var/lib/rrdcached/db/pve2-node/$NEW_HOSTNAME" -r
cp "/var/lib/rrdcached/db/pve2-storage/$OLD_HOSTNAME" "/var/lib/rrdcached/db/pve2-storage/$NEW_HOSTNAME" -r
cp "/var/lib/rrdcached/db/pve2-$OLD_HOSTNAME" "/var/lib/rrdcached/db/pve2-$NEW_HOSTNAME" -r
cp "/etc/pve/nodes/$OLD_HOSTNAME" "/etc/pve/nodes/$NEW_HOSTNAME" -r
}
cleanup() {
OLD_HOSTNAME=$(cat /.old_nodename)
[ -z "$OLD_HOSTNAME" ] && exit 0
rm -rf "/var/lib/rrdcached/db/pve2-node/$OLD_HOSTNAME"
rm -rf "/var/lib/rrdcached/db/pve2-storage/$OLD_HOSTNAME"
rm -rf "/var/lib/rrdcached/db/pve2-$OLD_HOSTNAME"
rm -rf "/etc/pve/nodes/$OLD_HOSTNAME"
}
[ -e "/.old_nodename" ] && cleanup || rename
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment