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
尽管有匿名反对票,但这绝对是正确答案。
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
尽管有匿名反对票,但这绝对是正确答案。