我不确定这是否是正确的方法,但我想要做的是缩短 Packer 构建图像的时间。所需的步骤之一是复制大约 10 GB 的数据并将其作为映像的一部分。
目前,我正在使用 shell 配置程序将其通过 SFTP 传输到映像中。这需要很长时间。相反,我希望这些数据已经存在于 EBS 卷中,可以在构建时附加。由于它将作为块设备安装在 Amazon 自己的网络中,因此传输速度将比 SFTP 快得多。
我尝试在 Packer 中寻找这样的方法,但没有太多。我将尝试看看是否可以使用构建器ami_block_device_mappings
中的可选参数amazon-ebs
来附加 EBS 卷。
如果有我不知道的更好方法,请告诉我。
我目前正在使用Vagrant和Chef-solo,它一直很好用.我想将流浪魔法延伸到厨师服务器.我已经将Vagrantfile中的配置器从chef-solo切换到chef-client,并添加了必要的代码:
chef.chef_server_url = "https://chef.mydomain.com"
chef.validation_client_name = "chef-validator"
chef.validation_key_path = "/Users/inigo/.chef/chef-validator.pem"
Run Code Online (Sandbox Code Playgroud)
我的问题是如何自动创建客户端,所以我不必发出刀命令来创建客户端和相应的client.pem密钥.然后,当我完成它时,我必须发出刀命令来删除客户端.
我希望这是Vagrant可以做的事情,而且我需要的是Vagrantfile的一些附加代码,然后"vagrant up""vagrant destroy"命令将处理这一切.不幸的是,我的谷歌搜索没有发现任何东西.我看过有关如何设置厨师服务器和流浪汉的帖子,但我对厨师客户感兴趣.也许是流浪汉或者berkshelf的插件?
还有一个问题..现在,当我生成client.pem密钥时,我将它放在共享目录中:/ vagrant,以便VM可以访问它.有没有更好的办法?
谢谢!
这是输出vagrant up
:
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'Berkshelf-CentOS-6.3-x86_64-minimal'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[Berkshelf] Uploading cookbooks to 'https://chef.mydomain.com:443/'
[Berkshelf] Using testcookbook (0.0.1)
[Berkshelf] Uploading testcookbook (0.0.1) to: 'https://chef.mydomain.com:443/'
[default] Creating shared folders metadata...
[default] Clearing any …
Run Code Online (Sandbox Code Playgroud) 我有厨师11.4.4安装了ruby 1.9.1.我想安装berkshelf,但它需要ruby 1.9.2或更高版本.我用rvm安装了ruby 2.0.0-p247(最新的稳定版).当我运行刀具命令时,我得到......
# knife help
/opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find chef (>= 0) amongst [rake-10.1.0, rvm-1.11.3.8] (Gem::LoadError)
from /opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems.rb:1231:in `gem'
from /usr/bin/knife:22:in `<main>'
Run Code Online (Sandbox Code Playgroud)
如果我将它切换回系统版本,这是与厨师嵌入的ruby的版本,它再次工作.
# rvm use system
Now using system ruby.
# knife help
Usage: knife SUBCOMMAND (options)
.
.
.
Run Code Online (Sandbox Code Playgroud)
我已经搜索了将红宝石升级到2.0.0x的方法,但没有运气.我喜欢这么容易切换ruby版本的能力.如果厨师可以做同样的事情,但只是让它与最新的稳定甚至1.9.2版本的红宝石一起工作将会很棒.谢谢!