Ubuntu 14.04 でキックスタート サーバーを作成する手順

Ubuntu 14.04 でキックスタート サーバーを作成する手順

Ubuntu 14.04 LTS でキックスタート サーバーを作成するための手順が必要です

答え1

これは良いステップバイステップガイドです

要約; カスタム ISO を再パックした後、isohybrid を使用します

この 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 マウント -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

次に、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

次に、次のセクションのappend行を置き換える必要があります。

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

次に、起動可能な USB を作成するために使用する新しい 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

USB 用の起動可能な ISO を完成させるには、それをハイブリッド化する必要があります。

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 をリマスターします。つまり、非グラフィカル 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プログラムを使用して、キックスタートファイルを追加します。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ます。ftpbuild-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.preseedquietvga=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 および preseed ファイルを調整します。

関連情報