以前に vSphere に検証用 CentOS を作成する際の手順 を記載したのですが、そのアップデートです。基本的に自分用のメモです。
作業の流れ
作業の大まかな流れは以下の通りです。
- 仮想マシンを作成する
- Ansible Playbook を実行する
- 古いカーネルを削除する
- 仮想マシンを停止する
- DVD ドライブを未接続状態にする
- テンプレート化する
仮想マシンの作成
vSphere 上で CentOS の仮想マシンを作成します。以下の点に留意します。
- 仮想マシン名は「CentOS7-YYYYMMDD」とします
- ディスクはシンプロビジョニング(Thin Provisioning)とします
- ベースは CentOS7 64bit とします
- CentOS7 は最小構成でインストールします
- インストール先は Standard Partition とします
Ansible Playbook の適用
母艦となる macOS で GitHub からテスト VM 作成用の Ansible Playbook を取得し、作成した仮想マシンへ Playbook を実行します。ログイン対象を記載するインベントリファイル(下記の例では --inventory-file オプションで指定)のファイルパスは適宜、修正します。尚、インベントリファイルの指定を省略した場合に参照されるデフォル値は /usr/local/etc/ansible/hosts でした。
git clone https://github.com/sig9org/playbooks.git
cd playbooks/CentOS/create-test-vm/
ansible-playbook --inventory-file=hosts --user root --ask-pass site.yml
この Playbook では以下の初期ユーザが作成されます。
ユーザ名 | パスワード |
---|---|
root | password |
user | password |
古いカーネルの削除
Playbook を実行したことにより、全パッケージが最新にアップデートされているはずです。カーネルがアップデートされた場合は古いカーネルが不要になるので、これを削除します。Playbook がエラー無く、完了したら仮想マシンへ SSH ログインして再起動し、最新のカーネルで起動し直します。
sync
sync
sync
reboot
再起動が完了したら再度、仮想マシンへログインし、package-cleanup で古いカーネルを削除します。
package-cleanup --oldkernels --count=1 -y
検証用公開鍵のコピー
母艦となる macOS から検証用ユーザ用の公開鍵を作成した仮想マシンにコピーします。あくまで検証用途なので利便性を重視し、root / user の両ユーザで同じ公開鍵を利用しています。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ADDRESS
ssh-copy-id -i ~/.ssh/id_rsa.pub user@ADDRESS
公開鍵のコピーには ssh-copy-id を使いました。インストールされていない場合は homebrew でインストールしておきます。
brew install ssh-copy-id
yum キャッシュの削除
yum のキャッシュを削除しておきます。
yum clean all
仮想マシンの停止
Linux の設定が完了したので、シャットダウンします。
sync
sync
sync
poweroff
DVD ドライブを未接続状態にする
忘れがちですが DVD ドライブはデータストアでは無く、「クライアントデバイス」を参照しつつ、未接続に設定しておきます。もし接続したままになっていると、接続先である .iso ファイルが削除出来ない… 等の弊害が出ます。
スナップショットの削除
vSphere の仕様では『スナップショットを保持した OVF ファイルやテンプレートから仮想マシンを作成しても、作成した仮想マシンへスナップショットはコピーされない』という動きをするそうです。とは言え、テンプレートにスナップショットを残しておくのは気持ち悪いので、削除しておきます。
テンプレート化する
最後に vSphere 上でテンプレート化して完了です。
コメント