在 Ubuntu 14.04 上建立 kickstart 伺服器的步驟

在 Ubuntu 14.04 上建立 kickstart 伺服器的步驟

需要在 Ubuntu 14.04 LTS 上建立 kickstart 伺服器的逐步過程

答案1

這是一個很好的逐步指南

長話短說;重新打包自訂 iso 後使用 isohybrid

為了製作這個 USB,我使用了安裝了 Ubuntu 14.04 的虛擬機器。這裡的目標是製作一個不需要選擇鍵盤佈局、語言等的可啟動 USB。

我們需要取得要為安裝自訂的 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 循環 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 的程式來建立 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) 將輸出還原到主安裝程式。

現在我們需要新增預置文件,這樣我們就可以避免其他問題。

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

為了最終確定 USB 的可啟動 iso,我們需要對其進行混合。

sudo isohybrid /opt/autoinstall.iso

混合完成後,我們就可以將其推送到U盤了。我的虛擬機器中的 USB 驅動器顯示在 中/dev/sdb,但需要使用正確的標籤,因此相應替換 X 確保 USB 驅動器已卸載。

sudo umount /dev/sdX

最後將 iso 推送到 USB 隨身碟。 (請注意 **這會破壞目標裝置上的資料 - 確保您知道自己在做什麼)

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

現在您的 USB 隨身碟應該已準備好安裝!

答案2

完整的解決方案:

重新製作 CD,下載非圖形 Ubuntu 安裝 ISO(伺服器或備用安裝 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

使用GUI程式新增一個名為的kickstart文件ks.cfg

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

若要新增安裝包,請%package在 kickstart 檔案中新增一個部分ks.cfg,並在檔案末尾附加ks.cfg類似這樣的內容。

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

這將安裝 ubuntu-server“捆綁包”,並添加openssh-serverftpbuild-essential軟體包。

新增預置文件,以抑制其他問題

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到附加行。您可以刪除quietvga=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

就是這樣。您將擁有一張 CD,一旦您從 Ubuntu 系統啟動,就可以安裝它,而無需任何輸入。

根據需要調整 ks.cfg 和預置文件。

相關內容