2016-06-28 17 views

答えて

0

コマンドがCIから実行されているかどうかを判断する方法が必要です。あなたが実行するコマンド何へのアクセス権を持っているなら、私は単に例

ansible-playbook -i inv.yml --extra-vars "ci=True" playbook.yml 

ために、コマンドにいくつかの余分な変数を追加することをお勧めして、あなたは何をすべきかを決定するためにあなたの脚本内部ci変数を参照することができます。

これが煩雑な場合は、ほとんどのCIサーバーが設定する環境変数に依存するのが最善の方法です。 CIサーバーのドキュメントを参照して、環境変数を設定しているかどうかを確認する必要があります。大部分(ただしすべてではありません)は、に変数CIを設定します。最悪のシナリオでは、この変数をCIサーバーの構成で手動で指定する必要があります。

あなたが使用して管理ホストマシンの環境変数にアクセスすることができるはずです。

これらのオプションの当然の
{{ lookup('env','CI') }} 

を使用すると、環境変数が適切に非対話型に設定されていることを確認する必要が動作するようにシェル(CIはあなたのために行う必要があります)、インタラクティブなものには設定されていません。

+0

私は本当に厄介な回避策を得ることに疲れています。 Pythonには、それを行う明確な方法があります。それは、すべての場合にうまくいかない醜いハックを伴わないものです:http://stackoverflow.com/questions/6108330/checking-for-interactive-hell-in-a- python-script – sorin

+0

@ソリンそれはまた非常にハイキックで、標準入力を利用できるようにする必要があるという事実に頼っています。実際にはどんな形でもstdinを期待するツールではありません – SztupY

+0

一方、別の危険なモジュールとしてチェックする価値はあるかもしれませんが、私の推測では、 ttyにはなりません – SztupY

関連する問題