在自定义modu中更改远程用户

2024-06-16 08:34:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想更改引擎盖下的远程用户名,例如,如果我的库存中有ansible_user: ansible,我想将其更改为ansible_user: ansible+cet。你知道吗

我在action插件中见过这样做的模块,比如: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中的连接用户的正确方法是什么?你知道吗


Tags: 模块插件类型taskcliactionnetworkansible