From 819853eae469fea3130796ae9db7a4b29fae1df4 Mon Sep 17 00:00:00 2001 From: Bai Date: Mon, 17 Jul 2023 13:59:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20DEBUG=5FANSIBLE=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B9=E6=94=AF=E6=8C=81=E6=89=93=E5=8D=B0?= =?UTF-8?q?=20Ansible=20=E8=AF=A6=E7=BB=86=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jumpserver/conf.py | 1 + apps/jumpserver/settings/base.py | 2 ++ apps/ops/ansible/runner.py | 7 +++---- apps/ops/utils.py | 17 ++++++++++------- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 902f96df7..8990a4223 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -186,6 +186,7 @@ class Config(dict): 'BOOTSTRAP_TOKEN': '', 'DEBUG': False, 'DEBUG_DEV': False, + 'DEBUG_ANSIBLE': False, 'LOG_LEVEL': 'DEBUG', 'LOG_DIR': os.path.join(PROJECT_DIR, 'data', 'logs'), 'DB_ENGINE': 'mysql', diff --git a/apps/jumpserver/settings/base.py b/apps/jumpserver/settings/base.py index 7477f3f83..2bc547e57 100644 --- a/apps/jumpserver/settings/base.py +++ b/apps/jumpserver/settings/base.py @@ -53,6 +53,8 @@ BOOTSTRAP_TOKEN = CONFIG.BOOTSTRAP_TOKEN DEBUG = CONFIG.DEBUG # SECURITY WARNING: If you run with debug turned on, more debug msg with be log DEBUG_DEV = CONFIG.DEBUG_DEV +# SECURITY WARNING: If you run ansible task with debug turned on, more debug msg with be log +DEBUG_ANSIBLE = CONFIG.DEBUG_ANSIBLE # Absolute url for some case, for example email link SITE_URL = CONFIG.SITE_URL diff --git a/apps/ops/ansible/runner.py b/apps/ops/ansible/runner.py index 03aec1787..4610ddfd2 100644 --- a/apps/ops/ansible/runner.py +++ b/apps/ops/ansible/runner.py @@ -5,6 +5,7 @@ import ansible_runner from django.conf import settings from .callback import DefaultCallback +from ..utils import get_ansible_log_verbosity class CommandInBlackListException(Exception): @@ -37,8 +38,7 @@ class AdHocRunner: def run(self, verbosity=0, **kwargs): self.check_module() - if verbosity is None and settings.DEBUG: - verbosity = 1 + verbosity = get_ansible_log_verbosity(verbosity) if not os.path.exists(self.project_dir): os.mkdir(self.project_dir, 0o755) @@ -70,8 +70,7 @@ class PlaybookRunner: self.cb = callback def run(self, verbosity=0, **kwargs): - if verbosity is None and settings.DEBUG: - verbosity = 1 + verbosity = get_ansible_log_verbosity(verbosity) ansible_runner.run( private_data_dir=self.project_dir, diff --git a/apps/ops/utils.py b/apps/ops/utils.py index c2fb7e643..539d6b66c 100644 --- a/apps/ops/utils.py +++ b/apps/ops/utils.py @@ -1,16 +1,11 @@ # ~*~ coding: utf-8 ~*~ import os import uuid +from django.conf import settings -from django.utils.translation import ugettext_lazy as _ - -from common.utils import get_logger, get_object_or_none, make_dirs -from orgs.utils import org_aware_func +from common.utils import get_logger, make_dirs from jumpserver.const import PROJECT_DIR -from .models import AdHoc, CeleryTask -from .const import DEFAULT_PASSWORD_RULES - logger = get_logger(__file__) @@ -26,3 +21,11 @@ def get_task_log_path(base_path, task_id, level=2): make_dirs(os.path.dirname(path), exist_ok=True) return path + +def get_ansible_log_verbosity(verbosity=0): + if settings.DEBUG_ANSIBLE: + return 10 + if verbosity is None and settings.DEBUG: + return 1 + return verbosity +