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

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

2 ответа

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

TL; DR; использовать изогибрид после переупаковки нестандартного 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

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

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

Затем сохраните файл из графического интерфейса в /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-кэша в нашей локальной сети. Финальная строка (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-накопитель должен быть готов к установке!

Полное решение:

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

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

Настройте командную строку загрузки на использование файлов кикстарта и 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.

Другие вопросы по тегам