ラベル PowerEdge の投稿を表示しています。 すべての投稿を表示
ラベル PowerEdge の投稿を表示しています。 すべての投稿を表示

2008/02/04

DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その3

前々回前回で準備した環境を用いて実際にインストールを行う。
インストール対象のDom0は、DRAC III付きPowerEdge 2650。事前にDRACへTELNETで接続できるよう設定しておく。その手順については、『Dell Remote Access ControllerへのTELNET接続』を参照して欲しい。

作業用PCから、Dom0へTELNETで接続する。TELNET接続で使用するユーザ名およびパスワードは、DRACのもの(『DRACユーザ・パスワードの変更』参照)。
ここでは、TELNET端末にTeraTerm Pro (with SSH2)を用いた。TeraTermの場合、漢字コードはUFT-8、背景色を黒にしておいた方がよい。DRACから送られてくる文字がそうなっているためだ(gnome-terminalやxtermの場合は、特に設定変更の必要はない)
TELNET接続後、connect videoコマンドでDom0のコンソールに接続する。コマンド実行直後、以下の様にファンクションキーなどの特殊キーの入力方法が表示される。
Connected to video. To end, use the key sequence "<CR>~.".

Press the spacebar to pause...

KEYMAPPING FOR CONSOLE REDIRECTION:

Use the "<ESC>R<ESC>r<ESC>R" key sequence for <CTRL-ALT-DEL>
Use the "<ESC><n>" key sequence for the Function <n> Key.
for <n> = 1,2,3, ..., 9
Use the "<ESC>0" key sequence for the Function 10 Key.
Use the "<ESC>!" key sequence for the Function 11 Key.
Use the "<ESC>@" key sequence for the Function 12 Key.
Use the "<ESC>h" key sequence for the Home Key.
Use the "<ESC>k" key sequence for the End Key.
Use the "<ESC>+" key sequence for the Insert Key.
Use the "<ESC>-" key sequence for the Delete Key.
Use the "<ESC>?" key sequence for the Page Up Key.
Use the "<ESC>/" key sequence for the Page Down Key.
Use the "<ESC>^Cx" key sequence for <CTRL-x> where:
^C is <CTRL-c>, and x is one of h, i, j, m.
Use the "<ESC>^Ax" key sequence for <ALT-x> where:
^A is <CTRL-a>, and x is any letter, a through z.
この後の作業の中に使用する必要があるのは、PXE起動を指定するための「<ESC>@」([F12])、接続を切るための「<CR>~.」。キーシーケンスを憶えておく。

この後、本体の電源が入っていなかったり、コンソールにグラフィカルな画面が表示されていると、次のような画面が表示される。
ここでDom0を再起動すると、Dom0のコンソール画面が転送され始める。
ここで、PXE Bootを指定する。[F12]を押す代わりに、前述の通り「<ESC>@」と入力する。
画面右上に「Attemtpting PXE Boot」と表示されていることに注意。
しばらくすると、PXE起動によってDHCPが開始される。
続いて、TFTPによるブートイメージのダウンロードが行われ、ネットワークインストールが開始される。
Anacondaが起動され、CentOSのインストールが開始される。
パッケージの依存性が検査される。
パッケージのダウンロードとインストールの準備。
パッケージのダウンロードとインストールが開始される。所要時間は約10分間。
パッケージインストール後の設定が実行される(%postスクリプトではない)。
通常、ここで再起動に移るが、%postセクションを記述していれば、%postスクリプトが実行される。DELL OpenManageをダウンロードするため、かなり時間がかかる。
%postスクリプトが終了すると、再起動に移る。
OS起動後、GDMのグラフィカルなログイン画面が表示されると、DRACの出力が停止する。
「<CR>~.」を入力し、作業を終了する。
Dom0のコンソールには、GDM画面が表示されている。

DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その1
DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その2
DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その3

DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その2

URL http://Repository.LocalDomain/centos/5.1/Dom0-ks.cfgに置くAnaconda Kickstartの設定ファイルの内容について解説する。当然、インストール条件によって内容を変える必要がある。今回は、以下の機能を盛り込んだ。
  • VLAN
  • Xen
  • RHCS(luci&ricci、仮想マシンフェンス)
  • DELL OpenManage
