1 views
実現する機能
2009年から稼働している我が家のWebServerですが、DVD-Driveがとうとう壊れてしまいました。OSも言うことを聞かなくなってきたので、3階のPC(テストサーバー)にPXE(Preboot eXecution Environment)サーバーを構築して、1階のWebServerにネットワークブートでOSを自動でインストールし直しました。この作業で丸一日潰れたので備忘録を残しています。
PXE(Preboot eXecution Environment)サーバーの構築
(以下はGNOME端末を用いての手順)
以下の黒背景部分はGNOME端末を表示しています。紫色はキーボードから入力するコマンド(コピペした方が楽ですが、コマンドは覚えられません)、緑はコマンドや処理内容の説明、白は自動表示する部分、赤は注意書きです。
#PXEサーバーに必要なソフトをインストール SYSLINUX はブートローダ(OSの起動画面ソフト) Xinetd(ザイネットディー)は、ネットからの接続要求を受けて提供要求のあ ったプログラムを起動 tftp-serverは、ネットワーク(TCP/IP)上でファイルをやり取りするサーバ [tu@ufuso ~]$ sudo yum -y install syslinux xinetd tftp-server #sudoを使うので、最初だけユーザーのパスワード入力を求められる [sudo] tu のパスワード: #pxelinuxという名称でOSやインストーラなどをネットワーク経由で起動する ファイルを格納するフォルダを作成 [tu@ufuso ~]$ sudo mkdir /var/lib/tftpboot/pxelinux.cfg #ブートローダファイル(pxelinux.0)をtftpbootフォルダにコピー [tu@ufuso ~]$ sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #tftp-serverの編集 [tu@ufuso ~]$ sudo vi /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot #noに変更して使えるようにする disable = no per_source = 11 cps = 100 2 flags = IPv4 } #xinetdを起動 [tu@ufuso ~]$ sudo systemctl start xinetd tftp #自動起動の設定 [tu@ufuso ~]$ sudo systemctl enable xinetd tftp #dhcpサーバーのinstall [tu@ufuso ~]$ sudo yum -y install dhcp インストール: dhcp.x86_64 12:4.2.5-68.el7.centos.1 完了しました! #dhcpサーバーの編集 [tu@ufuso ~]$ sudo vi /etc/dhcp/dhcpd.conf allow booting; allow bootp; #自宅のネット環境 subnet 192.168.24.0 netmask 255.255.255.0 { #自宅のインターネットのルーター option routers 192.168.240.1; #自宅ルーターの option subnet-mask 255.255.255.0; #DHCPサーバーのドメイン名 option domain-name "ufuso.org"; #DNSサーバーのIP option domain-name-servers 192.168.24.240; #割り振るIPの範囲を適当に設定(例示では130〜150) range 192.168.24.130 192.168.24.150; default-lease-time 21600; max-lease-time 43200; filename "/pxelinux.0"; } #dhcpdを起動 [tu@ufuso ~]$ sudo systemctl start dhcpd
|
ネットワークインストールの設定
(1)以下はGNOME端末を用いての手順。
以下の黒背景部分はGNOME端末を表示しています。黄色はキーボードから入力するコマンド(コピペした方が楽ですが、コマンドは覚えられません)、緑はコマンドや処理内容の説明、白は自動表示する部分、赤は注意書きです。
#centos7のDVDイメージファイル(.iso)をDVDのように使うフォルダの作成 [tu@ufuso ~]$ sudo mkdir -p /var/pxe/centos7 #ブート時に必要なファイルを保存するフォルダの作成 [tu@ufuso ~]$ sudo mkdir /var/lib/tftpboot/centos7 #CentOS7.4を保存するフォルダの作成 [tu@ufuso ~]$ sudo mkdir /home/tu/iso #CentOS7.4をダウンロード [tu@ufuso ~]$ sudo wget http://ftp.iij.ad.jp/pub/linux/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso #CentOS7.4をisoフォルダに移動 [tu@ufuso ~]$ sudo mv CentOS-7-x86_64-DVD-1708.iso /home/tu/iso #CentOS7.4を/var/pxe/centos7フォルダにマウント [tu@ufuso ~]$ sudo mount -t iso9660 -o loop /home/tu/iso/CentOS-7-x86_64-DVD-1708.iso /var/pxe/centos7 #vmlinuzをtftpbootフォルダ内にコピー [tu@ufuso ~]$ sudo cp /var/pxe/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/ #initrd.imgをtftpbootフォルダ内にコピー [tu@ufuso ~]$ sudo cp /var/pxe/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/ #menu.c32をtftpbootフォルダ内にコピー [tu@ufuso ~]$ sudo cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/ #ブートメニュー画面の編集 [tu@ufuso ~]$ sudo vi /var/lib/tftpboot/pxelinux.cfg/default timeout 600 default menu.c32 menu title ########## PXE Boot Menu ########## label 1 menu label ^1) Install CentOS 7 kernel centos7/vmlinuz append initrd=centos7/initrd.img method=http://192.168.24.240/centos7 devfs=nomount label 2 menu label ^2) Boot from local drive localboot #Aliasの設定 [tu@ufuso ~]$ sudo vi /etc/httpd/conf.d/pxeboot.conf # 新規作成 Alias /centos7 /var/pxe/centos7 <Directory /var/pxe/centos7> Options Indexes FollowSymLinks # アクセス許可範囲 自宅ネットワーク内のみ Require ip 127.0.0.1 192.168.24.0/24 </Directory> #httpdの再起動 [tu@ufuso ~]$ sudo systemctl restart httpd
|
(2)DVDの使えない古いサーバーをrebootすると、この画面が表示されるので、手動でインストールできるか試した。OKだったので、自動化作業に入る(画像はクリックすると拡大。以下同)。
キックスタートインストールの設定
(1)以下はGNOME端末を用いての手順。
以下の黒背景部分はGNOME端末を表示しています。黄色はキーボードから入力するコマンド(コピペした方が楽ですが、コマンドは覚えられません)、緑はコマンドや処理内容の説明、白は自動表示する部分、赤は注意書きです。
#キックスタートの設定ファイルを保存するフォルダの作成 [tu@ufuso ~]$ sudo mkdir /var/www/html/ks #ブートメニュー画面の編集 [tu@ufuso ~]$ sudo vi /var/lib/tftpboot/pxelinux.cfg/default timeout 600 default menu.c32 menu title ########## PXE Boot Menu ########## label 1 menu label ^1) Install CentOS 7 kernel centos7/vmlinuz append initrd=centos7/initrd.img ks=http://192.168.24.240/ks/centos7-ks.cfg label 2 menu label ^2) Boot from local drive localboot #暗号化されたパスワードの作成 [tu@ufuso ~]$ python -c 'import crypt,getpass; \ print(crypt.crypt(getpass.getpass(), \ crypt.mksalt(crypt.METHOD_SHA512)))' #rootのパスワードを作成入力(要記憶) Password: #入力したパスワードが暗号化されて表示される。後で使うので記録しておくこと $6$uQXJSH...................5Ko2UbiaqGs4. #暗号化されたパスワードの作成 [tu@ufuso ~]$ python -c 'import crypt,getpass; \ print(crypt.crypt(getpass.getpass(), \ crypt.mksalt(crypt.METHOD_SHA512)))' #userのパスワードを作成入力(要記憶) Password: #入力したパスワードが暗号化されて表示される。後で使うので記録しておくこと Password:$6$EznKJ7D...................WM4lC84HI. #ブートメニュー画面 の編集 [tu@ufuso ~]$ sudo vi /var/www/html/ks/centos7-ks.cfg #version=DEVEL ← ベータ版? # System authorization information ← シャドーパスワードを使用 auth --enableshadow --passalgo=sha512 # Install OS instead of upgrade ← Install install # Use network installation ← Install OSのURL url --url="http://192.168.24.240/centos7/" autostep # Use graphical install ← 「firstboot」を可にするとソフトの追加が必要 graphical firstboot --disable ignoredisk --only-use=sda # Keyboard layouts ← 日本語を選択 keyboard --vckeymap=jp106 --xlayouts='jp','us' # System language ← 英語を選択 lang en_US.UTF-8 # Network information ← OSをInstallされるPCのIP設定 network --bootproto=static --device=enp2s0 --hostname=ufuso.dip.jp --ip=192.168.24.241 --gateway=192.168.24.1 --nameserver=192.168.24.1 --netmask=255.255.255.0 --noipv6 --activate # Halt after installation ← Install後PCは待機 halt # Root password ← 作成したrootのPasswordを入力 rootpw --iscrypted $6$uQXJSH...................5Ko2UbiaqGs4. # System services ← 追加又は除くソフトの設定 services --disabled="chronyd" # System timezone ← 日本時間に設定 timezone Asia/Tokyo --isUtc --nontp # User ← User名の登録と作成したPasswordの入力。「gecos」は備考欄? user --name=tu --password= --iscrypted --gecos="tu" # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="xfs" --ondisk=sda --size=500 part pv.132 --fstype="lvmpv" --ondisk=sda --size=51200 volgroup VolGroup --pesize=4096 pv.132 logvol / --fstype="xfs" --size=20480 --name=root --vgname=VolGroup logvol swap --fstype="swap" --size=4096 --name=swap --vgname=VolGroup # ひとつの%にひとつの%endを記述のこと %packages @@development kexec-tools %end # kdumpの設定 %addon com_redhat_kdump --enable --reserve-mb='auto' %end
|
(2)DVDの使えない古いサーバーをrebootして、インストールが全自動で完了したらOK。PCが停止したら再起動して、下記画面の「2)Boot from local drive」をクリックのこと。CentOSが起動したら、rootでログインできたら成功。ユーザーの登録と、セキュリティの問題があるのでアップデートまでは終えておくこと。
以上です。
コメントを残す