Я хотел бы создать универсальный сценарий автоматической установки с использованием Kickstart, который будет помещен на компакт-диск и использоваться вместе со стандартным установщиком DVD, т.е. пользователю этого сценария необходимо будет добавить inst.ks=cdrom
для загрузки параметров, а затем он будет установлен, например Fedora на машине запрашивает только пароли.
Кажется, что стандартной практикой является создание сценариев кикстарта с паролями (или хэшами паролей) в них, что не кажется идеальным, если вы собираетесь распространять сценарий среди третьих лиц. Я также хочу включить службу sshd в сценарии Kickstart, что позволит любому пользователю в локальной сети, знающему пароли по умолчанию, войти в систему. Конечно, я могу просто отключить аутентификацию по паролю в sshd, но теперь это становится беспорядочным, то есть я пытаюсь обойти общедоступные пароли по умолчанию (и я вполне могу что-то забыть).
Я новичок в Kickstart, я бы хотел, чтобы сценарий установки запрашивал / запрашивал / вводил пароли для конкретного сайта, и пока что я придумал два варианта:
%pre
раздел, а затем сгенерировать, например, accounts.ks
с участием rootpw
и user
команды, которые будут включены из основного раздела команд.chage
в %post
.)Меня беспокоит, что, судя по моим поисковым запросам в Google, никто этого не делает, никто даже об этом не просит. :-) Кажется, все помещают окончательные пароли / хэши прямо в скрипты Kickstart. Таким образом, мне остается создать свой собственный интерактивный сценарий для обоих вариантов, что, я боюсь, в конечном итоге окажется плохим. Или, возможно, я неправильно понимаю всю концепцию (полу) автоматической установки с помощью Kickstart.
Какова стандартная практика создания универсальных сценариев кикстарта для подобных сценариев, когда вам нужно распространять сценарий, а не заставлять пользователей его редактировать?
Если вы не дадите ответа на что-то, что требуется, Anaconda предложит это пользователю.
Я проверил это, закомментировав строки пользователя и rootpw в файле Kickstart. После установки все остальное будет предварительно заполнено, но меня попросят создать пароль root и пользователя. (пользователь не является обязательным)
В текст В этом режиме установка будет ожидать ввода данных пользователем перед продолжением. В графический В этом режиме установка будет продолжена, пока вы сможете ввести пароль во время установки пакета. Наконец, cmdline режим не поддерживает взаимодействие с пользователем и будет остановлен.
Пример:
Предыдущие экраны Anaconda были пропущены, и установка перешла непосредственно к установке пакета. В конце установки Anaconda ожидает выбора пароля root и, при необходимости, создания пользователя.
(Это может быть немного поздно, а может, и немного долго, но это именно то, что я сделал, и на то, чтобы довести его до совершенства, потребовались месяцы / годы)
Вся информация об установке (например, загрузочный носитель / дерево установки, пакеты, сценарии) находится на главном сервере. Файл кикстарта тоже есть. Кстати: я использую Fedora, но не думаю, что это имеет какое-либо значение для этого метода. См. Эту ссылку для получения дополнительной информации о как использовать pxe для загрузки и установки как Fedora это делает; он также включает очень полезные ссылки для каждого шага.
Не вдаваясь в подробности, это мой процесс:
1) настроить загрузочную установку с сервера через pxe. Файл pxe по умолчанию содержит список меню различных установок, которые вы хотите выполнить. они могут быть выполнены через NFS, FTP или HTTP. Мой - через nfs, поэтому параметр кикстарта, определяющий, где взять файл:
inst.ks = nfs: [IP-адрес сервера]: / [путь на сервере к файлу кикстарта].
Используйте ip = [параметры сети], чтобы указать параметры сети, которые будут использоваться от сервера к клиенту; оставьте поле пустым, чтобы использовать DHCP.
2) Создайте файл кикстарта (см. формат и команды).
3) В
%pre
напишите (на своем любимом языке сценариев) инструкции по кикстарт-установке для каждого типа установленной машины. Вы можете создать определенные списки пакетов, которые будут включены, а также различные строки установки, которые также будут включены.4) В
%post
раздел написать код для выполнения настройки установленной системы (примечание: эти разделы можно запускать либо вchroot
илиnon-chroot
среды, а также у вас может быть несколько%post
разделы.5) Наконец, запустите каждую машину для загрузки из сети pxe, в меню, которое вскоре появится, выберите тип машины (или, возможно, имя) для установки, нажмите Enter, затем выпейте кофе, пока установка запускается автоматически (если не возникнет ошибка в сценарии, а может чего-то не хватает).
6) По завершении нажимаем на перезагрузку и вуаля
NB: вы можете получить доступ к командной строке загрузки через файл /proc/cmdline
, чтобы вы могли добавить дополнительную информацию для %pre
(например, имя хоста). Установщик игнорирует их.
NB (также): имейте в виду, что даже если доступ к сети доступен, преобразователь недоступен, поэтому вам придется использовать только IP-адреса.
Я надеюсь, что это поможет кому-то сделать этот процесс очень простым и, возможно, полезным.