gpt4 book ai didi

chef-infra - 如何使用 Serverspec 测试其他用户安装的实用程序?

转载 作者:行者123 更新时间:2023-12-02 01:24:41 25 4
gpt4 key购买 nike

我的要求是我需要运行安装在其他用户中的实用程序,我必须检查从该 session 返回的输出并验证它。示例:

  • 我以 srijava 用户身份安装了 java
  • 现在在 Serverspec 中,我编写了测试 Java 版本的命令(假设 java -version 仅在该用户中运行,而不是作为 root)。
  • 如果我使用 su srijava,那么我不会将输出返回到根 session ,并且测试失败。
  • 如果我在没有 su srijava 的情况下运行,那么我的实用程序将抛出错误用户不是 SriJava

使用 su 编写代码:

describe command('su srijava ; cd /app/java; ./java --version') do
its(:stdout) { should contain('1.7') }
end

没有 su 的代码:

describe command('cd /app/java; ./java --version') do
its(:stdout) { should contain('1.7') }
end

最佳答案

describe command("su -c '/app/java/java --version' srijava") do
its(:stdout) { should contain('1.7') }
end

仅供引用,您使用的是 RSpec 2,并且很快将成为匹配器的过时 Serverspec 语法。考虑通过以下方式对其进行 future 验证:

describe command("su -c '/app/java/java --version' srijava") do
its(:stdout) { is_expected.to match(/1\.7/) }
end

关于chef-infra - 如何使用 Serverspec 测试其他用户安装的实用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com