クローンを使って複数のサーバーを設定したいです。初期イメージを適用した後、設定スクリプトを実行したいと思います。複製は、ハードウェアベンダーからのハードディスクのコピーによって行われます。
スピード:
- ハードウェアベンダーが新しいサーバーを構築します。
- ハードウェアには、初期イメージのハードドライブが付属しています。
- 最終位置にサーバーを設定する
- サーバーが起動します。
- サーバーは初期構成スクリプトを実行します。
- サーバーが再起動します。
次の要件を満たすステップ5と6の実装方法は何ですか?
- Ubuntu 12.04 LTS
- コンピュータの電源を入れたら、ユーザーの介入なしにスクリプトを起動して実行する必要があります。
- すべてのデーモンが起動したら、スクリプトを実行する必要があります。
- スクリプトはコンソールにステータスを出力する必要があります。
- スクリプトはエラー状況でユーザー入力を許可する必要があります。
答え1
私はこのアプローチを試していませんが、あなたが探しているように聞こえます。ツールが呼び出されます。Ubuntuのインストール後。
インストール後の一部としてダウンロードするか、後で配布することができます。また、起動時にダウンロードできるサポートオプションを含む設定ファイルを使用します。ツールのホームページから詳細を読むことができます。ここには答えが多すぎます。
移動する
呼び出しに使用できる2つの方法があります。
ネットワークから.cfgファイルをダウンロードする
$ sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-gnomeshel
ローカルファイルの使用
$ sudo ./ubuntu-12.04-postinstall.py -c mycfg.cfg
行動前/後
このセクションでは、何かが起こる前(事前タスク)および/または他のすべてのタスクが完了した後(事後タスク)カスタムスクリプトを実行できます。
パッケージとリポジトリ
パッケージをインストールまたは削除するか、それを使用して追加のPPAを追加してサードパーティのAPTリポジトリにアクセスできます。
記録
Pythonスクリプトの場合は、コマンドを使用してスクリプトの出力を実行し、tee
出力をファイルとコンソールに送信できます。
答え2
/etc/rc.localファイルは最後のinitscriptの実行を保証する必要がありますが、これがUbuntuの場合であるかどうかはわかりません。 rc.localで構成スクリプトを呼び出してmv
正常に完了したら、そのファイルを呼び出して再起動(または同様のオプション)時に実行されないようにすることができます。
systemdのコンソール出力のために、サービスにコンソールとsyslogにログインするように明示的に指示するファイルを生成する必要があります。 IIRC、Ubuntuはupstartを使用します。たぶんこれは役に立ちます:https://askubuntu.com/questions/115034/debugging-console-output-and-upstart-scripts