1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

knife solo data bag

Last updated at Posted at 2015-04-14

目的

  • chefのdata bagを利用して、ID/PWといった秘匿すべき情報をrecipeに含める。
  • knife soloから暗号化されたdata bag を利用するため、knife-solo_data_bagを利用する。

実行

準備

  • knife solo で利用できるencrypted databagの設定が別途必要。gemをつかってknife-solo_data_bagをインストールする。
$ gem install knife-solo_data_bag
  • 秘密鍵の作成と設定を行う。
$ mkdir data_bag_key
$ cd data_bag_key
$ openssl rand -base64 512 > secret_key

## 作成したkeyは他の場所に保管しておくこと
.chef/knife.rb
cookbook_path    ["cookbooks", "site-cookbooks"]
node_path        "nodes"
role_path        "roles"
environment_path "environments"
data_bag_path    "data_bags"
encrypted_data_bag_secret "data_bag_key/secret_key" // これを追加

knife[:berkshelf_path] = "cookbooks"
  • knife soloのEDITORを設定する。
$ export EDITOR=emacs # 適当なEDITORを指定しておく

data bag の作成

  • data bagの編集を開始。今回は"passwords"の"wordpress"を作成。編集時は平文だが、保存したファイルにはencryptedなデータが保存される。生成されるdata bagファイルは直接編集できないことに注意。更新もknife soloからとなる。
# 下記コマンドの実行で指定のEDITORがOpen

$ knife solo data bag create passwords wordpress # 作成

$ knife solo data bag edit passwords wordpress # 編集の場合こちら

wordpress.json_opened_by_EDITOR
{
  "id": "wordpress",
  "user": "your name",
  "password": "your password"
}

data bagの利用

  • 以下のようにrecipesなどから定義したdata bagを利用する(1行目で取り出し→その後は利用例)。
ex)attribute/default.rb
wordpress = Chef::EncryptedDataBagItem.load("passwords", "wordpress")

override['wordpress']['db']['name'] = "wordpress"
override['wordpress']['db']['user'] = wordpress['user']
override['wordpress']['db']['pass'] = wordpress['password']
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?