我无法缝制最简单的Ansible剧本,我可以在正确的方向上轻推。
下面是我的错误,我的配置以及我到达那里所采取的步骤列表
错误
ASK [TEST FMGR CONNECTION GET SYS STATUS] *********************************************************************************************************************************************************************************************
task path: /home/fortinet/downloads/FMG-Ansible-Testing/test_fmgr.yml:8The full traceback is:Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 146, in run res = self._execute() File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 601, in _execute self._connection = self._get_connection(variables=variables, templar=templar) File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", line 898, in _get_connection ansible_playbook_pid=to_text(os.getppid()) File "/usr/lib/python2.7/dist-packages/ansible/plugins/loader.py", line 573, in get obj = obj(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/ansible/plugins/connection/httpapi.py", line 202, in __init__ self.httpapi = httpapi_loader.get(self._network_os, self) File "/usr/lib/python2.7/dist-packages/ansible/plugins/loader.py", line 552, in get self._module_cache[path] = self._load_module_source(name, path) File "/usr/lib/python2.7/dist-packages/ansible/plugins/loader.py", line 530, in _load_module_source module = imp.load_source(to_native(full_name), to_native(path), module_file) File "/usr/lib/python2.7/dist-packages/ansible/plugins/httpapi/fortimanager.py", line 41, in <module> from ansible_collections.fortinet.fortimanager.plugins.module_utils.common import BASE_HEADERSImportError: No module named fortinet.fortimanager.plugins.module_utils.commonfatal: [192.168.0.120]: FAILED! => { "msg": "Unexpected failure during module execution.", "stdout": ""}
我的配置相对简单-一个剧本和一个只有一个主机的主机文件
我的配置
---
- name: FMGR CONNECTION GET SYS STATUS
hosts: FortiManager
connection: httpapi
gather_facts: False
tasks:
- name: TEST FMGR CONNECTION GET SYS STATUS
fmgr_query:
adom: "root"
object: "custom"
custom_endpoint: "/sys/status"
[FortiManager]
192.168.0.120 ansible_host=192.168.0.120
[fmgr_api:children]
FortiManager
#[fmgr_api:vars]
[all:vars]
ansible_network_os=fortimanager
ansible_user=admin
ansible_password=password
ansible_become=no
ansible_become_method=disable
ansible_httpapi_use_ssl=true
ansible_httpapi_validate_certs=false
ansible_httpapi_timeout=300
踩踏
我下载了最新的FortiManager plugin on Ansible Galaxy,解压缩了文件,然后将插件和module_utils复制到了正确的位置:
/usr/lib/python2.7/dist-packages/ansible/plugins/httpapi/
/usr/lib/python2.7/dist-packages/ansible/module_utils/network/fortimanager/
答案 0 :(得分:4)
运行此程序,然后重试。它以某种方式起作用。
ansible-galaxy collection install fortinet.fortios
ansible-galaxy collection install fortinet.fortimanager
输出
PLAY [FMGR CONNECTION GET SYS STATUS] **************************************************************************************************************************************************************************************************
TASK [TEST FMGR CONNECTION GET SYS STATUS] *********************************************************************************************************************************************************************************************
[WARNING]: Found internal 'results' key in module return, renamed to 'ansible_module_results'.
ok: [192.168.0.120]
PLAY RECAP *****************************************************************************************************************************************************************************************************************************
192.168.0.120 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
也注释了以下几行
#ansible_become=no
#ansible_become_method=disable