如何在我的python模块中包含全局SSH连接,该连接包含在ansible任务中?

时间:2019-03-01 12:31:41

标签: python ssh ansible

有没有办法在剧本执行的整个生命周期中仅将一个SSH连接保持到主机,并通过包含的python脚本达到该连接?

我的问题: -如果我使用ansible建立与主机的ssh连接,我不知道如何从包含SSH连接通道的python模块读取和写入的python模块中到达。 -如果我使用随附的python脚本创建新的paramiko SSHClinet对象,则该对象将在python脚本完成后(一项任务完成后)丢失,并且我始终需要一次又一次地建立连接 消耗大量时间。(用于建立连接和登录)

我有什么 示例:

Ansible “- -主机:localhost   vars:     主持人:“ 10.100.100.100”     USERNAME:“用户名”     密码:“密码”

- name: setup
  setup_env:
    NE: "{{HOST}}"
    USERNAME: "{{USERNAME}}"
    PASSWD: "{{PASSWORD}}"

- name: PYTHON SSH and Logic
  PYTHON:
    input: 'input for python'
  register: python_result

- name: PYTHON SSH and Logic
  PYTHON:
    input: 'input2 for python'
  register: python_result

... ...我有很多不同的任务 ...     -名称:PYTHON SSH和逻辑       蟒蛇:         输入:“用于python的inputx”       注册:python_result

Python -PYTHON.py 我有一个PYTHON.py,我在其中使用paramiko创建SSHClient对象并通过SSH连接到特定的主机(在python模块中进行了硬编码-无论如何在ansible主机中都是相同的),并执行一些逻辑,包括登录之类的ssh操作并根据输入通过SSHClient写入SSH通道。

问题:每次重新连接并登录时,都会浪费大量时间。

我如何才能通过所有可访问的剧本建立一个SSH连接,并在python模块中使用该连接以节省时间?有可能吗?

非常感谢您!

0 个答案:

没有答案