CentOSとUbuntuシステムをPXEでリモートにインストールします。

15133 ワード

PXEプロトコルはIntel設計のプロトコルであり、コンピュータをネットワークを介して起動させることができる。プロトコルは、clientとserverの両端に分けられ、PXE clientは、ネットワークカードのROMにおいて、コンピュータがブートするとき、BIOSはPXE clientをメモリに呼び込んで実行し、コマンドメニューを表示し、ユーザーが選択した後、PXE clientは、リモートのオペレーティングシステムインストールファイルをローカルにダウンロードして実行し、ディスクレスワークステーションはPXEを通じて起動される。
PXEプロトコルの成功実行には、2つの問題を解決する必要があります。+IPアドレス割り当て:DHCP serverでPXE clientにIPアドレスを割り当てることができます。DHCP Serverは、DHCP clientにIPアドレスを動的に割り当てるためのプロトコルですが、ここではPXE clientにIPアドレスを割り当てるため、DHCP Serverを配置する際に、対応するPXE特有の構成+を追加する必要があります。Linuxカーネルとルートファイルシステムをダウンロードします。PXE clientがあるROMには、TFP Clientが既に存在しています。PXE CientはTFP Cientを使って、TFPプロトコルを通じてTFP Serverに必要なファイルをダウンロードします。
1.仕事の原理
PXE clientはLinuxをインストールするコンピュータで、TFP ServerとDHCP Serverは別のLinux Serverで実行します。Boostrapファイル、配置ファイル、LinuxカーネルおよびLinuxルートファイルシステムは、Linux Server上のTFPサーバのルートディレクトリの下に置かれています。PXE Clientは仕事中、三つのバイナリファイルが必要です。bootstrap、LinuxカーネルとLinuxルートファイルシステム。Bootstrapファイルは、ユーザーに簡単なコントロールインターフェースを提供し、ユーザーの選択に応じて、LinuxカーネルとLinuxルートファイルシステムをダウンロードするプログラムを実行することができます。
説明:/tftpbookはtftp serverのルートディレクトリ/tftftpboot/pxelinux.0はBootstrapファイルで、スタートメニューを呼び出す役割を提供します。pxeboot/initrd.imgはカーネルガイドファイル/pxeboot/vmlinuxが圧縮されたLinuxカーネルミラー/tftftpboot/*.msgが各ガイドモジュールのメニューオプションです。
2.設置手順
まずPXEでインストールされたServer環境を設定する必要があります。このサーバーでは、dhcpとtftpサービスをインストールする必要があります。
yum install -y dhcp tftp tftp-server nfs-utils httpd tcpdump
*SELinuxシステム*:tftpを使用する過程で、一部の機能(tftpのファイルダウンロード)はシステム防護ソフトselinuxによってブロックされます。CentOSではSELinuxはデフォルトでオープンしているので、設定ファイル/etc/sysconfig/selinuxを変更する必要があります。SELinuxをオフにします。(システムを再起動する必要があります。設定者は有効です。)、SELINUX=enabledSELINUX=disabledに変更します。setenforce 0コマンドで一時的にSELinuxをオフにすることもできますが、システムが再起動されても、SELinuxはシステムに従って起動されます。
setenforce 0
sed -i "7s/enforcing/disabled/" /etc/selinux/config
cat /etc/selinux/config
*システムファイアウォールを閉じる*:実行コマンドは以下の通りです。
service iptables stop && chkconfig iptables off
a.tftpサーバの設定
tftpサーバにはlinuxシステム起動時のカーネルイメージとプロファイルが格納されています。ここではtft-serverのプロファイル/etc/xinetd.d/tftpを変更するだけで、内容を以下に変更します。
cat > /etc/xinetd.d/tftp <<EOF
service tftp
{
        disable                   = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -u nobody -s /tftpboot
        disable                 = yes
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
EOF
cat /etc/xinetd.d/tftp
tftpのルートディレクトリを作成し、必要なファイルをそのディレクトリに移動します。
mkdir /tftpboot
chmod 777 /tftpboot
tft-serverサービスを開始し、xinetdサービスを追加してシステムに従って起動します。
service xinetd start
chkconfig xinetd on
システムのtftpが起動しているかどうかを確認し、コマンドnetstat -a | grep tftpを使用します。
b.DHCPサーバの設定
dhcpパッケージをインストールした後、プロファイルを変更する/etc/dhcp/dhcpd.confは以下の内容である。
cat > /etc/dhcp/dhcpd.conf <<EOF
ddns-update-style interim;
ignore client-updates;
authoritative;

allow booting;
allow bootp;
subnet 192.168.25.0 netmask 255.255.255.0 {
    range 192.168.25.30 192.168.25.100;
    option routers 192.168.25.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.25.1;
    default-lease-time 21600;
    max-lease-time 43200;
    next-server 192.168.25.1;
    filename "/pxelinux.0";

    host extra-host{
        hardware ethernet 00:0c:29:c0:a7:99;
        fixed-address 192.168.25.30;
    }
}
EOF
cat /etc/dhcp/dhcpd.conf
ファイルのコメント付きバージョンを設定:
ddns-update-style interim;  /*dhcp   dns      */
ignore client-updates;      /*     DNS    */
authoritative;   /*  */

