インストール後に実行されるカスタム スクリプトを提供する方法についての情報が見つからないようです。コミュニティが提供できる例はありますか?
答え1
使用しているインストーラに応じて、MAASはインストールをカスタマイズするためのさまざまなメカニズムを提供します。この回答では、カーティンインストーラー(高速パスインストーラーとも呼ばれる)は、マース1.7。
MAASはクラウド初期化インストールプロセスの一部として、cloud-initの動作をカスタマイズする方法は複数ありますが、最も簡単な方法は、ユーザーデータスクリプトこれは、オペレーティング システムのインストールが完了した後、最初の起動時に cloud-init によって実行されます。
MAASでは、user_data引数をnode start
CLIコマンドこのコマンドの形式は次のとおりです。
maas <user> node start <node uuid> user_data=<script> distro_series=<name>
ここで、は実際にはbase64でエンコードされた文字列です。具体的な例として、インストールコンソールに出力を出力する<script>
というスクリプトを実行したいとします。addkey.sh
LaunchpadからSSHキーをインポートするユーザーに対して実行ubuntu
され、その結果がログファイルに記録されます。
#!/bin/sh
(
echo ======== Hi World ======================
echo ============== $(date) =================
ssh-import-id user
) | tee /my.log
次のコマンドを発行できます。
$ script=$(base64 addkey.sh)
$ maas myuser node start node-79b67e82-d25c-11e4-a333-00163eca91de \
user_data=$script distro_series=trusty
成功した場合、しばらくすると次の形式の出力が返されます。
Success.
Machine-readable output follows:
{
"status": 6,
"macaddress_set": [
{
...
これで、デプロイ後にスクリプトが実行されます。特定のノード. コマンドを次のように設定したい場合は、任意のノードMAASを通じてインストールされたコマンドはlate_commands
、/etc/maas/preseeds/curtin_userdata
ファイル。このメカニズムを使用してネットワークインターフェースに2つのVLANを設定するより複雑な例については、http://astokes.org/customizing-fastpath-curtin-installations/。
カーティンは現在ほとんど文書化されていないことに注意してください。しかし、概要ファイルその動作の詳細の一部を説明します。
このメカニズムはcomissioning script
、試運転段階MAAS ノードのライフサイクルではインストールの前に行われます。コミッショニングは通常、インストールに直接影響しないことを目的とした管理タスクに使用されます。例:
- ファームウェアの更新
- 主要なハードウェアコンポーネントの健全性テスト
- バーンイン
答え2
ここでのコマンドは 1.0 API 用であることに注意してください。2.0 以降では、コマンドは次のようになります。
maas <profile> machine deploy <system_id> user_data=<base64-encoded-userdata>