2017-11-05 2 views
1

ansible-vaultを使用してファイルを暗号化する必要があります。ファイルが秘密の格納域によって暗号化されていない場合にのみ、暗号化を実行したいと思います。私は私のAnsible脚本でこのタスクを使用しようとしています:ファイルが安全なボールトによって暗号化されているかどうかのチェック

- local_action: command 
    ansible-vault encrypt path/to/file 
    when: <when file is not already encrypted by ansible-vault> 

ファイルが既にansible-vaultによって暗号化されているかどうかを確認します条件文で使用するためのロジックがありますか?

答えて

1

これは多分AnsibleとAnsible Vaultとはほとんど関係がありません。ここでは一つだ:

- local_action: shell 
    head -1 {{ file }} | grep -v -q \$ANSIBLE_VAULT && ansible-vault encrypt {{ file }} 

またAnsibleは処理を停止し、プロンプト上で待機しますそう--vault-password-fileが必要になります。

+0

ありがとうございました!うん、あなたが言っていた通りにボールトのパスワードファイルを設定しました。 'grep -v -q \ $ ANSIBLE_VAULT'では、ファイルが' $ ANSIBLE_VAULT'というテキストで始まっているかどうかを確認していますか? –

+1

stdinの行に '$ ANSIBLE_VAULT'文字列がないかどうかを確認します。 – techraf

+0

ああ、ええ、それを持っていない場合のみ暗号化してください。私はそれが私が考えていたよりも簡単だと思っています....私は、不安定な金庫にこれのための組み込みの機能がいくつかあると思いました。ありがとう! –

関連する問題