serverspec 在 Rakefile 中使用环境变量

serverspec using environment variables in Rakefile

Serverspec 用于检查多个服务器。因此使用推荐的角色结构:

|-- Rakefile |-- spec |-- app | -- ruby_spec.rb |-- base | -- users_and_groups_spec.rb |-- db | -- mysql_spec.rb |-- proxy | -- nginx_spec.rb |-- spec_helper.rb

为了读取数据和结构,我使用了 yaml 文件。

serverspec website 上的 Raketask 里面的 Rakefile 中如下:
ENV['TARGET_HOST'] = host

为什么要将主机设置为环境变量?一个本地的还不够吗?

默认 spec helper 使用它作为 net-ssh gem 的目标主机。您可以重构 spec_helper 中的主机定位代码,如果您愿意,甚至可以不使用它,然后只需使用 host_inventory 作为主机名。

注意以下几点:

https://github.com/mizzy/serverspec/blob/master/lib/serverspec/setup.rb#L276 https://github.com/mizzy/serverspec/blob/master/lib/serverspec/setup.rb#L292

尽管有匿名反对票,但这绝对是正确答案。