45205


[rtn_rbenv の recipe](https://github.com/rutan/itamae-plugin-recipe-rtn_rbenv)
を用いて itamae の cookbook/role を記述していました。

このとき、 rbenv でグローバルにインストールする ruby のバージョンは、次のように記述しました。

## もろもろの設定

### node/some-service.yml

[code]

    rtn_rbenv:
      user: ec2-user
      versions:
        "2.4.3":
          - bundler
      global: "2.4.3"
    
[/code]

### 実行時のコマンド

[code]

    bundle exec itamae ssh -h ホスト名 -y node/some-service.yml role/some-service.rb
    
[/code]

## 質問

今回、同じプロジェクトにいくつか他の service
のプロヴィジョニングの方法を記述しようとしています。(もろもろのプロヴィジョニングをまとめて記述するプロジェクトを書いている)

このとき、すべての異なる node.yml に対して、同じ rbenv の設定をコピーしていくのは、あまり dry ではないな、と思いました。

  * itamae で、たとえば `共通.yml` のような設定を記述して、その設定を他の個別の node.yml などから include するようなことはできますでしょうか。
  * もしくは、 `role/xxx-service.rb` で `include_recipe` する際に、デフォルトの設定値の設定などは行えますでしょうか。


CC BY-SA 4.0
2018-05-17T04:45:39.353
44034
2018-07-01T05:39:26.220
754
question
itamae
itamae の共通の node.yml の設定を記述したい


[kondate](https://github.com/sonots/kondate) にまさしくこのような機能があります。 kondate とは、
itamae に足りていないもろもろの機能を補って itamae を使えるようにするようなツールです。

kondate では、 node に与える情報を、 `properties/{environments, roles, nodes}`
というディレクトリがあり、この中でそれぞれ「環境ごと、ロールごと、ノード(サーバー)ごと」にノードの情報を記述できるようすです。この設定は「node >
role > environment」 の優先順位でマージされて、 recipe からは `node['フィールド名']` でアクセスできるようになります。


CC BY-SA 4.0
2018-07-01T05:39:26.220
45205
2018-07-01T05:39:26.220
754
44034
answer