首页 > 解决方案 > 有没有办法使用 rspec-serverspec 在部署期间测试是否安装了特定版本的 java 或 tomcat?

问题描述

我有一个使用 puppet 构建的环境。我打算编写一些 rspec-ruby 脚本,一旦 puppet 构建完成就可以执行该脚本,以测试是否创建了所有目录、包、用户和角色。

我想要的是使用 rspec 测试在 puppet 构建期间是否安装了特定版本的 Java 和 Tomcat(例如 tomcat:9.0.17)。

到目前为止,我所做的是通过在目录名称中包含它们的版本号来测试目录是否存在于 tomcat 或 java 中,如下所示:

describe file('/opt/tomcat/9.0.17') do
  it { should be_directory }
end

除了这个还有别的办法吗?或者像我们测试包安装的方式?

标签: rubytomcatrspecserverspec

解决方案


在 Stack Overflow 上有关于如何检查这些应用程序版本的相关问题:

但是您可能遇到的问题是,要让 Serverspec 运行 Java 命令(两者都需要),您可能需要已经知道 Java 命令的路径,这取决于 Java 和/或 Tomcat 的版本。

因此,正如您已经在做的那样,使用目录很可能是最简单的解决方案。

(这也是我所做的,例如在这个项目中


推荐阅读