タグ付けされた質問 「ansible-vault」

4
ansible-vaultパスワードを置く場所
私たちは、gitでパスワードやキーの漏洩を防ぐために、プロジェクトでansible vaultを使用することを計画しています。 考えは、すべての機密データをプレーンファイルに入れ、パスワードを使用してansible-vaultでこのファイルを暗号化してからgitにプッシュすることです。 ファイルを復号化するには、ボールトのパスワードをansibleに渡す必要があります。3つの可能性について考えています。 サーバー環境変数内に保存します ansible-playbookコマンドのオプションとして渡します バージョン非対応のファイルに保存します。 ansible-vaultパスワードを保存するための最良の(そして安全な)方法である他のオプションはありますか?

1
Ansible vaultシークレット用のGit clean / smudgeフィルター
ansible-vaultコマンドを使用して、秘密を含むファイルを自動的に暗号化および復号化するために、gitでclean / smudgeフィルターを設定しようとしています。 ansible-vaultコマンドの特徴は、it等ではないことです(同じデータで呼び出されるたびに異なるバイナリを作成します)。 このブログページで提案されている実装から始めました。残念なことに、それは正しく機能しませんでした。汚れが呼び出されると(git checkout、または単にgitステータス)、秘密ファイルはgit用に変更されたように見えます。 だから、gitがインデックスにあるバイナリをクリーンフィルター処理された現在のファイルと比較するのではないかと思い、これらのスクリプトを次のように構築しようとしました。 #!/bin/sh -x # clean filter, it is invoked with %f if [ ! -r "$HOME/.vault_password" ]; then exit 1 fi tmp=`mktemp` cat > $tmp # get the plain text from the binary in the index tmphead=`mktemp` git show HEAD:$1 > $tmphead contenthead=`echo "embedded" …

2
資格情報をファイルに保存しないで、Ansible Azureプレイブックを実行するにはどうすればよいですか?
バックグラウンド Azureインフラストラクチャのプロビジョニングと管理には、Ansibleを使用しています。現時点では、Ansibleを「手動」で実行しています。つまり、さまざまな自動化タスクのプレイブックを手動で実行しています。CIインフラストラクチャはありません。 おそらく関係ありませんが、動的スクリプトを使用して在庫を管理していますazure_rm.py。 可能な限り安全であることをお勧めします。 Vaultのパスワードを~/.vault_passローカルファイルに保存しないでください。 Azureシークレットを格納しないでください ~/.azure/credentials 安全なものをに保管しないでください.bashrc。 このようなシナリオでは、上記のガイドラインに従いながら、プレイブックがAzureシークレットに確実にアクセスできるようにするための一貫した戦略を思い付くことができません。 質問 プレイブックがアクセスできるようにしながら、Ansible VaultとAzureの資格情報をファイルに保存しないようにするにはどうすればよいですか? 私が試したこと これまでのところ、次のようなラッパースクリプトを考え出しました。 ユーザーにVaultパスワードを要求する これを使用して、保管されたシェルスクリプトを復号化します Azure環境変数を環境にロードするスクリプトを評価します。 このように設定された環境でプレイブックを実行します。 そこにもっと良い(よりエレガントで、より複雑でなく、より「Ansible」)ソリューションはありますか?

3
パブリックCIおよびBitBucketなどのソース管理リポジトリでAnsible Vaultを使用するためのベストプラクティスは何ですか?
前書き プライベートCIとGitlab-ceのようなソース管理リポジトリでは、〜/ .vault_pass.txtをサーバーにコピーして、CIがAnsibleを使用してファイルを復号化できるようにすることができます。 問題 パブリックCIとBitbucketなどのソース管理リポジトリでは、〜/ .vault_pass.txtをCIサーバー自体にコピーすることはできません。 討論 Bitbucketでは暗号化された変数を定義することができますが、このファイルがチェックされるとき、VAULT関連の変数は次のとおりです。 ANSIBLE_ASK_VAULT_PASS ANSIBLE_VAULT_PASSWORD_FILE ANSIBLE_ASK_VAULT_PASSが設定されている場合ansible-vaultでもプロンプトが表示されるため、これらの変数は問題を解決するためのオプションではありません。 user@host $ Vault password: 同じパスワードを入力すると、暗号化されたファイルを開くことができますが、ファイルを必要とせずに、またはプロンプトにパスワードを入力せずにファイルを開くことが目的です。 問題を解決するための別の試みが実行されてexport ANSIBLE_ASK_VAULT_PASS=<ansible-vault-password>いましたが、インタラクティブモードが持続します。 別のオプションはexport ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtですが、このファイルをリポジトリにプッシュする必要がありますが、ソース管理リポジトリにはパスワードを含めないでください。

