Ansible fortios_config备份不起作用



我使用 Fortinet 进行防火墙自动化,但出现错误"读取运行配置时出错"。我已经关注了这个网站:https://github.com/ansible/ansible/issues/33392

但是找不到任何解决方案。请告诉我我做错了什么?

  • 版本:2.7.0
  • 蟒蛇版本:2.7.5
  • 防御:60E
  • 堡垒iOS版本: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_file '/etc/ansible/vars/FortiOS_Settings_vars.yml'

任务 [备份当前配置] 任务路径:/etc/ansible/FortiOS_Settings_test.yml:8 <192.168.1.99>为用户建立本地连接:根<192.168.1.99>执行/bin/sh -c 'echo ~root && sleep 0' <192.168.1.99> 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 <192.168.1.99> 看跌/root/.ansible/tmp/ansible-local-6154Uq5Dmw/tmpt6JukB TO/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/AnsiballZ_fortios_config.py <192.168.1.99> EXEC/bin/sh -c 'chmod u+x/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226//root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/AnsiballZ_fortios_config.py && sleep 0' <192.168.1.99> EXEC/bin/sh -c '/usr/bin/python/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/AnsiballZ_fortios_config.py && sleep 0' <192.168.1.99> EXEC/bin/sh -c 'rm -f -r/root/.ansible/tmp/ansible-tmp-1539674386.05-16470854685226/>/dev/null 2>&1 && sleep 0' 完整的回溯是: 警告:以下内容 回溯可能与实际故障无关。 文件 "/tmp/ansible_fortios_config_payload_b6IQmy/main.py",第 132 行,在 主要 f.load_config(path=module.params['filter']( File "/usr/lib/python2.7/site-packages/pyFG/fortios.py",第 212 行,在 load_config config_text = self.execute_command(command( 文件 "/usr/lib/python2.7/site-packages/pyFG/fortios.py",第 154 行,在 execute_command output = output + self._read_wrapper(o( 文件 "/usr/lib/python2.7/site-packages/pyFG/fortios.py",第 120 行,在 _read_wrapper 返回 py23_compat.text_type(data(

致命: [192.168.1.99]:失败! => { "已更改":假, "调用":{ "module_args":{ "备份":真, "backup_filename":空, "backup_path": "/etc/ansible/forti_backup", "config_file":空, "file_mode":假, "过滤器": ", "主机": "192.168.1.99", "密码": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "src":空, "超时":60, "用户名": "管理员", "vdom":空 } }, "msg": "读取运行配置时出错" }

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

最新更新