在自定义模块中更改远程用户

时间:2018-06-02 07:23:10

标签: python ansible ansible-inventory

我正在为MikroTik RouterOS开发Ansible 2.5.2的自定义网络模块。

我想更改引擎盖下的远程用户名,例如如果在我的广告资源中我有ansible_user: ansible,我想将其更改为ansible_user: ansible+cet

我见过在动作插件中执行此操作的模块,例如:CFSworks/ansible-routeros。 但是,在具有network_cli连接类型的Ansible 2.5中,似乎不再是这种情况。当我将以下示例操作插件添加到plugins/action目录时,没有任何反应 - 我在调试控制台中看不到routeros action plugin is called

class ActionModule(_ActionModule):

    def run(self, tmp=None, task_vars=None):
        display.debug('routeros action plugin is called')
        result = super(ActionModule, self).run(task_vars=task_vars)
        return result

这是我的剧本:

- hosts: routeros
    gather_facts: no
    connection: network_cli
    tasks:
      - ...

这是我的库存:

routeros:
  hosts:
    example:
      ansible_host: 192.168.88.1
      ansible_user: ansible
      # ansible_user: ansible+cet <-- i want to add '+cet' on the fly
      ansible_ssh_pass: ansible
      ansible_network_os: routeros

使用network_cli连接类型替换Ansible 2.5中的连接用户的正确方法是什么?

0 个答案:

没有答案