PXEブート〜Puppetマスターの環境設定メモ
★HAクラスタを想定した設定で、共有するディスクのパスは「/SHARE/data/」とする
■TFTPサーバの設定
1.TFTPサーバのインストール確認
[root@ha-01 ~]# rpm -qa | grep tftp tftp-server-0.49-2.el5.centos [root@ha-01 ~]#
2.tftpの設定
[root@ha-01 ~]# cat /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /SHARE/data/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } [root@ha-01 ~]#
■DHCPサーバの設定
3.DHCPサーバのインストール確認
[root@ha-01 ~]# rpm -qa | grep dhcp | grep -v client dhcp-3.0.5-23.el5_5.2 [root@ha-01 ~]#
4.dhcpd.confの設定
[root@ha-01 ~]# cat /etc/dhcpd.conf ddns-update-style none; ignore client-updates; subnet 192.168.11.0 netmask 255.255.255.0 { option routers 192.168.11.1; option subnet-mask 255.255.255.0; filename "/pxeboot/pxelinux.0"; next-server 192.168.11.101; range dynamic-bootp 192.168.11.150 192.168.11.254; default-lease-time 21600; max-lease-time 43200; } [root@ha-01 ~]#
[root@ha-01 ~]# rpm -qa | grep httpd httpd-2.2.3-45.el5.centos [root@ha-01 ~]#
6.httpd.confで指定されるドキュメントルートを、共有するディスクのパスへ変更
[root@ha-01 ~]# sed -i 's%/var/www/html%/SHARE/data/netinst%' /etc/httpd/conf/httpd.conf
■OSメディアのマウントと配置
7.CentOSメディア配置ディレクトリの作成とコピー
[root@ha-01 ~]# mkdir -p /SHARE/data/netinst/centos5.6-server-x86_64 [root@ha-01 ~]# mount -t iso9660 -o ro /dev/cdrom /mnt [root@ha-01 ~]# cp -a /mnt/* /SHARE/data/netinst/centos5.6-server-x86_64/ [root@ha-01 ~]# umount /mnt
■Puppetクライアント用の資材配置とYUMリポジトリの作成
8.Puppet関連パッケージ配置ディレクトリの作成
[root@ha-01 ~]# mkdir -p /SHARE/data/netinst/puppet_setup
9.Puppet関連パッケージを配置
[root@ha-01 ~]# ll /SHARE/data/netinst/puppet_setup 合計 1256 -rw-r--r-- 1 root root 336912 7月 26 01:28 augeas-libs-0.8.1-2.el5.x86_64.rpm -rw-r--r-- 1 root root 62594 7月 26 01:27 facter-1.5.9-1.el5.noarch.rpm -rw-r--r-- 1 root root 803124 7月 26 01:27 puppet-0.25.5-1.el5.noarch.rpm -rw-r--r-- 1 root root 21808 7月 26 01:27 puppet-server-0.25.5-1.el5.noarch.rpm -rw-r--r-- 1 root root 21440 7月 26 01:29 ruby-augeas-0.4.1-1.el5.x86_64.rpm -rw-r--r-- 1 root root 9856 7月 26 01:29 ruby-shadow-1.4.1-7.el5.x86_64.rpm [root@ha-01 ~]#
[root@ha-01 ~]# createrepo -v /SHARE/data/netinst/puppet_setup/
■PXEブート時に使用する各ファイルを配置
11.ブートローダ、vmlinuz、initrdを配置
[root@ha-01 ~]# cp -p /usr/lib/syslinux/pxelinux.0 /SHARE/data/tftpboot/pxeboot/ [root@ha-01 ~]# cp -a /SHARE/data/netinst/centos5.6-server-x86_64/images/pxeboot/vmlinuz \ /SHARE/data/tftpboot/pxeboot/ [root@ha-01 ~]# cp -a /SHARE/data/netinst/centos5.6-server-x86_64/images/pxeboot/initrd.img \ /SHARE/data/tftpboot/pxeboot/
12.PXEブート設定ファイルを作成
[root@ha-01 ~]# mkdir -p /SHARE/data/tftpboot/pxeboot/pxelinux.cfg
[root@ha-01 ~]# cat /SHARE/data/tftpboot/pxeboot/pxelinux.cfg/default prompt 0 timeout 20 default hadoop label hadoop kernel vmlinuz append initrd=initrd.img ks=http://192.168.11.101/ks/ha-slave1.ks ksdevice=bootif IPAPPEND 2 [root@ha-01 ~]#
■kickstartファイルの配置とPuppetクライアント用のhosts配置
13.kickstartファイルを作成
[root@ha-01 ~]# mkdir -p /SHARE/data/netinst/ks
[root@ha-01 ~]# cat /SHARE/data/netinst/ks/ha-slave1.ks install text url --url http://192.168.11.101/centos5.6-server-x86_64 lang ja_JP.UTF-8 keyboard jp106 network --bootproto=static --ip=192.168.11.105 --gateway=192.168.11.1 --netmask=255.255.255.0 --hostname=ha-slave1 --onboot=yes rootpw abcdefg firewall --disabled authconfig --enableshadow --enablemd5 selinux --disabled timezone Asia/Tokyo reboot bootloader --location=mbr --driveorder=vda clearpart --all --initlabel --drives=vda part /boot --fstype ext3 --size=512 --ondisk=vda part pv.1 --size=0 --grow --ondisk=vda volgroup vg00 pv.1 logvol / --fstype ext3 --name=lv00 --vgname=vg00 --size=8192 --grow logvol swap --name=lv01 --vgname=vg00 --size=1024 logvol /log --fstype ext3 --name=lv02 --vgname=vg00 --size=1024 logvol /var --fstype ext3 --name=lv03 --vgname=vg00 --size=5120 logvol /home --fstype ext3 --name=lv04 --vgname=vg00 --size=5120 %packages @development-libs @editors @system-tools @japanese-support @text-internet @core @base @base-x @ruby @admin-tools @development-tools @graphical-internet %post --log=/root/kickstart-post.log mv /etc/hosts /etc/hosts.org /usr/bin/wget -o /dev/null -P /etc http://192.168.11.101/hosts test -f /etc/yum.repos.d/CentOS-Base.repo && /bin/mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old cat << EOF > /etc/yum.repos.d/custum.repo [diskimage] name=install image baseurl=http://192.168.11.101/centos5.6-server-x86_64 enabled=1 gpgcheck=0 [puppet_setup] name=additional packages baseurl=http://192.168.11.101/puppet_setup enabled=1 gpgcheck=0 EOF yum clean all /usr/bin/yum -y install puppet cat << EOF > /etc/puppet/namespaceauth.conf [puppetmaster] allow * [puppetd] allow * [puppetmaster] allow * [fileserver] allow * EOF cat << 'EOF' > /etc/puppet/puppet.conf [main] vardir = /var/lib/puppet logdir = /var/log/puppet rundir = /var/run/puppet ssldir = \$vardir/ssl [puppetd] certname = ha-slave1 EOF /usr/sbin/ntpdate ntpサーバ export RUBYLIB=/var/lib/puppet/lib ; puppetd --no-daemonize --onetime --verbose --server ha-server [root@ha-01 ~]#
14.Pupppetクライアント用のhostsを配置
[root@ha-01 ~]# cp /etc/hosts /SHARE/data/netinst/
■Puppetマスターの設定
15.Puppet関連パッケージのインストール確認
[root@ha-01 puppet_setup]# rpm -qa | grep -e augeas-libs-0.8.1-2.el5 -e ruby-augeas-0.4.1-1.el5 \ -e ruby-shadow-1.4.1-7.el5 -e facter-1.5.9-1.el5 -e puppet-0.25.5-1.el5 -e puppet-server-0.25.5-1.el5 augeas-libs-0.8.1-2.el5 facter-1.5.9-1.el5 ruby-shadow-1.4.1-7.el5 ruby-augeas-0.4.1-1.el5 puppet-server-0.25.5-1.el5 puppet-0.25.5-1.el5 [root@ha-01 puppet_setup]#
[root@ha-01 data]# mkdir -p /SHARE/data/puppet_ssl
17.Puppet各種ファイルを設定
[root@ha-01 ~]# cat /etc/puppet/puppet.conf [main] vardir = /var/lib/puppet logdir = /var/log/puppet rundir = /var/run/puppet ssldir = /SHARE/data/puppet_ssl [puppetmasterd] autosign = true certname = ha-server [puppetd] certname = ha-01 [root@ha-01 ~]#
[root@ha-01 ~]# cat /etc/puppet/namespaceauth.conf [puppetmaster] allow * [puppetd] allow * [puppetrunner] allow * [fileserver] allow * [root@ha-01 ~]#
[root@ha-01 ~]# cat /etc/puppet/autosign.conf * [root@ha-01 ~]#
★各環境に合わせてPuppetマニフェストを用意すれば準備OK