我正在为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中的连接用户的正确方法是什么?