問題タブ [databags]
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.
windows - Chef + Vagrant + 暗号化されたデータバッグ + Windows
Vagrant と Chef を使用して、暗号化されたデータ バッグをテストしようとしています。を使用して暗号化されたデータバッグを作成しました
knife solo data bag create test test_service --data-bag-path ../../data_bags/ --secret-file ~/.chef/encrypted_data_bag_secret
アイテムが作成されたことを確認しました。
Vagrant ファイルに data_bag と暗号化キー パスを追加しました
config.vm.provision :chef_solo do |chef|
chef.log_level = :debug
chef.data_bags_path = "../../data_bags"
chef.encrypted_data_bag_secret_key_path = '~/.chef/encrypted_data_bag_secret'
レシピの内容は
secret_key = Chef::EncryptedDataBagItem.load_secret("C:\\tmp\\vagrant-chef-3\\encrypted_data_bag_secret_key")
usr_creds = chef::EncryptedDataBagItem.load("test","test_service", secret_key)
Vagrant を実行すると、暗号化されたキーが読み込まれます
==> default: Running provisioner: chef_solo...
Uploading chef encrypted data bag secret key...
しかし、エラーをスローします
ArgumentError
シェフのリソースを宣言するときは、名前を指定する必要があります
Vagrantボックスで、Vagrantが2つのディレクトリを作成していることがわかります
C:\tmp\vagrant-chef-3\chef-solo-1\cookbooks
C:\tmp\vagrant-chef-3\chef-solo-2\data_bags
Vagrant ボックスの solo.rb 内にC:\tmp\vagrant-chef-3\solo.rb
は、クックブックと暗号化キーの設定がありますが、データ バッグの場所の設定はありません。
試行錯誤の結果、Chef はデータ バッグの場所を見つけられないようです。私はどこかで何かを逃していますか?
chef-solo - データ バッグ アイテムにはハッシュまたはマッシュ エラーが含まれている必要があります
シェフ ノードのプロビジョニング中に次のエラーが発生します。
データ バッグ名config.jsonが存在し、データ バッグ内に同じ名前の ID があることを確認しました。また、Vagrant ファイルでデータ バッグ パスが正しく設定されます。
config.json
JSON は有効です。
アップデート。 Chef クライアント 12.0.1 および 12.0.3 での問題。11.18.0 にダウングレードする場合は発生しません。
dynamic - Chef データバッグと動的変数の受け渡し
以下のコードを機能させる方法を見つけようとしています。さまざまな方法を試しましたが、chef-client の実行が 3 行目で中断します。
ただし、別のテストレシピでは、次の作業を正常に行うことができました。
私はChefにまったく慣れていません。誰かがこれを機能させる方法についてアドバイスしてもらえますか?
ruby - Chefコードで作成されたChefデータバッグアイテムの読み込み中にエラーが発生しました
この問題に関連して 2 つの質問があります。(解決済みの問題、以下に解決策を示します)
javaという名前のデータバッグがあります。以下に示すように、各ノードのホスト名に固有のデータバッグアイテムが含まれています
Chefコードを使用してデータバッグを作成できます
しかし、レシピの実行中に、jdk_version に値を代入しているコードで以下のエラーが発生します
質問 1: 上記のデータ バッグ項目の形式から、値を取得する方法を教えてください。
以下のようにデータ バッグを作成すると、jdk_version を取得できます。
上記の形式でデータバッグを作成するコード
質問 2: 以前のデータ バッグ アイテムの実装で間違っていることは何ですか?
解決した問題:: 以下の形式でデータ バッグ アイテムを作成できるようになり、データを正常に取得できるようになりました
データ バッグ アイテム ハッシュの作成中に、jdk_version とその値に "[]" の代わりに "{}" 中かっこを追加しました。
作業コードを以下に示します。
templates - テンプレートシェフに2つのデータバッグ変数を渡す方法
2 つのデータ バッグを変数としてテンプレートに渡そうとしていますが、エラー メッセージが表示されます。テンプレートに2つのデータバッグを渡す方法を知っている人はいますか?
レシピ
テンプレート
ruby - Chef データバッグ参照で属性をリテラルと組み合わせる
ナイフ ec2 中に、データ バッグで参照したい ClientID 属性を指定していますが、バッグ名に追加したいだけなので、正確な ID ではありません。これは、正確な ID に対しては正常に機能します。
しかし、私はこのようなことをしようとしています(うまくいきません)
そのため、ClientID = abcd の場合、参照は「abcd_tenants」になります。データ バッグに個別の json 属性を渡さずにこれを実行できるソリューションはありますか?
haskell - リストを型にマップする
リスト ["a","b","c","c"] を haskell のセットに変換しようとしています: [("a",1),("b",1),( "c",2)]。私は地図を使おうとはしていません。私の関数は次のようになります。
私は何か間違ったことをしていますか、それともこれで何か不足していますか?
chef-infra - そのようなファイルまたはディレクトリはありません - ファイルが見つかりませんエラーシェフ
ここに私の料理本のコードがあります、
file
リソースが/etc/chef/encrypted_data_bag_secret
最初に作成され、利用可能になると思っていましChef::EncryptedDataBagItem.load_secret
たが、このクックブックを実行すると、次のエラー メッセージが表示され始めます。
ノードのブートストラップ中にこのクックブックを追加しているため、ブートストラップ中に秘密ファイルを提供する方法がわかりません。