2017-12-04 5 views
-1

私は、ビルドエンジンを起動するタスクを実行するためにansibleを使用しています。彼らがすべて始まったら、アシアントは私にコントロールを返し、私は彼らが一度に止まるのを見ます。それが動作するスクリプトの実行に10フラグを、それは彼らがnullの非同期種類を作るこれ、開始するために長い10秒以上かかる複数のビルドエンジンがある場合に問題がある:私は非同期を追加する場合。タスクを完了した後でマシンにとどまることができますか?

私はスクリプトの実行以下

- pause: 
    seconds: 10 

タスクを使用して試してみましたが、ビルドエンジンが停止し、それは一時停止がありません。

私は何を求めていますある - それは、コマンドを実行し終えた後に数秒間マシン上の周りansibleスティックを作るための方法はあります(すなわち、制御がユーザーに返された後に)?

+0

はむしろ自身の子供のようにエンジンを構築起動するよりも、あなたはあなたに代わって長時間実行プロセスを起動するために 'init'を取得するためにansible' service'モジュールまたは類似を使用する必要があります。その後、あなたは彼らを止めるためにあなたを使用するまで、ジョブは実行されます。 –

答えて

0

はwait_forしようとしましたが、それは環境を終了してからタスクを実行するようです。 私はシェルの実行タスクに次のように使用することによって、この問題を修正:

async: 300 
poll: 5 

これは、非同期タスクとポーリング応答のために5秒ごとに実行されます。

0

あなたが使用しているビルドシステムの種類とそれが正しくデーモン化できない理由は不明ですが、wait_forモジュールはあなたのニーズに完全に合っていると思います。あなたはそのビルドが正常に起動または単にいくつかの時間を待ってたことを示す、ビルドシステムは、1を開いた場合、出てくるいくつかのファイルが作成されるのを待つ、文字列のログファイルを解析するためにTCPポートを待つことができます。

関連する問題