Chef 関連の Directory 構成を考える
概要
やりたいこと
- 1 台の PC で複数の Workstation を扱いたい
- chef-server と chef-solo を併用したい
- chef-solo から将来的に chef-server へ移行する際の面倒を避けたい
Directory 全体像
1
2
3
4
| .
|-- berkshelf
|-- site-cookbooks
|-- workstation
|
site-cookbooks
- 自作 cookbook は同 Directory 以下に作成する
- 各 chef-repo 以下には site-cookbooks を作成しない
workstations
- workstations directory 以下に組織毎に chef-repo 用 directory を作成する
- 組織は hosted chef の Organization と紐付けすることを想定
- chef-server/chef-solo どちらで利用するかに関係なく workstations directory 以下に作成していく
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| .
`-- workstations
|-- Organization_A
| |-- .chef
| |-- cookbooks
| |-- data_bags
| |-- environments
| :
| :
| `-- roles
|-- Organization_B
:
:
`-- Organization_Z
|-- .chef
|-- cookbooks
|-- data_bags
|-- environments
:
`-- roles
|
.chef/knife.rb
1
2
3
4
5
6
7
8
9
| log_level :info
log_location STDOUT
node_name 'r-ogata'
client_key 'r-ogata.cer'
validation_client_name 'tech-sales-validator'
validation_key 'tech-sales-validator.cer'
chef_server_url 'https://api.opscode.com/organizations/tech-sales'
knife[:editor] = '/usr/bin/vim'
cookbook_path ['cookbooks', '../../site-cookbooks']
|