使用 Ansible 通过 SSH 隧道配置 F5



我目前在通过 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模块。

最新更新