Действия по созданию сервера kickstart на Ubuntu 14.04

Действия по созданию сервера kickstart на Ubuntu 14.04

Нужна пошаговая процедура создания сервера kickstart на Ubuntu 14.04 LTS

решение1

Это хорошее пошаговое руководство.

TL;DR; использовать isohybrid после перепаковки пользовательского iso

Чтобы сделать этот usb, я использовал виртуальную машину с установленной Ubuntu 14.04. Цель здесь — сделать загрузочный usb, который не требует выбора таких вещей, как раскладка клавиатуры, язык и т. д. Мы хотим автоматическую установку сервера Ubuntu.

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

wget http://releases.ubuntu.com/14.04/ubuntu-14.04.2-server-amd64.iso

Нам понадобится место для монтирования распакованного файла iso.

sudo mkdir -p /mnt/iso

После того, как мы создали точку монтирования для него, теперь нам нужно его смонтировать. Это откроет файлы, которые хранятся внутри iso. К сожалению, файлы будут только для чтения

. sudo mount -o loop ubuntu-14.04.2-server-amd64.iso /mnt/iso

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

sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso

Наш новый рабочий каталог будет /opt/ubuntuiso

cd /opt/ubuntuiso

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

echo en | sudo tee isolinux/lang

Теперь мы фактически собираемся создать файл kickstart с помощью программы system-config-kickstart. Поэтому мы убеждаемся, что она установлена, а затем запускаем ее.

sudo apt-get install system-config-kickstart
system-config-kickstart

Затем сохраните файл из GUI в /opt/ubuntuiso/. Это должно сохранить файл с именем ks.cfg. Мой ks.cfg выглядит следующим образом

#Generated by Kickstart Configurator
#platform=AMD64 or Intel EM64T
#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone America/Denver
#Root password
rootpw --disabled
#Initial user
user ubuntu --fullname "ubuntu" --iscrypted --password $1$MQ0zGB4W$pwjX8nolgr2RJch2Omamt.
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use CDROM installation media
cdrom
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext2 --size 100 --asprimary
part swap --recommended
part / --fstype ext4 --size 1 --grow
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
%post
#!/bin/bash
exec < /dev/tty6 > /dev/tty6
chvt 6
echo 'Acquire::http { Proxy "http://10.2.4.27"; };' > /etc/apt/apt.conf.d/02proxy
apt-get update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get install -y git ansible openssh-server vim
chvt 1

В постскриптуме (все после ) есть небольшой перехват %post. Строка, начинающаяся с exec, и следующая строка ( chvt 6) заставляют установщик показывать вывод команд, которые выполняются после нее. Причина этого в том, что полоса загрузки не будет двигаться во время установки, и может показаться, что установщик завис. Следующая строка, которая выполняет функцию прокси, предназначена для apt-cache в нашей локальной сети. Последняя строка ( chvt 1) возвращает вывод в основной установщик.

Теперь нам нужно добавить preseed-файл, чтобы избежать других вопросов.

echo 'd-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Finish partitioning and write changes to disk d-i partman/confirm boolean true' | sudo tee ks.preseed

Теперь нам нужно сообщить установщику о файлах, которые мы только что сохранили, поэтому нам нужно изменить isolinux/txt.cfg. Сначала нам нужно сделать файл доступным для записи.

sudo chmod +w isolinux/txt.cfg

Затем нам нужно заменить строку добавления следующего раздела

label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --

Замените строку добавления на

append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --

Сохраните и выйдите из файла. Нам также нужно убедиться, что мы вернули файл в исходное состояние, поэтому удалите разрешения на запись.

sudo chmod -w isolinux/txt.cfg

Теперь создайте новый ISO-файл, который мы будем использовать для создания загрузочного USB-накопителя.

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso

Чтобы завершить создание загрузочного образа ISO для USB, нам необходимо его гибридизировать.

sudo isohybrid /opt/autoinstall.iso

После гибридизации мы можем переместить его на usb-накопитель. Usb-накопитель в моей виртуальной машине отображается в /dev/sdb, но вам нужно использовать правильную метку, поэтому замените X соответствующим образом. Убедитесь, что usb-накопитель размонтирован.

sudo umount /dev/sdX

И, наконец, скопируйте ISO-образ на USB-накопитель. (Обратите внимание, **это уничтожит данные на целевом устройстве — убедитесь, что вы знаете, что делаете)

sudo dd if=/opt/autoinstall.iso of=/dev/sdX

Теперь ваш USB-накопитель готов к установке!

решение2

Комплексное решение:

Переделать CD, т. е. загрузить неграфический установочный ISO Ubuntu (серверный или альтернативный установочный CD) и смонтировать его. В этом случае, ваш ISO Ubuntu 14.

sudo mkdir -p /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso

Скопируйте соответствующие файлы в другой каталог.

sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso

Предотвратить появление меню выбора языка

cd /opt/ubuntuiso
echo en | sudo tee isolinux/lang

Используйте программу с графическим интерфейсом для добавления файла кикстарта с именемks.cfg

sudo apt-get install system-config-kickstart
system-config-kickstart # save file to ks.cfg

Чтобы добавить пакеты для установки, добавьте %packageраздел в ks.cfgфайл кикстарта, добавив в конец ks.cfgфайла что-то вроде этого.

%packages
@ ubuntu-server
openssh-server
ftp
build-essential

Это установит «комплект» ubuntu-server и добавит пакеты openssh-server, ftpи build-essential.

Добавьте файл preseed, чтобы подавить другие вопросы

echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' | sudo tee ks.preseed

Настройте командную строку загрузки на использование файлов kickstart и preseed

sudo nano isolinux/txt.cfg

Искать

label install
  menu label ^Install Ubuntu Server
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --

добавить ks=cdrom:/ks.cfgи preseed/file=/cdrom/ks.preseedв строку добавления. Вы можете удалить слова quietи vga=788. Это должно выглядеть так

append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --

Теперь создайте новый ISO-образ.

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso

Вот и все. У вас будет компакт-диск, который установит систему Ubuntu, как только вы с него загрузитесь, без необходимости ввода каких-либо данных.

При необходимости измените файлы ks.cfg и preseed.

Связанный контент