0

我正在同时学习 Chef 和 berkshelf.com。Berkshelf 让学习 Chef 变得更加容易,我使用 vagrant VM 来测试我的食谱。

我能够很好地配置我的 Vagrant VM,但是在配置期间没有创建用户(来自刀数据包)和 sysadmin 组。

以下是我采取的步骤:

/opt/chefdk/bin/knife data bag create users
/opt/chefdk/bin/knife data bag create users foo

这是json:

{
  "id": "foo",
  "groups": [ "sysadmin" ]
}

这是我的 default.rb 配方:

include_recipe "users::sysadmins"

这是我的 Vagrantfile(我删除了我的私人信息并替换为 xxx):

VAGRANTFILE_API_VERSION = '2'

Vagrant.require_version '>= 1.5.0'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.hostname = 'chef-user-management-berkshelf'

  if Vagrant.has_plugin? 'vagrant-omnibus'
    config.omnibus.chef_version = 'latest'
  end

  config.vm.box = 'chef/centos-6.5'

  config.vm.network :private_network, type: 'dhcp'

  config.berkshelf.enabled = true

  config.vm.provision :chef_client do |chef|
    chef.validation_client_name = "xxxx"
    chef.chef_server_url = "xxx"
    chef.validation_key_path = "/my/path/to/the.pem"
    chef.json = {
      mysql: {
        server_root_password: 'rootpass',
        server_debian_password: 'debpass',
        server_repl_password: 'replpass'
      }
    }

    chef.run_list = [
      'recipe[user-management::default]'
    ]
  end
end

然后运行:

vagrant provision

我还验证了我的主厨服务器上的数据包,并将 vagrant 作为:chef_client 运行。运行成功有什么想法我可能会错过吗?

注意:我制作了 Chef用户说明书的包装说明书,以添加我自己的用户逻辑/配置。

4

1 回答 1

1

在评论中解决,只需要重新上传食谱。

于 2014-12-08T06:04:44.433 回答