2016-09-23 25 views
0

Test-Kitchen v1.5.0、Vagrant v1.8.1の環境設定があります。 chef vaultを使用してdata_bags_path/passwords/pilot.jsonファイルの暗号化されたパスワードを解読する方法があります。テストキッチン、ベジタリアン、シェフゼロプロビジョニングのChef Vault

私はここで解決策を使用しています。https://github.com/chef/chef-vault/issues/58daxgamesはページの最後に向かっています。

マイ.kitchen.yml

--- 
driver: 
    name: vagrant 

provisioner: 
    name: chef_zero 
    require_chef_omnibus: 12.14.77 
    roles_path: ../../roles 
    environments_path: ../../environments 
    data_bags_path: ../../data_bags 
    client_rb: 
    environment: lgrid2-dev 
    node_name: "ltylapp400a" 
    client_key: "/etc/chef/ltylapp400a.pem" 

platforms: 
    - name: centos-6.8 
    driver: 
    synced_folders: 
     - ["/Users/212466756/.chef", "/etc/chef", "disabled:false"] 

suites: 
    - name: ltylapp400a 
    run_list: 
     - role[lgrid-db] 
    attributes: 
     chef_client: 

シェフ・ボールトを扱う私のレシピからの抜粋:

case node["customer_conf"]["status"] 
when 'pilot' 
    passwords = ChefVault::Item.load('passwords', 'pilot') 
when 'production' 
    passwords = ChefVault::Item.load('passwords', node[:hostname][1..3]) 
end 

関連data_bagsのための私のディレクトリ構造:

data_bags 
    --passwords 
    --pilot.json 
    --pilot_keys.json 

私が得ているエラーは、私のclient.pemが、 /etc/chef/ltylapp400a.pemでそのデータバックの内容を解読することはできません。シェフは私がナイフボールをリフレッシュすることをお勧めします、私は私のローカルマシン上の私のシェフサーバーに接続していないので、これを実行すると接続するシェフサーバーを持たないというエラーが表示されます。私の質問は、ぼかしがdata_bagを解読できるように、pilot_keys.jsonに生成された新しい鍵をどのように追加することができるかです。以下

より詳細な答えが、私はまだシェフがやや新しい、テスト・キッチンなどしています優れています...

答えて

0

私はこの作業を取得することができたが、私の結果と結論しています。上記のように、私はシェフサーバーに接続されていないため、ダメージを受けた新しい鍵をpilot_key.jsonファイルに追加することができず、ナイフボールトの更新/削除を実行できなかったため、data_bagを解読できませんでした。更新。私がしなければならなかったのは、既にpilot.json data_bagにアクセスしていたサーバーからclient.pemキーを取得することでした。私は、近い将来には破壊されないので、私たちのユーティリティサーバキーを使用しました。

だから私のローカルPC上で、私は私のホームディレクトリの下.chef/ディレクトリを持って、私は、ユーティリティサーバからコピーにclient.pemキーを持っていると私はを/ tmp /キッチンでこれを同期/ましたテストキッチン環境で/etc/chefディレクトリとして機能します。 utilityServerキーはすでにパスワード/それは次回の時に罰金を駆け抜けたパイロット data_bagをdecrpytすることができたので

{ 
"id": "pilot_keys", 
"admins": [ 
    "utilityServer" 
], 
"clients": [ 
    "webserver", 
    "database" 
], 
"search_query":"*:*" 
"utilityServer":"key", 
"webserver":"key", 
"database": "key" 
} 

--- 
driver: 
    name: vagrant 

provisioner: 
    name: chef_zero 
    require_chef_omnibus: 12.14.77 
    roles_path: ../../roles 
    environments_path: ../../environments 
    data_bags_path: ../../data_bags 
    client_rb: 
    node_name: "utilityServer" 
    client_key: "/tmp/kitchen/client.pem"  #The Chef::Vault needs a client.pem file to authenticate back to the data_bag to decrypt it, this needs to be stored at /tmp/kitchen/client.pem 
    environment: dev 
    no_proxy: 10.0.2.2 

platforms: 
    - name: centos-6.8 
    driver: 
    synced_folders: 
    - ["~/.chef","/tmp/kitchen/","disabled:false"] # Allows the vagrant box to have access to your .chef directory in your home directory. This is where you will store the client.pem for authentication. 

suites: 
    - name: lzzzdbx400a 
    run_list: 
     - role[lgrid-db] 
attributes: 

data_bags /パスワード/ pilot_key.jsonは次のようになります私は台所を収束させた。

0

以前はKitchen and chef-vaultで苦労していましたが、私はsynced_foldersメソッドを使ってキーにアクセスしました。このトピックに再訪私は別の解決策を見つけました。

キッチンサポート ちょうどあなたの台所の実行が(おそらくテスト/統合/ data_bagsに) を参照data_bagsフォルダに平文 データ袋を入れて、キッチンでこの作業を行います。次に、chef_vault_itemを使用して を検索すると、そのダミーデータを使用してボールトコマンドが に戻ります。

参照:http://hedge-ops.com/chef-vault-tutorial/

関連する問題