【发布时间】: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”定义了一个模块名,它创建了两个文件。当我手动执行这些命令时它可以工作。