OSインストール後の設定は、%postセクションに、シェルスクリプトとして記述する(--interpreterオプションでスクリプト言語を変更することもできる)
ただし、ファイルを新規に生成する場合には注意が必要。SELinuxのファイルコンテキストを、restoreconコマンド等で調整する必要があるかもしれない。ファイル内容の変更にpatchコマンドを使う場合も、結果的に新規にファイルを生成することになるので注意する。

Dom0-ks.cfgの内容は以下の通り。
logging --host=192.168.55.32

text
install
url --url http://Repository.LocalDomain/centos/5/os/i386
lang en_US.UTF-8
keyboard jp106
monitor --monitor="LCD Panel 1024x768"
xconfig --startxonboot --driver ati --resolution 1024x768 --depth 24
network --device eth0 --bootproto static --ip 192.168.55.31 --netmask 255.255.255.0 --gateway 192.168.55.35 --nameserver 192.168.55.33,192.168.55.34 --hostname Dom0.LocalDomain
network --device eth1 --onboot no --bootproto dhcp --hostname Dom0.LocalDomain
rootpw --iscrypted $1$zthPniQJ$u8VAa0oCtLcKrpfk/WIjs0
user --name USERNAME --homedir /home/USERNAME --iscrypted --password=$1$DCVowOrU$N86i3KrFg2yftOqtXMB3w/ --shell=/bin/bash --groups=USERNAME,wheel
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --permissive
timezone --utc Asia/Tokyo
bootloader --location=mbr --driveorder=sda --append="xencons=tty"

clearpart --all --drives=sda
part /boot --fstype ext3 --size=100 --ondisk=sda
part pv.6 --size=0 --grow --ondisk=sda
volgroup VolGroupXX --pesize=32768 pv.6
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroupXX --size=1984
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroupXX --size=10240

repo --name=base --baseurl=http://Repository.LocalDomain/centos/5/os/i386/
repo --name=updates --baseurl=http://Repository.LocalDomain/centos/5/updates/i386/
repo --name=addons --baseurl=http://Repository.LocalDomain/centos/5/addons/i386/
repo --name=extras --baseurl=http://Repository.LocalDomain/centos/5/extras/i386/

services --enabled=oddjobd,ntpd --disabled=avahi-daemon,cpuspeed,cups,nfslock,pcscd,smartd,yum-updatesd

reboot

%packages
@admin-tools
@base
@base-x
@cluster-storage
@clustering
@core
@dns-server
@editors
@emacs
@ftp-server
@gnome-desktop
@graphical-internet
@japanese-support
@legacy-network-server
@mail-server
@network-server
@ruby
@server-cfg
@system-tools
@text-internet
@virtualization
@web-server
lynx
tftp
-kernel
kernel-xen
-kmod-gfs
kmod-gfs-xen
-kmod-gfs
kmod-gnbd-xen
-NetworkManager
-bluez-utils
device-mapper-multipath
-irda-utils
-pcmciautils
net-snmp-utils
net-snmp-libs
net-snmp
OpenIPMI
OpenIPMI-libs
openhpi
-squid


%post --log=/mnt/sysimage/root/anaconda-post.log --erroronfail
function log_mesg() {
/bin/echo
/bin/echo %POST: $*
}

log_mesg "BEGIN %POST SCRIPT"

/bin/cp /tmp/ks-script-* /root

### network
log_mesg "network"
echo 'NOZEROCONF=yes' >> /etc/sysconfig/network

### logrotate
log_mesg "logrotate"
cat > /etc/logrotate.d/00local.conf <<EOL
rotate 20
compress
start 100
EOL

### local yum repository
log_mesg "local yum repository"
/bin/mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.dist
/bin/cat /etc/yum.repos.d/CentOS-Base.repo.dist | /bin/sed 's/mirrorlist=/#mirrorlist=/
s/#baseurl=/baseurl=/
s/mirror.centos.org/Repository.LocalDomain/' > /etc/yum.repos.d/CentOS-Base.repo

### sshd
log_mesg "sshd"
/usr/bin/patch /etc/ssh/sshd_config <<EOL
39a40
> PermitRootLogin no
60c61
< PasswordAuthentication yes
---
> PasswordAuthentication no
EOL
/sbin/restorecon /etc/ssh/sshd_config

