【问题标题】:Using Ansible to configure F5 through SSH Tunnel使用 Ansible 通过 SSH 隧道配置 F5
【发布时间】:2018-01-18 00:42:48
【问题描述】:

我目前在通过 SSH Bastion 主机运行 Ansible F5 playbook 以配置 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 主机,之前已成功用于此设置以到达 Cisco 设备。


库存文件 = 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: localhost” 现在,还是这个错误

            "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 main\n    
saved_active_folder = f5.get_active_folder()\n  File 
\"/tmp/ansible_cdaERk/ansible_module_bigip_facts.py\", line 148, in 
get_active_folder\n    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_client\n    raise 
ConnectionError(str(e))\nConnectionError: <urlopen error [Errno -2] Name or 
service not known>\n"
}

忘了补充,这是在虚拟环境中运行的(virtualenv ansible)

任何帮助都会“非常”感激

【问题讨论】:

    标签: python ansible ssh-tunnel f5


    【解决方案1】:

    我猜,你应该:

    • 删除connection: local
    • 删除 f5_devices 组的 ssh 和代理设置
    • bastion1 主机添加到您的库存中
    • 然后delegate_to: bastion1

    这样 Ansible 将连接到您的堡垒主机并从那里针对您的 f5 设备执行 bigip_facts 模块。

    【讨论】:

    • 我注释掉了 ssh_common_args,删除了连接:本地并委托给 Bastion1,现在有一个新错误致命:[F5-LTM1]:无法访问! => { "changed": false, "msg": "通过 ssh 连接主机失败:mux_client_request_session: 乱序回复:我的 id 1 他们的 2\r\n", "unreachable": true }
    • 我想知道是否有人以前尝试过,或者是否有可能,因为您需要通过中间主机进行 SSH 才能使用 F5 iControl API 进行通信??
    • 我刚刚看到一些关于在跳转主机上安装 bigsuds 的信息,这很遗憾,因为我想避免接触 jumphost 软件。
    猜你喜欢
    • 2013-11-17
    • 2020-02-09
    • 2014-12-12
    • 2016-09-09
    • 2014-09-03
    • 2013-05-26
    • 1970-01-01
    • 2015-06-15
    • 2018-09-02
    相关资源
    最近更新 更多