長時間実行されているシェルコマンドが特定のホストで正常に実行された後、そのホスト上で実行される後続のプレイブックでは実行されないようにしたいと考えています。Ansibleシェルコマンドがホストごとに1回だけ実行されるようにするにはどうすればよいですか?
私は、creates
のAnabilitiesシェルタスク(http://docs.ansible.com/ansible/shell_module.htmlを参照)のオプションを知ってうれしかったです。私はシェルコマンドが成功した後、ファイルを作成し、将来の実行で実行コマンドそのことはできません、これを使用して:あなたが見ることができるように
- name: Install Jupiter theme
shell: wp theme install ~/downloads/jupiter-theme.zip --activate
&& touch ~/ansible-flags/install-jupiter-theme
args:
creates: ~/ansible-flags/install-jupiter-theme
、私は私のアクティブのホームディレクトリにこれらの制御ファイルのディレクトリansible-flags
を持っていますユーザ(deploy
)。
しかし、これは非常にクルージングです。これを行うより良い方法はありますか?
また、別のユーザーとしてステップを実行する必要がある場合は、状況がかなり複雑になります。その場合、私はdeploy
ホームディレクトリとそのサブディレクトリにアクセスすることはできません。私はもちろんアクセス権を与えることができますが、それはさらに複雑さを増しています。私はこれにどう対処することをお勧めしますか?
私は例を提供何らかの理由で私はテーマがファイルシステムではなくデータベースにインストールされると思っていました。だから私は人工制御ファイルを作ったのですが、あなたが正しいです、私はテーマのインストール中に作成されたテーマディレクトリを探すことができます。 (たとえそれがDBに格納されていたとしても、その情報についてDBを照会する方法を見つけようとしていたはずです) –
私の質問に答える時間をとっていただきありがとうございます。私は今、「創造」を使うことができない場合には、私が望むことを行うための簡単な方法がないことを今見ています。 –