allow booting;            /*  PXE  */
allow bootp;               /*  boottp*/
subnet 192.168.129.0 netmask 255.255.255.0 { /*   */
    range 192.168.129.30 192.168.129.78;          /*ip     */
    option routers 192.168.129.1;                         /*  */
    option subnet-mask 255.255.255.0;                /*    */     
    option domain-name-servers 203.103.24.68;   /*DNS      */
    default-lease-time 21600;   /*  ,  */
    max-lease-time 43200;       /*    ,  */
    next-server 192.168.129.22;   /*TFTPServer IP*/
    filename "/pxelinux.0";        /*Bootstrap  */
}
デフォルトでは、dhcpdプロセスはdhcpユーザで実行され、エラーが発生する可能性があります。/etc/init.d/dhcpdファイルのプロセスユーザとユーザグループをrootに変更することができます。
sed -i "30s/user=dhcpd/user=root/" /etc/init.d/dhcpd
sed -i "31s/group=dhcpd/group=root/" /etc/init.d/dhcpd
head -n 31 /etc/init.d/dhcpd | tail -n2
dhcpdプロセスの実行状況を確認すると\var\log\messagesファイルが表示されます。一般的にはシステムネットワークカードのアドレスをdhcp設定のアドレスセグメントに設定する必要があり、dhcpサービスを正常に起動することができます。
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.25.1
NETMASK=255.255.255.0
EOF
cat /etc/sysconfig/network-scripts/ifcfg-eth0
dhcpサービスを起動して、システム起動時に設定します。
service dhcpd start
chkconfig dhcpd on
c.httpdサービスの設定
サーバーではhttpdサービスに対して特別な設定は必要ありません。サービスを起動するだけで、システムの起動に合わせて設定すればいいです。
service httpd start
chkconfig httpd on
3.CentOSとUbuntuの異なるシーンに対して異なる構成を使用する
a.CentOSの設置構成手順
CentOSシステムはPXEインストール方法に対してサポートが足りないため、主に単独でpxelinux.0ファイルをダウンロードする必要があります。このファイルはCentOSシステムのインストールミラーに含まれていません。
#mkdir -p /tftpboot
#cp ~/pxelinux.0 /tftpboot
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

\cp -rfv /mnt/cdrom/images/pxeboot/initrd.img /tftpboot
\cp -rfv /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot
\cp -rfv /mnt/cdrom/isolinux/*.msg /tftpboot

mkdir -pv /tftpboot/pxelinux.cfg
cat > /tftpboot/pxelinux.cfg/default << EOF
default
prompt 1
timeout 30
display boot.msg
label linux
kernel vmlinuz
append ks=http://192.168.25.1/centos/ks_centos.cfg  initrd=initrd.img devfs=nomount ramdisk_size=9216
EOF

mkdir -pv /var/www/html/centos
cp -fv ~/ks_centos.cfg /var/www/html/centos
cp -rfv /mnt/cdrom/* /var/www/html/centos
注意:*.msgは拷問しなくてもいいです。重要なのはinitd.imgとvmlinuxで、カーネルがないと導波できないシステムです。pxelinux.0は任意のlinuxの発行元から提供されたものではなく、syslainuxもファイルを提供していません。インターネットからダウンロードできます。
b.Ubuntuシステム設置配置
UbuntuシステムはPXEのインストール方法に対するサポートが非常に整っています。インストールされたミラーの一部のファイルをtftpとウェブディレクトリにコピーすればいいです。
install/netbootのファイルをすべてtftpbootディレクトリにコピーします。httpdサービスを追加して、サービスルートディレクトリにuuntuディレクトリを作成し、isoイメージのファイルをuuntuディレクトリに追加します。
#mkdir -pv /tftpboot
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

cp -rfv /mnt/cdrom/install/netboot/* /tftpboot
# later version than 12.04
sed -i '6s\append\append live-installer/net-image=http://192.168.25.1/ubuntu/install/filesystem.squashfs\' /tftpboot/ubuntu-installer/i386/boot-screens/txt.cfg
sed -i '6s\append\append ks=http://192.168.25.1/ubuntu/ks_ubuntu.cfg\' /tftpboot/ubuntu-installer/i386/boot-screens/txt.cfg
cat /tftpboot/ubuntu-installer/i386/boot-screens/txt.cfg
# end of later version than 12.04

mkdir -pv /var/www/html/ubuntu
cp -rfv /mnt/cdrom/* /var/www/html/ubuntu
cp -fv ~/ks_ubuntu.cfg /var/www/html/ubuntu
ls -m /tftpboot /var/www/html/ubuntu
ミラーのインストールを選択する場合は、enter mirror maualを選択します。192.168.25.1/ubuntu/をそれぞれ記入します。
*アプリケーション拡張*CentOSシステムをPXEで遠隔的にインストールする場合、必要なソフトウェアインストールパッケージはnfsファイル共有サービスで転送できます。nfsの構成手順は、一般的には、まずシステムに光ディスクをマウントし、nfs共有ディレクトリに光ディスクのファイルを追加する。実行プロセスは以下の通りです。
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

mkdir -pv /centos
cp -rf /mnt/cdrom/* /centos/

cat >> /etc/exports << EOF
/centos *(ro,sync)
EOF

exportfs -rv
nfsサービスを起動し、システム起動に合わせて設定します。
service rpcbind restart
service nfs start
chkconfig nfs on
CentOSシステムのインストール中に、パッケージソースを選択すると、入力されたnfsサーバのパラメータはIPアドレス(192.168.25.1)、ファイルディレクトリ(/centos)、およびマウント権限(ロ)を含む。
KickStartは、無人部署の設置方法です。KickStartの作業原理は、典型的な設置過程において必要な人工的な介入によって記入された各種パラメータを記録し、ks.cfgというファイルを作成することである。その後の暗転中にパラメータを記入することが要求された場合、インストールプログラムはまずKickStartが作成したファイルを探しに行きます。適切なパラメータを見つけたら、見つけたパラメータを採用します。適切なパラメータが見つからない場合は、インストール者が手動で参加します。無人ジョブを使用してシステムをインストールする場合は、system-config-kickstartソフトウェアを使用してプロファイルks.cfgを生成するだけでよい。