Chef infra 厨师长环境概念

Chef infra 厨师长环境概念,chef-infra,Chef Infra,我需要了解两个概念:角色和环境。我知道他们代表什么,但我不太明白: 我应该在哪里设置它们?在我的工作站上,然后我需要上传它们?或者我必须在我的厨师服务器上定义它们 我的recipes文件夹中有几个食谱。我应该在哪里定义角色 编辑 目前,我正在使用此文件夹结构: ├───.delivery │ └───build_cookbook │ ├───data_bags │ │ └───keys │ ├───recipes │ ├───secre

我需要了解两个概念:
角色
环境
。我知道他们代表什么,但我不太明白:

  • 我应该在哪里设置它们?在我的工作站上,然后我需要上传它们?或者我必须在我的厨师服务器上定义它们
  • 我的
    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
我正在使用
berkself
来管理包cookbook依赖项,并将我的“cookbook”或“recipe”上传到我的chef服务器


为了使用环境,我应该更改什么…

角色和环境分别存储在
角色
环境
目录中

基础设施上的所有代码和json数据都应该存储在chef repo中。如果您在您的工作站上安装了chef dk()(我强烈建议),您可以使用
chef generate repo
命令生成这样的chef repo。这种回购协议的结构如下所示,即使不使用
chef generate
README
文件是可选的:):


然后,你可以使用
knife upload

上传这些目录(文件或整个文件夹)中的任何内容。你能看看我编辑的帖子吗?我正在使用
berks
。为了适应我目前的项目结构,你能给我一些建议吗?请记住,我需要使用环境和角色。我是否应该在当前项目结构中添加一个
角色
和一个
环境
文件夹。我应该重新创建一个新的项目结构吗?
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