厨师环境概念

时间:2017-05-24 09:55:16

标签: chef

我需要了解两个概念:rolesenvironments。我知道他们代表什么,但我不太清楚:

  • 我应该在哪里设置它们?在我的工作站上然后我需要上传它们?或者我要在我的厨师服务器上定义它们?
  • 我在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来管理包装菜谱依赖关系,并将我的“食谱”或“食谱”上传到我的厨师服务器。

为了使用环境,角色,我应该改变什么......

1 个答案:

答案 0 :(得分:2)

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

基础架构上的所有代码和json数据都应存储在chef-repo中。如果您在工作站上安装了chef-dk(the Chef Development Kit) - 我强烈建议 - 您可以使用chef generate repo命令生成这样的chef-repo。这样一个repo的结构看起来像这样,即使不使用chef generateREADME文件是可选的:)你也应该遵循它:)):

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从这些目录(文件或整个文件夹)上传任何内容。