From 187c1e3804a06b0bf2bc0ff10a390f57fde1ea0c Mon Sep 17 00:00:00 2001
From: jiangweidong <weidong.jiang@fit2cloud.com>
Date: Tue, 4 Apr 2023 11:54:52 +0800
Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96winrm=E5=8D=8F?=
 =?UTF-8?q?=E8=AE=AE=E7=BD=91=E5=9F=9F=E8=BF=9E=E6=8E=A5=E6=94=AF=E6=8C=81?=
 =?UTF-8?q?ssh=5Fkey?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps/assets/automations/base/manager.py | 5 ++++-
 apps/ops/ansible/inventory.py           | 3 ++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/apps/assets/automations/base/manager.py b/apps/assets/automations/base/manager.py
index 1a9f0b8cc..63b490fd9 100644
--- a/apps/assets/automations/base/manager.py
+++ b/apps/assets/automations/base/manager.py
@@ -1,11 +1,12 @@
 import json
 import os
 import shutil
+import yaml
+
 from collections import defaultdict
 from hashlib import md5
 from socket import gethostname
 
-import yaml
 from django.conf import settings
 from django.utils import timezone
 from django.utils.translation import gettext as _
@@ -239,10 +240,12 @@ class BasePlaybookManager:
             jms_asset, jms_gateway = host['jms_asset'], host.get('gateway')
             if not jms_gateway:
                 continue
+
             server = SSHTunnelForwarder(
                 (jms_gateway['address'], jms_gateway['port']),
                 ssh_username=jms_gateway['username'],
                 ssh_password=jms_gateway['secret'],
+                ssh_pkey=jms_gateway['private_key_path'],
                 remote_bind_address=(jms_asset['address'], jms_asset['port'])
             )
             try:
diff --git a/apps/ops/ansible/inventory.py b/apps/ops/ansible/inventory.py
index d98d105e5..2695851bb 100644
--- a/apps/ops/ansible/inventory.py
+++ b/apps/ops/ansible/inventory.py
@@ -100,7 +100,8 @@ class JMSInventory:
             if ansible_connection in ('local', 'winrm'):
                 host['gateway'] = {
                     'address': gateway.address, 'port': gateway.port,
-                    'username': gateway.username, 'secret': gateway.password
+                    'username': gateway.username, 'secret': gateway.password,
+                    'private_key_path': gateway.private_key_path
                 }
                 host['jms_asset']['port'] = port
             else: