【问题标题】:using semodule with ansible将 semodule 与 ansible 一起使用
【发布时间】:2021-10-08 13:04:32
【问题描述】:

我正在尝试根据以下命令安装带有 ansible 的 selinux 模块。

ausearch -c 'software' --raw | audit2allow -M my-software
semodule -X 300 -i my-software.pp

所以下面的任务

- name: "apply rule my-centreonlinux"
  shell: ausearch -c 'centreon_linux_' --raw | audit2allow -M my-centreonlinux ; semodule -X 300 -i my-centreonlinux.pp
  when: '"my-software" not in semodule_list.stdout'
  args:
    chdir: "/tmp/"

问题在于 ansible 似乎没有创建或保留第一个命令生成的两个文件(my-software.pp 和 my-software.te)。部署后,即使指定了chdir,也找不到文件。

  stderr: |-
    libsemanage.map_file: Unable to open my-software.pp
     (No such file or directory).
    libsemanage.semanage_direct_install_file: Unable to read file my-software.pp
     (No such file or directory).
    semodule:  Failed on my-software.pp!

据我所知,没有其他方法可以在不依赖 ansible Galaxy 的情况下实现 selinux 模块。而且我无法复制/粘贴手动生成的 .pp 文件。

如何确保 ansible 创建/不删除这些文件?

提前感谢您提供的任何帮助。

【问题讨论】:

  • 你不是在audit2allow 模块中缺少.pp 吗? audit2allow -M my-centreonlinux -> audit2allow -M my-centreonlinux.pp?
  • 不,“-m”定义了一个模块名,它创建了两个文件。当我手动执行这些命令时它可以工作。

标签: ansible selinux


【解决方案1】:

nvm 修复了它

解决方案是将 .te 文件的内容复制到可读文档中(.pp 文件是已编译的模块,这就是它不可读的原因),将其复制到主机上并在安装策略之前在本地编译。

非常感谢 Michael Trojanek 和他的有用教程。

https://relativkreativ.at/articles/how-to-compile-a-selinux-policy-package

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2016-03-03
    • 2017-05-13
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多