运行简单Ansible playbook时出错

2024-05-20 02:03:35 发布

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

我无法通过接缝来获得最简单的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,解除了文件的保护,然后将插件和模块utils复制到正确的位置:

/usr/lib/python2.7/dist-packages/ansible/plugins/httpapi/
/usr/lib/python2.7/dist-packages/ansible/module_utils/network/fortimanager/

Tags: inpyselflibpackagesusrdistline
1条回答
网友
1楼 · 发布于 2024-05-20 02:03:35

运行此命令并重试。不知怎么的,它成功了

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

Online Fortinet documentation is wrong!

相关问题 更多 >