如何使用Serverspec编写本地testing?

到目前为止Serverspec正在努力工作。 我正在testing我的服务器,一切看起来不错。

比方说,我想通过从本地工作站运行几个LDAP命令来testing我的LDAP集群,比如说ldapsearch 。 我在工作站而不是任何服务器上执行此操作的原因是为了确保所有工作都可以远程执行,包括负载平衡。

什么是约定? 这是如何完成的? 我需要对Rakefile做什么修改? 我已经通过serverspec-init生成了一个Rakefile 。 这个地方的任何例子?

据我所知, serverspec是一个工具来检查服务器的configuration状态的正确性,并确保它处于所需的状态。 这是通过login到服务器并执行检查给定configuration项/值并返回输出的命令来实现的。 所以,我有我的怀疑,如果serverspec是你想要做的正确的工具。

该网站的部分状态:

Serverspec通过在本地执行命令,通过SSH,通过WinRM,通过Docker API等来testing服务器的实际状态。

接近你要找的东西的唯一select似乎是使用command resourctypes来运行并检查你想要的一些命令的input。 http://serverspec.org/resource_types.html#command

命令

命令资源types。 它的(:stdout),它的(:stderr),它的(:exit_status)

您可以获取命令结果的stdout,stderr和退出状态,并可以使用RSpec支持的任何匹配器。

 describe command('ls -al /') do its(:stdout) { should match /bin/ } end describe command('ls /foo') do its(:stderr) { should match /No such file or directory/ } end describe command('ls /foo') do its(:exit_status) { should eq 0 } end 

你可以设置一个在loopback(127.0.0.1)而不是外部服务器上运行的命令。 它仍然会在本地ssh,但它会做你所需要的。