![在 Chef-solo 启动之前运行脚本?](https://linux22.com/image/567050/%E5%9C%A8%20Chef-solo%20%E5%90%AF%E5%8A%A8%E4%B9%8B%E5%89%8D%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC%EF%BC%9F.png)
我正在使用 Vagrant 和 Chef-solo 创建开发环境 VM。问题是,Debian Chef 软件包需要特定版本的 RubyGems 才能运行,但我希望 VM 具有更新的从源安装的 RubyGems 版本。
有没有办法在 Vagrant 中运行一些脚本/命令前Chef-solo 被调用并执行其操作?这样,我可以在 Chef-solo 运行之前和之后在 rubygems 版本之间切换符号链接。
答案1
什么是“debian chef 包”?是 Opscode 的 apt 存储库中的包吗?还是你使用的 basebox 中内置了某些东西?
您可能可以使用 vagrant 中的 shell 脚本配置程序来执行此操作。但是,我会构建自己的基础框。“Veewee”是一款出色的工具,可以非常快速地完成此操作(相对而言,大约需要 15-20 分钟)。
答案2
最简单的方法是使用镜像中安装的默认 Ruby 来运行 chef,并使用 chef 安装 Ruby 和 RubyGems,可能由 rbenv 或虚拟机