■現在の環境

USB起動のESXi4.1

■アップグレード失敗

今回はアップグレードに失敗した為、USBに新規インストールを行った。
ESXi4.1 マシンでUSBへインストールした後、起動不能になってしまった。
別のPCにてUSBへインストールを実行後、USBを差し替え起動したところ正常起動。

無事、ESXi5.0がUSB起動しました。

■初期設定

[F2]で設定画面を表示。
※パスワード入力を求められる。

1.[Configure Password]
パスワード変更
2.[Configure Management Network]-[Network Adapters]
複数のネットワークカードが存在する場合は、どれを使用するか選択する。
3.[Configure Management Network]-[IP Configuration]
IPアドレス、ゲートウェイの設定。
4.[Configure Management Network]-[DNS Configuration]
DNSサーバー、ホスト名の設定。
5.[TroubleShooting Options]-[Enable ESXi Shell]
[Enter]キーで、ESXi Shell is Enabled に切り替える。
※[Enter]キーで、Enable、Disableが切り替わる。
5.[TroubleShooting Options]-[Enable SSH]
[Enter]キーで、SSH is Enabled に切り替える。
※[Enter]キーで、Enable、Disableが切り替わる。

●リモートSSHでShellにパスワードログインできるように変更。

[Alt]+[F1]でShellが表示される。
Shellにログインし、

~ # vi /etc/ssh/sshd_config
—————————————————————-
#PasswordAuthentication no
PasswordAuthentication yes
—————————————————————-
:wq

●UPS管理用仮想マシンからリモートSSHでパスワードなしで実行できるようにする。

※ESXi4.1 の時の認証鍵をそのまま利用しようとしたが正常動作しなかったのであらためて作成し直す。

1.rsaキー作成

~ # cd /etc/ssh/keys-root

/etc/ssh/keys-root # /usr/lib/vmware/openssh/bin/ssh-keygen -t rsa  -C “SSH2 RSA key”
Generating public/private rsa key pair.
Enter file in which to save the key (//.ssh/id_rsa): ./id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./id_rsa.
Your public key has been saved in ./id_rsa.pub.
The key fingerprint is:
cd:c5:41:a5:cd:f2:34:f4:b1:f9:88:aa:76:81:93:c7 SSH2 RSA key
The key’s randomart image is:
+–[ RSA 2048]—-+
|           .o.o. |
|           . * .+|
|            = =o.|
|         o . = o.|
|        S+o . o .|
|        + E.     |
|         o..     |
|        …      |
|       …       |
+—————–+
/etc/ssh/keys-root # ls
id_rsa      id_rsa.pub

2.公開鍵 id_rsa.pub を正規のファイルへ内容をコピー。

/etc/ssh/keys-root # cat id_rsa.pub > /etc/ssh/keys-root/authorized_keys

3.秘密鍵の内容をどこかにコピーしておく。
※後で、UPS管理用仮想マシンに設定する必要がある。

■UPS監視用仮想マシンインストール

VMware vSphere Management Assistant 5.0 (vMA) を使用。

※4.1の時はベースOSがCentOSだったが、5.0では「SUSE Enterprise Linux 11」に変更になっている。

●ダウンロード

http://downloads.vmware.com/jp/d/details/vma50/dHRAYnQld3RiZHBoKg==

解凍後、VMware vSphere Client にて「vMA-5.0.0.0-472630_OVF10.ovf」をデプロイする。
[ファイル]-[OVF テンプレートのデプロイ]

仮想マシンを起動し、手順にしたがって初期設定をすませる。

●自分の使用環境に合わせる。

初期状態では複雑なパスワードを要求されるので、設定を変更し条件をゆるくする。

・パスワードポリシーの変更。
文字数8文字以上だけの制限に変更。

vi-admin@localhost:~> sudo vi /etc/pam.d/common-password
———————————————————————————
password        requisite       pam_cracklib.so lcredit=-1 ucredit=-1 ocredit=-1

password        requisite       pam_cracklib.so minlen=8 lcredit=0 ucredit=0 ocredit=0
———————————————————————————
:wq

・root、vi-admin のパスワード変更

vi-admin@localhost:~> sudo passwd
vi-admin@localhost:~> sudo passwd vi-admin

■UPS監視用仮想マシンにApcupsdをインストール

vMA5.0のベースOSが「SUSE Enterprise Linux 11 SP1」のようなので、このOSに対応したrpmパッケージをインストール。

●ダウンロード

「apcupsd-3.14.8-1.su111.x86_64.rpm」をダウンロード
※今回のvMA5.0は「wget」が利用可能となっている。
vi-admin@localhost:~> wget http://downloads.sourceforge.net/project/apcupsd/rpms-contrib-psheaffer/3.14.8/apcupsd-3.14.8-1.su111.x86_64.rpm?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fapcupsd%2Ffiles%2Frpms-contrib-psheaffer%2F3.14.8%2F&ts=1315965088&use_mirror=jaist

●インストール

vi-admin@localhost:~> sudo rpm -ivh apcupsd-3.14.8-1.su111.x86_64.rpm

●設定変更

vi-admin@localhost:~> sudo vi /etc/apcupsd/apcupsd.conf
—————————————————————————
↓別マシンで稼働中のApcupsdに接続
UPSTYPE net
DEVICE 192.168.0.2:3551

↓シャットダウン開始までの時間(秒数)
TIMEOUT 900
—————————————————————————
:wq

vi-admin@localhost:~> sudo vi /etc/apcupsd/apccontrol
—————————————————————————
doshutdown)
echo “UPS ${2} initiated Shutdown Sequence” | ${WALL}
ssh -i /root/esxi_id_rsa.pub root@192.168.0.103 “/vmfs/volumes/datastore2/system/ups_shutdown.sh”
${SHUTDOWN} -h now “apcupsd UPS ${2} initiated shutdown”
—————————————————————————

