如何创建模块ansible模块或插件以动态生成要推送的文件

时间:2019-05-22 07:52:00

标签: ansible ansible-template

我正在使用ansible在所有服务器中部署sudoers文件,sudoers权限存储在中央存储库中,并通过本地安装在控制节点上的python库动态生成。

我尝试在控制节点上的libss文件夹上创建一个python脚本。但是现在不知道如何将下面代码的变量a中生成的文件推送到远程主机到/ etc /中。 sudoers。

我认为创建模块或插件可以解决问题,但实际上不知道如何将下面的代码与ansible模块或插件集成。

from sudo_manager.objects import Host
import sudo_manager
h = Host.get_host('hostname')
a = sudo_manager.render_sudoers(h, 'sudoers.j2')

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

鉴于文件 sudoers.j2 是Jinja2模板,最好的选择是使用template模块。

- hosts: remote_hosts
  tasks:
    - template:
        src: sudoers.j2
        dest: /etc/sudoers

Ansible可能对escalate privilages使用sudo。注意不要将自己锁在外面。