Ansible fortios_配置备份不工作

Ansible fortios_配置备份不工作,ansible,firewall,Ansible,Firewall,我使用Fortinet实现防火墙自动化,但出现错误“读取运行配置时出错”。我已经关注了这个网站: 但没有找到任何解决办法。请告诉我我做错了什么 Ansible版本:2.7.0 Python版本:2.7.5 Fortinet:60E FortiOS版本:6.0.2 以下是我正在尝试的: FortiOS.yml剧本: --- - name: FortiOS Firewall Settings hosts: fortiFW connection: local vars_files:

我使用Fortinet实现防火墙自动化,但出现错误“读取运行配置时出错”。我已经关注了这个网站:

但没有找到任何解决办法。请告诉我我做错了什么

  • Ansible版本:2.7.0
  • Python版本:2.7.5
  • Fortinet:60E
  • FortiOS版本:6.0.2
以下是我正在尝试的: FortiOS.yml剧本:

---
- name: FortiOS Firewall Settings
  hosts: fortiFW
  connection: local
  vars_files:
  - /etc/ansible/vars/FortiOS_Settings_vars.yml
  tasks:
    - name: Backup current config
      fortios_config:
        host: 192.168.1.99
        username: admin
        password: Password@123
        backup: yes
        backup_path: /etc/ansible/forti_backup
以下是我得到的错误信息:

确定:[192.168.1.99]元:运行处理程序读取vars\u文件 “/etc/ansible/vars/FortiOS_Settings_vars.yml”

任务[备份当前配置] ****************************************************************************************************************************************************************************************************************任务路径:/etc/ansible/FortiOS\u Settings\u test.yml:8 为用户建立本地连接:root EXEC/bin/sh -c'echo~root&&sleep 0'EXEC/bin/sh-c'(umask 77&&mkdir-p)
echo
/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226
“&echo ansible-tmp-1539674386.05-16470854685226=“
echo
/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226&&
使用模块文件休眠0
/usr/lib/python2.7/site-packages/ansible/modules/network/fortios/fortios_config.py
放
/root/.ansible/tmp/ansible-local-6154Uq5Dmw/tmpt6JukB到
/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/AnsiballZ\u fortios\u config.py
EXEC/bin/sh-c'chmod u+x
/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/
/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/AnsiballZ\u fortios\u config.py
&&睡眠0'EXEC/bin/sh-c'/usr/bin/python
/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/AnsiballZ\u fortios\u config.py
&&睡眠0'EXEC/bin/sh-c'rm-f-r
/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/>
/dev/null 2>&1&&sleep 0'完整回溯是:警告:如下所示
回溯可能与实际故障无关。文件
“/tmp/ansible\u fortios\u config\u payload\u b6IQmy/main.py”,第132行,在
主要的
f、 加载_config(path=module.params['filter'])文件“/usr/lib/python2.7/site packages/pyFG/fortios.py”,第212行,在
加载配置
config_text=self.execute_命令(command)文件“/usr/lib/python2.7/site packages/pyFG/fortios.py”,第154行,在
执行命令
output=output+self.\u read\u wrapper(o)文件“/usr/lib/python2.7/site packages/pyFG/fortios.py”,第120行,在
_阅读包装
返回py23兼容文本类型(数据)

致命:[192.168.1.99]:失败!=>{ “更改”:错误, “调用”:{ “模块参数”:{ “备份”:正确, “备份文件名”:null, “备份路径”:“/etc/ansible/forti\u备份”, “配置文件”:空, “文件模式”:false, “过滤器”:“, “主机”:“192.168.1.99”, “密码”:“没有日志参数中指定的值”, “src”:空, “超时”:60, “用户名”:“管理员”, “vdom”:空 } }, “msg”:“读取运行配置时出错”}


在使用此模块时,我遇到了相同的问题。我查看了模块的源代码,发现当filter设置为“->空字符串时会发生此错误。您可以在将过滤器更改为“防火墙地址”之类的内容时获得有关该设备的信息。但是,您只能从中获取选项,就像您在设备的CLI上键入“show firewall address”一样。 我目前正在为FortiGate自动化开发一个使用Ansible的解决方案,但看起来不太好。例如,FortiGates还不支持Netconf,因此您不能使用Netconf向设备发送命令。 因此,您没有做错任何事情,但是模块要么没有优化,要么我猜整个配置太大,模块无法读取,因此您必须使用过滤器选项来缩小它