私は、アプリケーション開発用の使い捨てQAマシンのホストとしてXenServerを使用しています。テンプレートから新しいVMを自動的に作成し、起動し、ログインし、最新のアプリケーションビルドをフェッチして、デプロイするスクリプトを作成したいと思います。
スクリプトに実行させたいのは、VM 'xe vm-install'を使用してインストールし、 'xe vm-start'を使用して起動し、起動が完了するまで待って、SSHで接続することです。次に、アプリのインストール手順を実行します。
問題は、「xevm-start」コマンドがシェルをブロックしないことです。つまり、マシンが完全にロードされる前にコマンドが返されます。
Xenにマシンの起動ステータスを照会できるかどうかとその方法を知っている人はいますか?
ありがとう
マシンが外部からOSの起動を終了したかどうかを判断する方法はありません...しかし、これを解決するには2つの方法があります。
サービスのロードが完了したときにシステムが稼働していると想定します(たとえば、sshd。このサービスが稼働するまでシステムをプローブします)。
クライアントの起動が完了したら実行されるインストールスクリプトをクライアントに追加します。スクリプトに外部サーバーからシェルスクリプトをプルダウンさせて実行させます。
Xen-toolsの使用を検討し、パッケージを取得/インストールするためのカスタムロールを作成する価値があります