問題タブ [ansible-vault]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ansible - ansible ロールで複数の var ファイルを使用する
私の役割の 1 つには、2 つの異なる変数型があります。1 つはパブリックです (パッケージのバージョンやその他の無害な情報など)。これらは、心配することなく SCM にコミットできます。また、いくつかのプライベート情報 (API キーやその他の秘密情報など) も必要です。ansible-vault
秘密情報を暗号化するために使用しています。私の解決策はvars/main.yaml
、pulic とvars/vault.yml
暗号化された個人情報を保持することでした。
問題に遭遇しましたが、ここでのベスト プラクティスまたは実際の解決策がわかりません。ansible はvars/main.yml
ファイルをロードするだけのようです。当然、公開情報を暗号化したくないので、解決策を探しました。これまでのところ、私が思いついた (IRC で提案された) 唯一の解決策は、group_vars/all/vault.yml
すべての変数を作成し、その前にロール名を付けることです。これは、ansible が の下のすべてを再帰的にロードするように見えるため、機能しますgroup_vars
。これは機能しますが、変数は特定の役割のためのものであり、「グローバルに普遍的に真」ではないため、組織的に正しくないようです。私も入れようとしましたが、うまくいきませんでしたinclude: vars/vault.yml
。vars/main.yml
これを行う適切な方法はありますか?
git - Ansible ボールト シークレットの Git クリーン/スマッジ フィルター
ansible-vaultコマンドを使用してシークレットを含むファイルを自動的に暗号化および復号化するために、git でclean/smudge フィルターをセットアップしようとしています。
ansible-vault コマンドの特徴は、べき等ではないことです (同じデータに対して呼び出されるたびに異なるバイナリが作成されます)。
このブログページで提案されている実装から始めました。残念ながら、smudge が呼び出されるたびに ( git checkout であれ、単に git status であれ)、シークレット ファイルは git 用に変更されたように見えますが、そうでなくても正しく動作しませんでした。
そこで、git がインデックスにあるバイナリと、クリーンにフィルター処理された現在のファイルを比較するのではないかと考え、次のようにそれらのスクリプトを構築しようとしました。
ここでの違いは、プレーン テキスト (暗号化されていない) シークレット ファイルの現在のバージョンと HEAD バージョンを比較しようとし、それらが異なる場合にのみ、ansible-vault で暗号化された新しいバイナリ BLOB を出力することです。
残念ながら、この変更の後、git は秘密ファイルが常に変更されていると考え続けます。git add
git blob が計算されるようにファイルを再度 ing した後でも、git はファイルが異なると見なし、変更をコミットに入れます。git diff
空の変更を返すことに注意してください。
参考までに、これは汚れです:
これは差分です:
templates - Ansible un-vault とファイルのテンプレート化
リモート サーバーにアップロードしたいファイルがローカル マシンにあり、VCS で公開したくない機密情報が含まれています。また、動的に置換する必要があるテキストもあります (現時点では、Jinja2 プレースホルダー "{{}}" として)。
コピー モジュールを使用すると、ファイルをアップロードするとボールトが解除されますが、明らかにプレースホルダーは置き換えられます。
テンプレート モジュールを使用すると、ファイルのボールトが解除されないため、暗号化された形式でアップロードされます (暗号化によって難読化されているため、プレースホルダーも置き換えられません)。
リモートサーバーに (ansible を使用して) ファイルをテンプレート化し、vault を解除するにはどうすればよいですか?
vagrant - Ansible と Vagrant で「エラー! 予期しない例外: 16 進数以外の数字が見つかりました」をデバッグする方法は?
Vagrant を Ansible で実行しようとして問題に直面しています。Windows 7 のターミナル (git bash) で実行しようとしたときに発生するエラーはvagrant up
次のとおりです。vagrant provision
これは、Ansible-vault
ファイル.vault_pass
が 16 進数ではない (文字列であり、変更できない) ために発生します。同僚のコンピュータでは正常に動作しますが、私のコンピュータでは動作しません。
.vault_pass
ファイル内の問題のある文字列は次のようになりますDBAKWeG3KOr3jKjBDbAz
。
問題はPythonにあると思いますが、よくわかりませんし、修正方法もわかりません。
これを追加しようとする-vvv
と、結果は次のようになります。
ansible - ボールトでマルチパスワードを持つことは可能ですか
他のチームと共有する展開プロジェクトがあります。Vault でシークレットを暗号化しました。本番ファイルをパスワードで暗号化し、ステージング ファイルを別のパスワードで暗号化して、他のチームが本番環境の秘密にアクセスできないようにしたいと考えています。
それは可能ですか?
私はそのようなことをしました。私の秘密 :
私の環境:
私のスクリプト:
そして、そのようにプレイブックを起動します。
しかし、2 つの異なるパスワードがあるため、これは機能しません (エラー! 復号化に失敗しました)。その方法を知っていますか?
ありがとう。
ブラジル、
エリック
ansible - パスワードとして秘密鍵を使用した ansible ボールト (eyaml に似ています)?
puppet から ansible への移行の一部。現在の puppet 設定は eyaml を使用しています:
Ansible には暗号化を実現する Vault がありますが、これまでの理解では、パスワードをプレーン テキストとしてファイルに保存する必要があります。
ansible Vault に eyaml と同様のキーの組み合わせを使用できますか?