59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
import os
|
|
import string
|
|
import random
|
|
import xml.etree.ElementTree as ET
|
|
import logging
|
|
import socket
|
|
|
|
def generate_random_string(length):
|
|
letters = string.ascii_lowercase
|
|
result_str = ''.join(random.choice(letters) for i in range(length))
|
|
return result_str
|
|
|
|
# Set up logging
|
|
logging.basicConfig(filename='/sdsat/logs/change_hostname.log', level=logging.INFO, format='%(asctime)s %(message)s')
|
|
|
|
host = socket.gethostname()
|
|
print (host)
|
|
logging.info(f"Hostname recupere : {host}")
|
|
|
|
if host == "sd-satxx.dtx.io" :
|
|
new_hostname = "DTX-SDSAT-" + generate_random_string(10)
|
|
logging.info('New hostname is: ' + new_hostname)
|
|
|
|
# Parse the XML configuration file
|
|
|
|
tree = ET.parse('/conf/config.xml')
|
|
|
|
root = tree.getroot()
|
|
|
|
|
|
# Find the hostname element and update it
|
|
|
|
for elem in root.iter('hostname'):
|
|
old_hostname = elem.text
|
|
elem.text = new_hostname
|
|
|
|
|
|
# Log the old and new hostname
|
|
|
|
logging.info('Changed hostname from ' + str(old_hostname) + ' to ' + new_hostname)
|
|
|
|
|
|
# Save the modified XML configuration file
|
|
|
|
tree.write('/conf/config.xml')
|
|
|
|
|
|
# Apply the new hostname immediately (this will require root privileges)
|
|
|
|
os.system("sudo hostname " + new_hostname)
|
|
|
|
|
|
# Log the completion of the script
|
|
|
|
logging.info('Hostname change completed successfully')
|
|
|
|
else:
|
|
logging.info('No need to change, changed already YBT')
|