我需要了解两个概念:roles
和environments
。我知道他们代表什么,但我不太清楚:
recipes
文件夹中有几个食谱。我应该在哪里定义角色?修改
目前,我正在使用此文件夹结构:
├───.delivery
│ └───build_cookbook
│ ├───data_bags
│ │ └───keys
│ ├───recipes
│ ├───secrets
│ └───test
│ └───...
├───.kitchen
│ ├───kitchen-vagrant
│ │ ├───kitchen-development-default-centos-72
│ │ │ └───...
│ │ └───kitchen-development-default-ubuntu-1604
│ │ └───...
│ └───logs
├───files
│ ├───elasticsearch
│ │ └───scripts
│ └───mongo
├───recipes
├───spec
│ └───unit
│ └───recipes
└───test
├───integration
│ └───data_bags
│ └───aws
└───smoke
└───default
我正在使用berkshelf
来管理包装菜谱依赖关系,并将我的“食谱”或“食谱”上传到我的厨师服务器。
为了使用环境,角色,我应该改变什么......
答案 0 :(得分:2)
角色和环境分别存储在roles
和environments
目录中。
基础架构上的所有代码和json数据都应存储在chef-repo中。如果您在工作站上安装了chef-dk(the Chef Development Kit) - 我强烈建议 - 您可以使用chef generate repo
命令生成这样的chef-repo。这样一个repo的结构看起来像这样,即使不使用chef generate
(README
文件是可选的:)你也应该遵循它:)):
test
├── chefignore
├── cookbooks
│ ├── example
│ │ ├── attributes
│ │ │ └── default.rb
│ │ ├── metadata.rb
│ │ ├── README.md
│ │ └── recipes
│ │ └── default.rb
│ └── README.md
├── data_bags
│ ├── example
│ │ └── example_item.json
│ └── README.md
├── environments
│ ├── example.json
│ └── README.md
├── LICENSE
├── README.md
└── roles
├── example.json
└── README.md
然后,您可以使用knife upload
从这些目录(文件或整个文件夹)上传任何内容。