我目前在通过 SSH 堡垒主机运行 Ansible F5 剧本以配置 F5 设备时遇到问题,不确定现阶段问题可能出在哪里。
BIGSUDS,SUDS,F5-SDK全部通过pip安装。
我的剧本 --- f5play.yml ----
---
- hosts: f5_devices
gather_facts: false
connection: local
tasks:
- name: f5 test
bigip_facts:
server: "{{ inventory_hostname }}"
user: "{{ ansible_user }}"
password: "{{ ansible_ssh_pass }}"
include: "interface"
validate_certs: false
delegate_to: localhost
register: out
- debug: msg= "{{ out }}"
我有一个"group_vars"目录,其中包含一个"f5_devices"目录,其中包含我的vault.yml和vars.yml
vars.yml 包含我的额外代理信息,在跳转到 f5 之前跳过中间 SSH 主机,在访问思科设备之前,它已成功用于此设置。
库存文件 = ansible_hosts
[f5_devices]
F5-LTM1 ansible_user=admin
--vars.yml--
ansible_ssh_pass: "{{ vault_ansible_ssh_pass }}"
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -v bastion1" -o
StrictHostKeyChecking=no'
Ansible-playbook -i ansible_hosts f5play.yml --ask-vault-pass -vvv
更新 - 添加了"delegate_to:本地主机" 现在,仍然是这个错误
"session": false,
"state": "present",
"user": "admin",
"validate_certs": false
}
},
"msg": "received exception: <urlopen error [Errno -2] Name or service
not known>ntraceback: Traceback (most recent call last):n File
"/tmp/ansible_cdaERk/ansible_module_bigip_facts.py", line 1664, in mainn
saved_active_folder = f5.get_active_folder()n File
"/tmp/ansible_cdaERk/ansible_module_bigip_facts.py", line 148, in
get_active_foldern return self.api.System.Session.get_active_folder()n
File "/home/mike/Proj/ansible/lib/python2.7/site-packages/bigsuds.py",
line 360, in __getattr__n client = self._client_creator('%s.%s' %
(self._name, attr))n File "/home/mike/Proj/ansible/lib/python2.7/site-
packages/bigsuds.py", line 170, in _create_clientn raise
ConnectionError(str(e))nConnectionError: <urlopen error [Errno -2] Name or
service not known>n"
}
我忘了补充,这是在虚拟环境中运行的(虚拟环境(
任何帮助将不胜感激
我猜,你应该:
- 删除
connection: local
- 删除
f5_devices
组的 SSH 和代理设置 - 将
bastion1
主机添加到您的清单中 - 然后
delegate_to: bastion1
这样,Ansible 将连接到您的堡垒主机,并从那里针对您的 f5 设备执行bigip_facts
模块。