Назад | Перейти на главную страницу

Создание скрипта для серверов Kickstarting; проблема с созданным сервером softraid 1 на базе CentOS 7

Прежде всего; Прошу прощения, если мой заголовок неверен, но я не хотел слишком "загромождать" его.

Я создаю сценарий bash, который используется для установки различных серверов на базе CentOS 6 и CentOS 7 с аппаратным рейдом и программным RAID 1. Пока что у меня все хорошо. CentOS 6 (аппаратный RAID и программный RAID 1) полностью готов.

Однако теперь у меня возникла проблема с переустановкой CentOS 7 через файл кикстарта, на котором уже установлен программный RAID 1. Для предварительно установленного аппаратного RAID это не проблема, так как я могу использовать "set root = 'hd0, gpt2'" в моем скрипте.

Я думаю, мне нужно использовать (на CentOS 7 с программным RAID 1) параметр "set root = 'mduuid / 950f53e3b96cf5bbde74b5665f8d124c'", правильно (первый вопрос)?

Итак, я попробовал на сервере следующее (извините, не совсем чистый писатель кода):

tmpraid=$(cat grub.cfg | grep -e 'set root=' | head -1)
tmpraid2="${tmpraid::-1}"
tmpraid3=${tmpraid2//set root=\'/}

Это приводит к следующему выводу на тестовом сервере: mduuid / 950f53e3b96cf5bbde74b5665f8d124c

Однако когда я использую это в своем скрипте, например:

ssh root@192.168.0.1 "tmpraid=$(cat /boot/grub2/grub.cfg | grep -e 'set root=' | head -1)"
ssh root@192.168.0.1 "tmpraid2="${tmpraid::-1}""
ssh root@192.168.0.1 "tmpraid3=${tmpraid2//set root=\'/}"

Он выведет: cat: /boot/grub2/grub.cfg: нет такого файла или каталога

Я предполагаю, что он пытается запустить эту команду на текущем сервере вместо целевого сервера?

Теперь по поводу моих вопросов.

  1. Правильно ли используется строка "mduuid" для загрузки кикстарта через GRUB2? Или есть другой способ?
  2. Почему в bash написано «Нет такого файла или каталога»?
  3. Возможно, есть лучший / более чистый способ получить строку «mduuid» с целевого сервера?

Я надеюсь, что объяснил все достаточно подробно, чтобы получить помощь или совет по вышеизложенному. Если нет, не стесняйтесь спрашивать меня. Спасибо заранее.

//редактировать

Что ж, мне удалось заставить скрипт работать. Пришлось внести некоторые изменения после долгих поисков и экспериментов. Может быть, есть более простой способ добиться такого кикстарта, но если никто не объяснит, я попробую с этим.

    ssh root@$nodeIP "wget http://192.50.100.200/files/getgrub -O /root/getgrub"
    ssh root@$nodeIP "chmod +x /root/getgrub"
    ssh root@$nodeIP "sh /root/getgrub"
    getgrub=$(ssh root@$nodeIP "sh /root/getgrub")

Результат наконец сохраняется в getgrub. Так что я могу поэкспериментировать с этим.