##### for User USERNAME
log_mesg "sshd/User USERNAME"
/bin/mkdir ~USERNAME/.ssh
/bin/chmod 700 ~USERNAME/.ssh
/bin/cat > ~USERNAME/.ssh/authorized_keys2 <<EOL
ssh-dss AAAA<<略>>rQ== someuser1@somehost1
ssh-dss AAAA<<略>>achN someuser2@somehost2
EOL
/bin/chmod 644 ~USERNAME/.ssh/authorized_keys2
/bin/chown -R USERNAME.USERNAME ~USERNAME/.ssh

### DELL OpenManage
log_mesg "DELL OpenManage"
log_mesg "DELL OpenManage/WGET"
/usr/bin/wget -q -O - http://linux.dell.com/repo/hardware/bootstrap.cgi | bash
/usr/bin/wget -q -O - http://linux.dell.com/repo/software/bootstrap.cgi | bash
/usr/bin/wget -q -O - http://linux.dell.com/repo/firmware/bootstrap.cgi | bash
log_mesg "DELL OpenManage/yum #1"
/usr/bin/yum install -y srvadmin-all
log_mesg "DELL OpenManage/yum #2"
/usr/bin/yum install -y $(/usr/bin/inventory_firmware -b)
log_mesg "DELL OpenManage/update_firmware"
/usr/bin/update_firmware

