GMOクラウドALTUS kickstart install

前回、適当なテンプレートで1ノード作成して、外からsshできるようにした。次は好きなOSをkickstartなりで自動インストールしてsetupを進めていく。標準のOSテンプレートやISOだとcentos6系までしかないので、centos7を使いたければ自分で用意するしかない。GMOクラウドALTUSはcitrixのcloudstackがベースとなっているので仮想環境にxenを使っており、自力でOSをインストールする場合はxs-toolsというxen用のツールを入れる必要がある。さらっと見た限りcentos7用のツールはなさそうなので、centos7はNGかもしれない。管理コンソール『OSの種類』プルダウンメニューにはcentos7の項目があるからいいのかな。



OSテンプレートが存在するクラウド環境なのに、あえてkcikstartの手順を確立する理由は、テンプレートや私用ISOを配置するバックヤードのストレージ領域も有料だからだ。10GBで月100円とか微々たる金額ではあるが、殆ど使わないのに払い続けるのはイマイチ。できればバックヤードのストレージ領域を使わないで済むインストール方法を確立したい。

標準のisoにもcentos7のメディアは存在しないので、ネットワークインストールしかない。リモート環境のkickstart install方法として、以下の2つをよく使う。

  1. 標準のインストールメディアを使って起動、anacondaにオプションでks.cfgのポインタを渡す
  2. 標準OSのgrub.confにinstall用のラベルを用意、そこにks.cfgのポインタを設定する

まずは前者からで、起動時にtabキーを押してオプション入力。が、その入力時にキーボードでイコールを入力することができない。仮想コンソールのキーボードが特殊で幾つかの記号入力が不可能だったりすることがままあり、今回もそのパターンと思われたので、諦めて後者を試す。OSテンプレートでcentos6.4のインスタンスを構築、そのgrubにインストール設定を仕込む。install用のinitrdとvmlinuzを配置して、それを読み出すラベルをgrub.confに設定。kernelオプションでks.cfgのポインタを指定し、デフォルトで選択されるように変更。rebootするとks.cfgを呼び出してインストールプロセスに進んでくれる。で、早速最初の問題。

localhost dracut-initqueue[603]: Warning: Could not boot.
localhost dracut-initqueue[603]: Warning: /dev/root does not exist
localhost systemd[1]: Starting Dracut Emergency Shell...

そうそう、これこれ。centos7からこのエラーが出るようになった。起動時のkernelオプションでinst.stage2変数にインストールメディアを指定する必要がある。

inst.stage2=ftp://ftp.riken.jp/Linux/centos/7/os/x86_64/

これで起動するようになったが、今度は Starting automated Install…のところで、『 pane is dead 』というエラーが出てインストールが停止してしまう。これは初めて見る。ググってみると諸説紛々ながらも、共通してそうなのはanacondaのメモリ不足。切り分けのためにメディアインストールを試してみると問題なくインストールできる。両者の違いで特に目につくのは、インストール前の274MBファイル転送の有無。メディアインストールでは転送なしで、ネットワークインストールの場合は転送が行われる。
※クラウド環境だと内部通信も遅いため目に付いた。

ネットワークインストールの場合は、squashfs.imgというanaconda用のファイルシステムをramfs上に展開してしまうためメモリ不足に陥ってしまうようだ。メモリ1GBのインスタンスで試したところ、問題なくインストールできたので、メモリ512MBのネットワークインストールは難しいのかもしれない。という訳で、もう1つインスタンスを作ってそちらにminimalのisoを配置。そのisoをnfsマウントできるようにして、nfsインストールを試したところ問題なく完了。出来れば起動はnfs、インストールはネットワークで出来ると尚いいんだけどなあ。

ともあれGMOクラウドにて、やっとcentos7のkickstart installが確立できた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)