【问题标题】:Beginner confused by berkshelf and chef初学者被berkshelf和厨师弄糊涂了
【发布时间】:2016-11-19 17:09:30
【问题描述】:

我是厨师和 berkshelf 的新手,我很困惑,我曾尝试在开放式问题中寻求帮助,但没有运气,请帮助我..

  1. berkshelf 是否会在解决依赖关系的同时安装我的配方?这意味着食谱有 MySQL,所以在 vagrant up 之后会安装 MySQL 吗?
  2. 我应该在 vagrant root 中使用 vagrantfile 还是使用带有 berkshelf 的那个?
  3. 为什么berkshelf中的vagrantfile(即使没有recipes)总是有MySQL的条目:server_root/Debian/repl密码!!!)

谢谢

【问题讨论】:

    标签: chef-infra berkshelf


    【解决方案1】:

    Berkshelf 是一个食谱依赖管理器。

    假设你已经安装了chef development kit,首先生成一个cookbook:

    $ chef generate cookbook demo
    $ tree
    .
    └── demo
        ├── Berksfile
        ├── chefignore
        ├── metadata.rb
        ├── README.md
        ├── recipes
        │   └── default.rb
        ├── spec
        │   ├── spec_helper.rb
        │   └── unit
        │       └── recipes
        │           └── default_spec.rb
        └── test
            └── integration
                ├── default
                │   └── serverspec
                │       └── default_spec.rb
                └── helpers
                    └── serverspec
                        └── spec_helper.rb
    

    Berksfile 保存配置,其格式为documented on the website。食谱生成器创建一个默认设置,告诉 berkshelf 从 Chef 超市下载依赖项并使用元数据文件列出这些依赖项:

    source 'https://supermarket.chef.io'
    
    metadata
    

    所以让我们编辑 metadata.rb 文件,添加 mysql 作为依赖项

    name 'demo'
    maintainer 'The Authors'
    maintainer_email 'you@example.com'
    license 'all_rights'
    description 'Installs/Configures demo'
    long_description 'Installs/Configures demo'
    version '0.1.0'
    
    depends "mysql"
    

    所以现在如果您决定运行 berkshelf,它会自动为您解决食谱的依赖关系。

    $ berks vendor cookbooks
    Resolving cookbook dependencies...
    Fetching 'demo' from source at .
    Using demo (0.1.0) from source at .
    Using mysql (8.1.1)
    Vendoring demo (0.1.0) to cookbooks/demo
    Vendoring mysql (8.1.1) to cookbooks/mysql
    

    希望这能回答您的一些问题,但最后我可以建议您查看test kitchen 吗?食谱生成器还将其配置为使用 Vagrant 同时运行 Chef 和测试您的食谱:

    $ kitchen test default-ubuntu-1404
    

    做一个快乐的厨师!

    【讨论】:

    • 我们是一群完全失去了 10 名开发者的团队!!
    • @SJamro 不客气。我们是来帮忙的。如果它有助于回答您的问题,请考虑接受答案
    猜你喜欢
    • 2022-01-23
    • 2019-01-12
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 2014-08-14
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多