※ESXiホスト側のシャットダウンスクリプトの保存先は、再起動後も削除されない場所に保存して実行。

●接続確認

vi-admin@localhost:~> apcaccess

●ESXiホストで作成した秘密鍵をUPS監視用仮想マシンに設定。

vi-admin@localhost:~> sudo vi /root/esxi_id_rsa.pub
———————————————————–
※ESXiホストで作成した、「id_rsa」の内容をコピーする。
———————————————————–
:wq

vi-admin@localhost:~> sudo chmod 600 /root/esxi_id_rsa.pub

●接続テスト

vi-admin@localhost:~> sudo ssh -i /root/esxi_id_rsa.pub root@192.168.0.103
The authenticity of host ‘192.168.0.103 (192.168.0.103)’ can’t be established.
RSA key fingerprint is ea:b1:f8:98:42:e6:30:4f:87:76:85:3e:c2:a4:29:15.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.0.103’ (RSA) to the list of known hosts.
The time and date of this login have been sent to the system logs.

VMware offers supported, powerful system administration tools.  Please
see www.vmware.com/go/sysadmintools for details.

The ESXi Shell can be disabled by an administrative user. See the
vSphere Security documentation for more information.
~ # exit
Connection to 192.168.0.103 closed.
vi-admin@localhost:~>

※初回接続時のみ確認メッセージが表示されるので、「yes」を入力。
2回目以降はメッセージは表示されない。
※接続情報は、/root/.ssh/known_hosts に保存されるので、やり直ししたい場合は該当情報を削除する。

■仮想マシンバックアップ構成

●下記URLを参考にする。

http://communities.vmware.com/docs/DOC-8760

●バックアップスクリプトのダウンロード

https://github.com/lamw/ghettoVCB/archives/master

ダウンロードしたファイルを「WinSCP」等でESXiホストにコピーする。

●設置設定

ダウンロードしたファイルを解凍

