RHEL6のkickstartインストールだけどホスト名/IPアドレスを手動入力する

RHEL6/CentOS6のkickstartインストールの際、DHCPによるホスト名/IPアドレス配布だけではなく、固定IPアドレスおよびホスト名でのインストールも行いたい。
かといって、起動オプションに細工するとか、個別のkickstartファイルを書く、とかはしたくない。

RHEL4ぐらいのkickstartだと、network行を書かなければ聞いてきたんだけど、いまはそんな仕様ではない模様。

探したらRedHatのkickstart MLで発見「Re: clearpart -all warning

「%pre」内で、コンソールを6番に切り替えてからreadコマンドにより値を入力、とのこと。
(「MORE Kickstart Tips and Tricks」だと3番とあったんだけど、3番でやったら出力が混じったので6番を採用した)
(あと、read -p “~” ~ /dev/tty3 2>&1って記述はうまく動かなかった)

そんなわけで作成したkickstartファイルはこちら!

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
nfs --server=192.168.44.151 --dir=/images/cent6
lang en_US.UTF-8
keyboard jp106

%include /tmp/network-ks.cfg

rootpw  --plaintext password
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Tokyo

zerombr
bootloader --location=partition --driveorder=sda --append="crashkernel=auto"
clearpart --all --drives=sda --initlabel

part /boot/efi --fstype=efi --grow --maxsize=200 --size=50
part /boot --fstype=ext4 --size=500
part pv.vol1 --grow --size=1

volgroup vg_vol1 --pesize=4096 pv.vol1
logvol / --fstype=ext4 --name=lv_root --vgname=vg_vol1 --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=vg_vol1 --grow --size=1638 --maxsize=1638

repo --name="CentOS"  --baseurl=nfs:192.168.44.151:/images/cent6 --cost=100

%packages
@core
@server-policy
@workstation-policy
nfs-utils
%end

%pre --log=/root/anaconda-pre.log
#!/bin/bash

exec < /dev/tty6 > /dev/tty6 2>&1
chvt 6

echo "=== Please input this server information ==="
read -p "Enter hostname: " NEWHOSTNAME
read -p "Enter IP address: " NEWIPADDR
read -p "Enter netmask: " NEWNETMASK
read -p "Enter default gw: " NEWGATEWAY
read -p "Enter DNS server IP: " NEWDNS

echo "network --bootproto=static --ip=${NEWIPADDR} --netmask=${NEWNETMASK} --gateway=${NEWGATEWAY} --nameserver=${NEWDNS} --device=eth0 --onboot=yes --hostname=${NEWHOSTNAME}" > /tmp/network-ks.cfg


chvt 1
%end

%post --log=root/anaconda-post.log --erroronfail
echo "192.168.44.151   master" >> /etc/hosts
mkdir /mnt2
mount -t nfs 192.168.44.151:/images/work /mnt2
rpm -ivh /mnt2/chef-11.12.2-1.el6.x86_64.rpm
mkdir -p /etc/chef
cp /mnt2/validation.pem /etc/chef/validation.pem
chmod 0600 /etc/chef/validation.pem
cp /mnt2/client.rb /etc/chef/client.rb
/usr/bin/chef-client

if [ -f /boot/efi/EFI/redhat/grub.conf ]; then
        sed -i "s/rhgb quiet//" /boot/efi/EFI/redhat/grub.conf
fi
if [ -f /boot/grub/grub.conf ]; then
        sed -i "s/rhgb quiet//" /boot/grub/grub.conf
fi

%end

#reboot

RHEL6のkickstartでPV/VGの名前に_が使えない?

最近、RHEL6/CentOS6の構築自動化手法をいろいろ検討中。

インストール時のkickstartファイルの編集中に初めて認識した仕様。

Logical Volumeの名前は自由に指定できる。
Volume Groupの名も自由に指定できる。
Pythical Volumeの名前はある程度制限される。

fedora project:Anaconda/Kickstart:part or partition
kickstart内でパーテーション作成をする際、命名法則により使用用途が決定される、という仕様になっている。
LVMで使用するためにPVを作成する場合は「pv.~」という命名規則で作る必要がある。
(pv.以降は好きに名前をつけられる)

というわけで、自動生成された「pv.0083」とかいう感じのPVを「pv_vol1」とかに名前変更しようとして失敗したのは、この仕様のせいで、「pv.vol1」とかにすれば問題ない、ということでした。

RHEL6インストールガイドの「EFI用のPXEブートの設定」の記述が嘘っぱちな件

PXEブートを使ってRHEL6/CentOS6のインストールを行おうとしたら、RHEL6の公式ドキュメントに騙された・・・

参照にしたドキュメントは「インストールガイド EFI 用の PXE ブートの設定
(英語版の「30.2.2. Configuring PXE Boot for EFI」も誤っている)

(2015/04/07 英語版/日本語版共に、3の記述は修正されたことを確認)

誤っているところは、以下のところ