2
Ansible 2.3.0以降の暗号化変数の構造化のベストプラクティスは何ですか?
このドキュメントは、Ansible 2.3以降!vault |、変数とキーをボールトファイルに入れて完全に暗号化する代わりに、プレフィックスを使用して特定の変数を暗号化できるようにする必要があることを示しています。 notsecret: myvalue mysecret: !vault | $ANSIBLE_VAULT;1.1;AES256 66386439653236336462626566653063336164663966303231363934653561363964363833313662 6431626536303530376336343832656537303632313433360a626438346336353331386135323734 62656361653630373231613662633962316233633936396165386439616533353965373339616234 3430613539666330390a313736323265656432366236633330313963326365653937323833366536 34623731376664623134383463316265643436343438623266623965636363326136 other_plain_text: othervalue 現在のところ、構造は次のとおりです。 ansible/group_vars/testing/vars ansible/group_vars/testing/vault 暗号化された変数をボールトからvarsディレクトリに移動してansible-vault decrypt ansible/group_vars/testing/vars実行すると、次のように返されます。 ERROR! input is not vault encrypted data for ansible/group_vars/testing/vars この保管された変数は、提供された保管庫の秘密で復号化され、通常の変数として使用されます。ansible-vaultコマンドラインは、オンザフライでデータを暗号化するためのstdinとstdoutをサポートしています。これは、お気に入りのエディターからこれらのvaultされた変数を作成するために使用できます。AnsibleとYAMLの両方が復号化の必要性を認識できるように、!vaultタグを必ず追加する必要があります。| ボールトの暗号化は複数行の文字列になるため、これも必要です。 ご質問 暗号化する必要がある変数は、コマンドラインを使用して1つずつ暗号化する必要がありますか? 古いAnsible構造を再構築するためのベストプラクティスは何ですか?たとえば、ボールトファイルを削除して、すべての暗号化された変数を変数ファイルに入れますか?

3
ボルトパスワードファイルが設定されているにもかかわらず、暗号化されたAnsibleファイルを復号化できないのはなぜですか?
このQ&Aのフォローアップ。 これとこのドキュメントによるとvault_password_file = ~/.vault_pass.txt、次のファイルのいずれかを指定することにより、デフォルトのボールトパスワードファイルを定義できるはずです。 * ANSIBLE_CONFIG (an environment variable) * ansible.cfg (in the current directory) * .ansible.cfg (in the home directory) * /etc/ansible/ansible.cfg パスワードファイルが存在し、ログに、定義を含むansible.cfgが使用されていることが示されますが、復号化は失敗します。 user@host$ Using /etc/ansible/ansible.cfg as config file ERROR! Decryption failed on /path/to/ansible/group_vars/production/vault 討論 このボールトのパスは正しいですか? はい。--vault-password-file=~/.vault_pass.txt復号化を使用してansibleが実行されると、成功します。 明確にするために、環境変数の名前はANSIBLE_VAULT_PASSWORD_FILEですよね? いいえ。この変数を使用すると機能しますが、目的は、を設定してansible.cfgに設定すること/etc/ansible/ansible.cfgです。 どのAnsibleバージョンが使用されていますか? user@host:/dir$ ansible --version ansible 2.2.2.0 config file = /etc/ansible/ansible.cfg …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.