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