### Mail
log_mesg "mail"
##### /etc/mail/sendmail.cf
log_mesg "mail/sendmail.cf"
/usr/bin/patch /etc/mail/sendmail.mc <<EOL
26c26
< dnl define(\`SMART_HOST', \`smtp.your.provider')dnl
---
> define(\`SMART_HOST', \`SmtpServer.LocalDomain')dnl
EOL
(cd /etc/mail; /usr/bin/make sendmail.cf)
/sbin/restorecon /etc/mail/sendmail.cf

##### /etc/aliases
log_mesg "mail/aliases"
/usr/bin/patch /etc/aliases <<EOL
96c96
< #root: marc
---
> root: root@LocalDomain
EOL
/usr/bin/newaliases
/sbin/restorecon /etc/aliases

### SNMP
log_mesg "SNMP"
cat > /etc/snmp/snmpd.conf <<EOL
com2sec localhost localhost COMMUNITY_STRING
com2sec localnet 192.168.55.0/24 COMMUNITY_STRING

group gOpLocalhost v1 localhost
group gOpLocalhost v2c localhost
group gOpLocalnet v1 localnet
group gOpLocalnet v2c localnet

view all included .1
view vDell included .1.3.6.1.4.1.674.10892.1
view systemview included REDHAT-CLUSTER-MIB:RedHatCluster

access gOpLocalhost "" any noauth exact all vDell all
access gOpLocalnet "" any noauth exact all none all

syslocation Unknown
syscontact root@LocalDomain

disk / 100000

load 10

# for DELL
smuxpeer .1.3.6.1.4.1.674.10892.1

# for cluster
dlmod RedHatCluster /usr/lib/cluster-snmp/libClusterMonitorSnmp.so
EOL

cat > /etc/snmp/snmp.conf <<EOL
mibdirs +/opt/dell/srvadmin/omsa/mibs:/opt/dell/srvadmin/rac5/mibs:/opt/dell/srvadmin/rac3/mibs:/opt/dell/srvadmin/sm/mibs:/opt/dell/srvadmin/rac4/mibs
mibs +MIB-Dell-10892:DCS3FRU-MIB:DCS3RMT-MIB:DCS3RMT-MIB:StorageManagement-MIB:DCS3RMT-MIB:REDHAT-MIB:REDHAT-CLUSTER-MIB
EOL

##### iptables
log_mesg "iptables"
/bin/cat > /etc/sysconfig/iptables <<EOL
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -s 192.168.55.0/24 -i eth0.4000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
EOL

### For Cluster
log_mesg "cluster"
##### /etc/lvm/lvm.conf
log_mesg "cluster/lvm.conf"
/bin/cp -p /etc/lvm/lvm.conf /etc/lvm/lvm.conf.dist
/bin/sed 's/locking_type = 1/locking_type = 3/' < /etc/lvm/lvm.conf.dist > /etc/lvm/lvm.conf

##### /etc/cluster/fence_xvm.key
log_mesg "cluster/fence_xvm.key"
/usr/bin/base64 -di > /etc/cluster/fence_xvm.key <<EOL
FiAuM5lLTfCoom3BIrNrWKXj2eObJkK1AYcg4g9uu+r8kDPl8uZaxva6KhteDOtAMXY62DCvW/3/
<<略>>
IDI+IC9kZXYvbnVsbCB8IGdyZXAgLXEgIkRvbWFpbi0wIiB8fCByZXR1cm4gMQo=
EOL
/sbin/restorecon /etc/init.d/cman

### X fonts FOR racvnc
/bin/mkdir /usr/X11R6/lib
/bin/ln -s /usr/share/X11 /usr/X11R6/lib

### /etc/inittab
log_mesg "inittab"
/usr/bin/patch /etc/inittab <<EOL
32c32,33
< ca::ctrlaltdel:/sbin/shutdown -t3 -r now
---
> #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
> ca::ctrlaltdel:ca::ctrlaltdel:/usr/bin/logger 'CTRL-ALT-DELETE trap is disabled'
EOL
/sbin/restorecon /etc/inittab

### GDM
log_mesg "GDM"
/usr/bin/patch /etc/gdm/custom.conf <<EOL
50a51
> SystemMenu=false
EOL
/sbin/restorecon /etc/gdm/custom.conf

### grub
log_mesg "grub"
/bin/cp -p /boot/grub/grub.conf /boot/grub/grub.conf.orig
/bin/sed 's/ rhgb quiet//' < /boot/grub/grub.conf.orig > /boot/grub/grub.conf

### /etc/bashrc
log_mesg "bashrc"
/bin/cp -p /etc/bashrc /etc/bashrc.dist
/bin/sed 's/xterm\*)/xterm*|vt100*)/' < /etc/bashrc.dist > /etc/bashrc

log_mesg "END %POST SCRIPT"
次回は、実際のインストール作業を解説する(スナップショット画面付)。

DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その1
DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その2
DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その3

2008/02/01

DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その1

こんなニッチな記事を書いて、自分以外の誰の役に立つのか、という疑問は湧くが…
  • DRACを使うと、キャラクタコンソールをリモートから操作することが可能。
  • PXEとローカルミラーリポジトリを利用すると、CD-ROMなどの媒体を一切利用しない、完全なネットワークインストールが可能。
  • Red Hat系のインストーラ、Anacondaは、Kickstartと呼ばれる、インストール自動化のための仕組みがある。
これら三つの知識を総合すると、完全にリモートから、つまり、対象機器のキーボードや画面に触れずに、Red Hat系のインストールが可能、ということが解る。それを実際にやってみようというわけだ。
しかも、OSインストール後の設定も併せて自動化してしまおう、というオマケ付きだ。

この作業には、以下が必要だ。
  • ローカルミラーリポジトリ
  • DHCPサーバおよびTFTPサーバ
  • DRACの付いたDELL PowerEdge
ローカルミラーリポジトリの代わりにインターネット接続環境を準備して、公式ミラーリポジトリを利用することも可能。
しかし、OSインストール後の設定作業をKickstartで行う場合、その作業を行うスクリプトのデバッグのため、再試行が必要となる。デバッグ作業の時間短縮のため、また、公式ミラーサイトに余計な負荷をかけないためにも、ローカルミラーリポジトリをお勧めする。
詳しい構築手順については、『ローカルミラーレポジトリ・その1・概要』から一連の記事を参照して欲しい。
後で解説するが、ローカルミラーリポジトリには、Anaconda Kickstartの設定ファイルも置く。

DHCPサーバおよびTFTPサーバの構築ついては、ここでは詳しくは解説しない。以下を参照して欲しい。
DHCPサーバ、TFTPサーバおよびローカルミラーリポジトリサーバは、一台で兼ねる事ができる。管理上も一台に集約した方がいいだろう。ここでは、このサーバをRepository (Repository.LocalDomain / 192.168.55.32)とする。

DHCPサーバに関しては、以下の様なエントリを追加する。
host Dom0 {
hardware ethernet 00:0d:56:XX:XX:XX;
fixed-address 192.168.55.31;
}
ここで、Dom0は、インストール対象のホスト名(FQDN: Dom0.LocalDomain)、00:0d:56:XX:XX:XXはそのMACアドレス。それに対して、ここでは、IPアドレス192.168.55.31を割り当てることを指定している。

TFTPサーバ上には、Dom0向けの設定ファイル/tftpboot/linux-install/pxelinux.cfg/01-00-0d-56-XX-XX-XXを準備する(ファイル名は、'01-'の後にDom0のMACアドレスを続けたもの)。内容は次の通り。
default centos5.1

label centos5.1
kernel centos5.1/vmlinuz
append load initrd=centos5.1/initrd.img devfs=nomount ksdevice=eth0 ks=http://Repository.LocalDomain/centos/5.1/Dom0-ks.cfg
最後の行のappendディレクティブで、Anaconda Kickstartの設定ファイルの場所を指定している。

次回は、Kickstartの設定ファイルの内容を解説。

DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その1
DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その2
DRACでリモートからCentOS 5.1をAnaconda Kickstartで完全自動PXEインストール・その3

2007/10/29

PowerEdge 2650ではIPMIフェンス不能

以前の記事『OpenIPMI・その1・概要』で、気楽に
DRACもクラスタ(RHCS)のフェンス手段として使うことができたが、当然IPMIもフェンス手段として使うことができる。
と書いたが、うまく行かなかったことの報告。解決はできてない。

手元のDELL PowerEdge 2650にOpenIPMIを導入し、IPMIフェンスを試みたところ、失敗してしまう
$ fence_ipmilan -a サーバ名 -l IPMIユーザ名 -p "IPMIパスワード"
Rebooting machine @ IPMI:サーバ名...Failed
$
原因を探るべく、冗長メッセージオプション(-v)を付けて実行してみる。
$ fence_ipmilan -v -a サーバ名 -l IPMIユーザ名 -p "IPMIパスワード"
Rebooting machine @ IPMI:サーバ名...Spawning: '/usr/bin/ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -P IPMIパスワード -v chassis power status'...
Failed
$
コマンドchassis power statusの実行に失敗しているらしい。実際にipmilanコマンドを直接実行してみると、
$ ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -P "IPMIパスワード" chassis power status
Get Chassis Power Status failed: Invalid command
$ ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -P "IPMIパスワード" chassis power off
Chassis Power Control: Down/Off
$
確かに、chassis power statusの実行には失敗したが、chassis power offは成功して、サーバの電源を切ることができた。

どうも、PowerEdge x6xx世代のファームウェアでは、chassis power statusが実装されていないようだ。
DELLのレポジトリには追随してるんだけどなあ。

2007/10/16

DRACユーザ・パスワードの変更

前の記事『Dell Remote Access ControllerへのTELNET接続』ではサラっと流してしまったが、DRACのユーザ名・パスワードが不明の場合どうするか、つまり、DRACのユーザ管理はどうなっているかについて。

DRACのユーザ管理は、OpenManage Server Administrator(OMSA)から管理するのが簡単だ。OMSAにアクセスするには、対象サーバへブラウザで、HTTPSによって1311番ポート(デフォルトでは。変更可能)にアクセスする(下の例では、SSHのポート転送機能を使ってWindows上のFirefoxから、サーバへアクセスしている)ここに、OSのユーザ名・パスワードを入力し、ログインすると、OMSAの画面が表示される。ここで、画面左のツリーから、「メインシステムシャーシ」→「Remote Access Controller」を選び、更に上のタブで「ユーザ」を選ぶと以下の画面が表示される。ここにDRACユーザの一覧が表示される。これはOSのユーザとはまったく別物。何も設定していなければ、rootのみが表示されているはずだ。
ユーザのパスワードを変更するには、ユーザ名をクリックし、「Remote Access Controllerユーザ」画面を表示させる。ここで、「パスワードの変更」チェックボックスをチェックし、「新しいパスワード」および「新しいパスワードの確認」にパスワードを入力する。続けて、画面下の「変更の適用」をクリックする。
すると、次のようなダイアログが表示される。「OK」を押下すると、「Remote Access Controller ユーザ」画面に戻る。
これでパスワード変更は完了だ。

2007/10/12

Dell Remote Access ControllerへのTELNET接続

Linuxのクラスタで、フェンスデバイスとしてDell Remote Access Controller(Dell RAC, DRAC)を利用できる。これは、TELNETでDRACのポートに接続・ログインし、コマンドを投入することで、PowerEdge本体の電源を制御できることを利用している(fence_drac(8)参照)。
これを利用するには、DRACカードがPowerEdge本体にインストールされていなければならないし、BIOSが正しく設定されていなければならないし、DRACの設定でTELNETを有効にしておかなければならない。その方法は、で述べてあるので、その通りに設定する。

が、手元にあるPowerEdge 2650ではなかなかうまく行かなかった。カードは本体にインストールしてあり、BIOSの設定もうまく行って、DRACのアドレスにHTTPSで接続して管理を行うこともできた。できなかったのはracadmコマンドだ。手元のPE2650にはDRAC IIIがインストールしてある。これに対応するコマンドは、OpenManageをインストールしていれば、/opt/dell/srvadmin/rac3/bin以下にあるのだが、ここには肝心のracadmコマンドが準備されていない。

解決編だが、これには大きく分けて二通りの方法がある。一つは、/opt/dell/srvadmin/rac4/bin/racadmを使う方法。もう一つは、DRACのウェブ管理画面を使う方法だ。

まず最初の、コマンドを使用する方法だが、要するに、DRAC4向けのユーティリティを使え、ということだ。ただし、DRAC4向けのコマンドでローカルのDRAC IIIを設定することはできないので、リモートで設定する。PE本体のOS(この場合はCentOS 5)にログインし、以下の通り実行する(下線部がユーザ入力)。
# cd /opt/dell/srvadmin/rac4/bin
# ./racadm -u root -p "パスワード" -r DRACのIPアドレス config -g cfgSerial -o cfgSerialConsoleEnable 1
Object value successfully modified
# ./racadm -u root -p "パスワード" -r DRACのIPアドレス config -g cfgSerial -o cfgSerialTelnetEnable 1
Object value successfully modified
#./racadm -u root -p "パスワード" -r DRACのIPアドレス racreset
#
ここで言う「パスワード」は、DRACに認識されるパスワードで、OSのものとは違うことに注意する。最後は、DRACを再起動するコマンド。再起動しないと、設定が反映されない。

もう一つの方法だが、DRACのIPアドレスにHTTPSでアクセスすると、次のような画面が表示される(ホスト名がlocalhostになっているのは、SSHポート転送を使用しているから。通常の環境ならば、正しいホスト名が表示されるべき)ここに「ユーザ名」入力欄にroot、「パスワード」入力欄にDRACのパスワードを入力し、「OK」のリンクをクリックすると、RACの管理画面に変わる(しばらく時間がかかる)。ここから「デバッグ」タブ→「コマンドのデバッグ」サブタブを選択する。この画面では、DRACのCUIコマンド(OSのコマンドではない)を実行することができる。「コマンド」入力欄に以下の三つのコマンドを入力し、その都度「送信」をクリックする。
racadm config -g cfgSerial -o cfgSerialConsoleEnable 1
racadm config -g cfgSerial -o cfgSerialTelnetEnable 1
racadm racreset
最後の再起動の設定以外は、次のような画面が表示される。入力する度に「 コマンドのデバッグ ページに戻る」をクリックして元の画面に戻る。

DRACの再起動(OSの再起動は不要)が終わったら、実際にTELNETできるか確認する。
# telnet DRACのホスト名
Trying DRACのIPアドレス...
Connected to DRACのホスト名 (DRACのIPアドレス).
Escape character is '^]'.

Dell Embedded Remote Access Controller (ERA)
Firmware Version 3.0 (Build 10.06)
Login: root
Password: パスワード
[root]#
DRACのパスワードはエコーバックされないので表示されない。

フェンスできるかどうかは、以下のコマンドをOS上で実行し、確認する。
# fence_drac -a DRACのIPアドレス -l root -p "パスワード"
これを実行すると、PowerEdge本体がシャットダウンされる。

こんなことが役に立つ人ってどのくらいいるのかな…?

2007/10/05

続・Dell Remote Access ControllerのVNC

Dell PowerEdgeのDell Remote Access Controller (Dell RAC, DRAC)を使うと、VNCによるシステム管理ができるようになるが、ではVNCに接続するときのパスワードは?

答は、/var/racvnc/passwdに保存されたものが使用される。変更するには、
# racvncpasswd /var/racvnc/passwd
Password:パスワード
Verify:パスワード
#
とすればよい(パスワードは画面に表示されない)
しかし、これが嬉しいかと言うと、ちょっと疑問だ。VNCくらい必要なときに自分で起動すればいい。

前回に書いとけばよかったのだが…

Dell Remote Access ControllerのVNC

Dell PowerEdgeのDell Remote Access Controller (Dell RAC, DRAC)を使うと、VNCによるシステム管理ができるようになるが、CentOS 5 (RHEL5)にDell製品関連のリポジトリから対応するソフトウェアをインストールすると、VNCによるリモート管理機能が利用できるようになる。
…はずなのだが、実際にはVNCが機能しない。直接の原因は、サービスracvncが正常起動しないことだ。例えば、コマンドラインから起動しようとすると、
# service racvnc start
Starting racvnc (RAC) services: Couldn't open RGB_DB '/usr/X11R6/lib/X11/rgb'
05/10/07 11:06:42 Xvnc version 3.3.3r2
05/10/07 11:06:42 Copyright (C) AT&T Laboratories Cambridge.
05/10/07 11:06:42 All Rights Reserved.
05/10/07 11:06:42 See http://www.uk.research.att.com/vnc for information on VNC
05/10/07 11:06:42 Desktop name 'Dell_Remote_Service' (hostname:1)
05/10/07 11:06:42 Protocol version supported 3.3
05/10/07 11:06:42 Listening for VNC connections on TCP port 5981
Font directory '/usr/X11R6/lib/X11/fonts/misc/' not found - ignoring
Font directory '/usr/X11R6/lib/X11/fonts/Speedo/' not found - ignoring
Font directory '/usr/X11R6/lib/X11/fonts/Type1/' not found - ignoring
Font directory '/usr/X11R6/lib/X11/fonts/75dpi/' not found - ignoring
Font directory '/usr/X11R6/lib/X11/fonts/100dpi/' not found - ignoring

Fatal server error:
could not open default font 'fixed'
New 'Dell_Remote_Service' desktop is hostname:1
Starting applications /var/racvnc/racserver
Log file is /var/racvnc/hostname:1.log
[ OK ]
#
と表示される。

これを解決するには、以下を実行する。
# mkdir /usr/X11R6/lib
# ln -s /usr/share/X11 /usr/X11R6/lib
これでも/usr/X11R6/lib/X11/fonts/Speedo/に関しては文句を言われるが、気にしない。

もちろんこの原因は、/usr/X11R6以下に、lib/fontsなんてディレクトリは存在しないこと。適切なリンクを貼れば解決するというわけだ。

XFree86からXorgに代わったとき辺りにそうなったのかな?

XenとDell Remote Access Controller

検証にDell PowerEdgeを使っている。これにDell Remote Access Controller (Dell RAC, DRAC)を導入しているのだが、Xenを組み合わせて使うと、シリアルポートからのPPPアクセスが利用できない場合がある。これは、サービスracserが正常に起動しないことが直接の原因だ。このサービスを起動しようとすると、
# service racser start
Starting pppd (RAC) services: /dev/ttyS2: No such device or address
/dev/ttyS2: No such device or address
[ OK ]
#
と表示される。ログ(/var/log/messages)には、
Oct  5 10:30:19 hostname pppd[5776]: Failed to open /dev/ttyS2: No such device or address
と表示される。

解決編。RedHatのBugzilla Bug 204825で報告されている通り、/boot/grub/grub.confの中で、module /vmlinuzのパラメータにxencons=ttyを加えれば解決する。例えば、
title CentOS (2.6.18-8.1.10.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-8.1.10.el5
module /vmlinuz-2.6.18-8.1.10.el5xen ro root=/dev/VolGroupXX/LogVol00 rhgb xencons=tty
module /initrd-2.6.18-8.1.10.el5xen.img
の様に、下線部を追加して再起動する。

根本的な原因は、デフォルトでXenのコンソール出力をシリアルポートに出力するよう設定されてること(ここを参照)。このため、Dom0からシリアルポートがアクセスできなくなっている。この機能は、問題解決時には有用だが、通常時には不要なので、使わないように設定すればよい、というわけだ。

まあ、いまどきモデム経由のPPPが使えるとそんなに嬉しいか、と言われればそれまでなんですが…