Скрипт для генерации нового machine-id при запуске

Вопрос или проблема

Мне нужно клонировать 600 жестких дисков, оснащенных Ubuntu 16.04.2 LTS, и одна из проблем заключается в том, что клоны также копируют такие данные, как UUID и machine-id, что, как вы понимаете, может быть немного проблематично.

После обсуждения мой коллега предложил следующее:

cd /tmp 
vi change_mac_id 

#!/bin/sh    
 if [ -f /etc/machine-id  ]; then    
   rm /etc/machine-id && \    
   systemd-machine-id-setup    
   echo "Изменено !!"    
 fi 

Итак, мой вопрос: могу ли я создать скрипт, который будет запускаться при загрузке ОС, проверять machine-id и, ЕСЛИ он совпадает с machine-id оригинальной машины, генерировать новый?

Чтобы запустить ваш скрипт при загрузке, вы можете добавить следующее в /etc/crontab

@reboot root /usr/local/bin/myscript.sh

Ответ или решение

Для решения проблемы с клонированием дисков, которые содержат одинаковый machine-id, необходимо создать скрипт, который будет проверять уникальный идентификатор машины при загрузке системы. Если machine-id совпадает с оригинальным, скрипт должен генерировать новый идентификатор. Это позволит избежать неожиданных конфликтов в сетевых и программных настройках.

Подробное решение

  1. Создание скрипта:

    Начнем с написания скрипта, который будет выполнен при старте системы.

    Шаги:

    • Откройте терминал и создайте новый файл скрипта.

      cd /usr/local/bin
      sudo vi generate_machine_id.sh
    • Вставьте следующий код в файл generate_machine_id.sh:

      #!/bin/bash
      
      # Оригинальный machine-id, который нужно проверить
      ORIGINAL_MACHINE_ID="original_machine_id_here"
      
      # Путь к файлу machine-id
      MACHINE_ID_FILE="/etc/machine-id"
      
      # Проверяем, существует ли файл machine-id
      if [ -f $MACHINE_ID_FILE ]; then
       # Читаем текущий machine-id
       CURRENT_MACHINE_ID=$(cat $MACHINE_ID_FILE)
      
       # Сравниваем текущий machine-id с оригинальным
       if [ "$CURRENT_MACHINE_ID" == "$ORIGINAL_MACHINE_ID" ]; then
           echo "Machine ID совпадает с оригинальным. Генерируем новый..."
           rm -f $MACHINE_ID_FILE
           systemd-machine-id-setup
           echo "Machine ID успешно изменен!"
       else
           echo "Machine ID отличается от оригинального."
       fi
      else
       echo "Файл machine-id не найден. Генерируем новый..."
       systemd-machine-id-setup
      fi
    • Замените original_machine_id_here на фактический machine-id оригинальной машины. Чтобы получить его, выполните команду:

      cat /etc/machine-id
    • Сохраните и закройте файл.

    • Сделайте скрипт исполняемым:

      sudo chmod +x generate_machine_id.sh
  2. Автоматический запуск скрипта при загрузке:

    Чтобы скрипт выполнялся автоматически при каждой загрузке системы, добавьте его в crontab.

    Шаги:

    • Откройте crontab для редактирования:

      sudo crontab -e
    • В конце файла добавьте строку:

      @reboot /usr/local/bin/generate_machine_id.sh
    • Сохраните изменения.

Резюме

Теперь, когда система загружается, скрипт generate_machine_id.sh будет проверять и, если необходимо, изменять machine-id. Это решение поможет избежать конфликтов идентификаторов в вашем окружении при клонировании HDD.

Если у вас возникнут какие-либо вопросы, не стесняйтесь обращаться за дополнительной помощью. Успехов в вашей работе с клонированием систем!

Оцените материал
Добавить комментарий

Капча загружается...