~ # cd /vmfs/volumes/datastore2/system/backupscript
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # tar zxvf lamw-ghettoVCB-19e0d4b.tar.gz
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # rm -f lamw-ghettoVCB-19e0d4b.tar.gz
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # mv lamw-ghettoVCB-19e0d4b/ ghettoVCB

設置
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # cp ghettoVCB/ghettoVCB.sh ./
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # chmod 700 ghettoVCB.sh

仮想マシン名リストを作成する。
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # vi vm_list
—————————————————————–
centos5
centos6
—————————————————————–
:wq

Configファイルの設定。
※各仮想マシン単位で設定が可能。
※仮想マシン用のConfigファイルが見つからなかった場合は、既定の設定ど動作する。
既定の設定は、「ghettoVCB.sh」自信の中にある。
またグローバル設定を使用したい場合は実行時に指定する事ができる。

テンプレートからConfigファイルを作成
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # mkdir conf
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # cp ghettoVCB/ghettoVCB-vm_backup_configuration_template conf/centos5
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # vi conf/centos5
——————————————————————
VM_BACKUP_VOLUME=/vmfs/volumes/datastore3/backup
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=1
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=4
POWER_DOWN_TIMEOUT=5
SNAPSHOT_TIMEOUT=15
ENABLE_COMPRESSION=0
ADAPTER_FORMAT=lsilogic
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
#VMDK_FILES_TO_BACKUP=”VCAP.vmdk,VCAP_2.vmdk”
——————————————————————
:wq

※変更箇所
[バックアップ先ディレクトリ]
VM_BACKUP_VOLUME=/vmfs/volumes/datastore3/backup
[バックアップローテイション数]
VM_BACKUP_ROTATION_COUNT=1
※1回に変更
[ストレージアダプタ種別]
ADAPTER_FORMAT=lsilogic
[仮想ディスク]
#VMDK_FILES_TO_BACKUP=”VCAP.vmdk,VCAP_2.vmdk”
※全てを対象にする。「all」指定でも同じ。

/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # cp conf/centos5 conf/centos6

スクリプトを実行するスクリプトを作成。
/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # vi backup.sh
——————————————————————
#!/bin/sh

/vmfs/volumes/datastore2/system/backupscript/ghettoVCB.sh -f /vmfs/volumes/datastore2/system/backupscript/vm_list -c /vmfs/volumes/datastore2/system/backupscript/conf -l /vmfs/volumes/datastore2/system/backupscript/log/backup.log
——————————————————————
:wq

/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # chmod 700 backup.sh

●テスト実行

/vmfs/volumes/4c31c8ab-2baec156-53ff-001cc08c62a8/system/backupscript # cd
~ # /vmfs/volumes/datastore2/system/backupscript/backup.sh

●cronに登録

~ # /bin/kill $(cat /var/run/crond.pid)
~ # /bin/echo “0    10   *   *   0   /vmfs/volumes/datastore2/system/backupscript/backup.sh” >> /var/spool/cron/crontabs/root
~ # /bin/busybox crond

●ESXiホスト起動時に自動登録できるようにする。

~ # vi /etc/rc.local
——————————————————————
#!/bin/sh

export PATH=/sbin:/bin

log() {
echo “${1}”
/bin/busybox logger init “${1}”
}

# execute all service retgistered in ${rcdir} ($1 or /etc/rc.local.d)
if [ -d “${1:-/etc/rc.local.d}” ] ; then
for filename in $(find “${1:-/etc/rc.local.d}” | /bin/busybox sort) ; do
if [ -f “${filename}” ] && [ -x “${filename}” ]; then
log “running ${filename}”
“${filename}”
fi
done
fi

# ※下記を追加
/bin/kill $(cat /var/run/crond.pid)
/bin/echo “0    10   *   *   0   /vmfs/volumes/datastore2/system/backupscript/backup.sh” >> /var/spool/cron/crontabs/root
/bin/busybox crond
——————————————————————
:wq

~ # /sbin/auto-backup.sh