3. tftpboot 内に EFI ブートイメージ用のディレクトリパスを作成して、ブートディレクトリからブートイメージをコピーします。
mkdir /var/lib/tftpboot/pxelinux
mkdir /var/lib/tftpboot/pxelinux/bootx64.efi
cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/pxelinux/bootx64.efi

上記手順だと、grub.efiを/var/lib/tftpboot/pxelinux/bootx64.efi/grub.efiに置くことになる。

5. pxelinux 内に pxelinux.cfg ディレクトリを作成します。
mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg

6. このディレクトリに設定ファイルを追加します。ファイル名は、efidefault とするか、または IP アドレスにちなんだ名前を付けます。例えば、マシンの IP アドレスが 10.0.0.1 の場合には、ファイル名を 0A000001 とします。
/var/lib/tftpboot/pxelinux/pxelinux.cfg/efidefault にあるサンプルの設定ファイルは以下のようになります。

何が間違っているか?

「ファイルを置くパス」

正しい手順は、以下の通り


3. tftpboot 内に EFI ブートイメージ用のディレクトリパスを作成して、ブートディレクトリからブートイメージをコピーします。

mkdir /var/lib/tftpboot/pxelinux
cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/pxelinux/bootx64.efi

grub.efiをbootx64.efiという名前で/var/lib/tftpboot/pxelinux/に置く。


5. pxelinux 内に pxelinux.cfg ディレクトリを作成します。
mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg

EFIの場合は、/var/lib/tftpboot/pxelinux/pxelinux.cfg/というディレクトリを作る必要は無い。


6. このディレクトリに設定ファイルを追加します。ファイル名は、efidefault とするか、または IP アドレスにちなんだ名前を付けます。例えば、マシンの IP アドレスが 10.0.0.1 の場合には、ファイル名を 0A000001 とします。
/var/lib/tftpboot/pxelinux/efidefault にあるサンプルの設定ファイルは以下のようになります。

default=0
timeout=1
splashimage=(nd)/splash.xpm.gz
hiddenmenu
title RHEL
        root (nd)
        kernel /rhel6/vmlinuz
        initrd /rhel6/initrd.img

efidefaultというファイルは/var/lib/tftpboot/pxelinux/というディレクトリに置く。
なぜか「/rawhide-x86_64/」と記載されているが、後の記述をみると「/rhel6/」であるべきもの。

参考にしたページ
・Grokbase:[CentOS] PXE booting UEFI
・fedora project:QA:Testcase UEFI pxeboot

Endian Firewall Community Editionをv2.5.2からv3.0に上げた

現在運用中のEndian Firewall Community Editionをv2.5.2からv3.0.0へアップデートしてみた。

isoイメージはあるもののアップデート手法が明示されていなくて悩む。
「efw-upgradeを実行しろ」というのを見つけたが、実行しても、v2.5.2のまま。

フォーラムにコメント発見。
The New 3.0 Release」のコメント

The upgrade process from a 2.5.X to a 3.0 Appliance will be available by the end of January. Please contact the Endian Support Team for more information.

By the way it’s not an update that can be delivered only with “efw-update upgrade” but a repository switch is needed.

efw-upgrade -s

select 2

EFW 2.5.2 will be update to 3.0Dev

But http proxy 3.0 dev don’t work, don’t block or filer web, Log & report don’t see everything about proxy http

そう、Production versionでのefw-upgradeコマンドによる2.5.2から3.0へのアップデートは、まだ提供されていなかったという!
開発版に切り替えれば可能、ということなので、やってみた。

「efw-upgrade -s」を実行して、「2) Development」を選択すると、すんなりv3.0へのアップデートが完了。

・・・・・・なんと

googlevideo.comの運用が始まったせいでyoutubeの動画が再生できない

Windows8.1のファミリーセーフティー機能を使って、子供用アカウントのコンテンツアクセス制限をかけている。

ファミリーセーフティー側はyoutube.comを許可し、コンテンツの内容についてはyoutube設定の方で制御していた。

2月末ぐらいからYoutubeの動画が再生できない、とクレームが・・・
原因がわからずGoogle Chromeを使って再生させる、という運用回避策を実施。

で・・・、昨日、OSの再インストールを実施。
その直後から現象は発生。

さすがにおかしいと思い詳細を調査。

その結果、Youtubeの動画部分のURLが「googlevideo.com」に切り替わっていることが判明。
googlevideo.comを許可リストに追加することで動画再生ができるようになりました。

・・・Youtubeの動画が再生できない、というFAQの中に「googlevideo.com」なんてドメイン出てこないんですけど!!!!

パソコンのファイアウォールが原因で YouTube 動画がブロックされて再生できない場合があります。ファイアウォールの設定で、www.youtube.com を信頼済みサイトとして設定し、他のアプリケーション(QuickTime、RealPlayer、Windows Media Player など)をデフォルトのストリーミング アプリケーションに設定しないように調整します。ファイアウォール設定の確認方法は次のとおりです。