1

谁能告诉我如何为以下食谱代码编写chefspec测试?

  {'tomcat_exec_t' => '/apps/.*/bin(/.*)?',
  'tomcat_unit_file_t' => '/usr/lib/systemd/system/tomcat@.*.service',
  'tomcat_cache_t' => '/apps/.*/temp(/.*)?',
  'tomcat_cache_t' => '/apps/.*/work(/.*)?',
  'etc_t' => '/apps/.*/conf(/.*)?',
  'tomcat_log_t' => '/apps/.*/logs(/.*)?',
  'tomcat_var_run_t' => '/apps/.*/logs/tomcat.pid',
  'lib_t' => '/apps/.*/lib(/.*)?',
  'tomcat_var_lib_t' => '/apps/.*/webapps(/.*)?'}.each do |sc, f|
    selinux_policy_fcontext f do
      secontext sc
    end
  end

我已经尝试了一些类似下面的方法,但我想这会失败,因为执行是由 selinux_policy 食谱执行的。

expect(chef_run).to run_execute('selinux-fcontext-tomcat_exec_t-addormodify')
  end

这失败了,因为没有定义方法:

expect(chef_run).to create_selinux-fcontext('selinux-fcontext-tomcat_exec_t-addormodify').with(
      fspec: '/apps/.*/bin(/.*)?',
      secontext: 'fcontext'
    )

所以我不太确定还能做什么。

任何帮助将非常感激。

谢谢,

爱德华

4

1 回答 1

0

您可能需要自己编写,matchers具体取决于 selinux 食谱是否为您提供。检查库目录。

无论哪种情况,您都希望

expect(chef_run).to create_selinux_policy_fcontext('selinux-fcontext-tomcat_exec_t-addormodify').with(
  fspec: '/apps/.*/bin(/.*)?',
  secontext: 'fcontext'
end

我假设默认操作是create,否则您将替换create为适当的操作

于 2015-08-13T13:55:38.800 回答