2016-11-08 38 views
0

パッカーとシェフを使用してパイプラインを構築しています。シェフの実行リストにサードパーティの料理本がたくさんありますが、そのほとんどは再起動をリクエストしています。これが起こると、シェフの全部の実行が停止し、パッカーのエラーが発生し、マシンが中断されます。シェフのすべての再起動要求を無視する

シェフの実行中にすべての再起動要求を無視する方法はありますか?私は走り終わったときに再始動したい。私が今までに見た唯一の解決策は、クックブックを編集してリブートをコメントアウトすることです。

EDIT: "reboot"リソースを使用しているgithubのdotnetframework cookbookを使用しています。

+0

あなたはおそらく、Windowsの話をしている、あなたではありませんか? – StephenKing

+0

うん、具体的には2008R2 –

+0

あなたが使っている料理本の洞察がなく、 'windows_reboot'リソースや' reboot'リソースだけを使用していて、ここでアドバイスをするのがいかに難しいでしょうか。 – Tensibai

答えて

1

すべての再起動要求をグローバルに捕捉して、それらを即時から遅延に設定する良い方法はありません。あなたの2つのオプションは、あなたが依存しているすべてのサードパーティの料理本の非公開版を編集しておき、あなたの収束の終わりに処理されるグローバルリブートフラグを設定させるか、またはWindows cookbookのrebootリソースを上書きするフラグをセットし、最後にそのフラグを処理する。

どちらも独自の内部フォークを作成する必要があり、どちらも本当に素晴らしい選択肢ではありません。より良いアプローチは、サードパーティの料理本がなぜ必要なのか、必要な方法で再起動を処理する、より合理化されたプロセスを書くことができるのかということです。

1

あなたはノーオペレーション・プロバイダーを使用するようにrebootリソース(複数可)をモンキーパッチすることができます

Chef::Provider::Noop.provides(:reboot) 
Chef::Provider::Noop.provides(:windows_reboot) 
関連する問題