mirror of https://github.com/jumpserver/jumpserver
fix: 修复一些因使用 receptor runner 造成的 bug
parent
b8449a6efa
commit
44445a9482
|
@ -121,7 +121,7 @@ RUN set -ex \
|
||||||
|
|
||||||
COPY --from=stage-2 /opt/py3 /opt/py3
|
COPY --from=stage-2 /opt/py3 /opt/py3
|
||||||
COPY --from=stage-1 /opt/jumpserver/release/jumpserver /opt/jumpserver
|
COPY --from=stage-1 /opt/jumpserver/release/jumpserver /opt/jumpserver
|
||||||
COPY --from=stage-1 /opt/jumpserver/release/jumpserver/apps/ops/ansible/ansible.cfg /etc/ansible/
|
COPY --from=stage-1 /opt/jumpserver/release/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
|
||||||
|
|
||||||
WORKDIR /opt/jumpserver
|
WORKDIR /opt/jumpserver
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ class SSHTunnelManager:
|
||||||
not_valid.append(k)
|
not_valid.append(k)
|
||||||
else:
|
else:
|
||||||
local_bind_port = server.local_bind_port
|
local_bind_port = server.local_bind_port
|
||||||
host['ansible_host'] = jms_asset['address'] = host['login_host'] = '127.0.0.1'
|
host['ansible_host'] = jms_asset['address'] = host['login_host'] = 'jms_celery'
|
||||||
host['ansible_port'] = jms_asset['port'] = host['login_port'] = local_bind_port
|
host['ansible_port'] = jms_asset['port'] = host['login_port'] = local_bind_port
|
||||||
servers.append(server)
|
servers.append(server)
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@ class CeleryBaseService(BaseService):
|
||||||
@property
|
@property
|
||||||
def cmd(self):
|
def cmd(self):
|
||||||
print('\n- Start Celery as Distributed Task Queue: {}'.format(self.queue.capitalize()))
|
print('\n- Start Celery as Distributed Task Queue: {}'.format(self.queue.capitalize()))
|
||||||
ansible_config_path = os.path.join(settings.APPS_DIR, 'ops', 'ansible', 'ansible.cfg')
|
ansible_config_path = os.path.join(settings.APPS_DIR, 'libs', 'ansible', 'ansible.cfg')
|
||||||
ansible_modules_path = os.path.join(settings.APPS_DIR, 'ops', 'ansible', 'modules')
|
ansible_modules_path = os.path.join(settings.APPS_DIR, 'libs', 'ansible', 'modules')
|
||||||
os.environ.setdefault('LC_ALL', 'C.UTF-8')
|
os.environ.setdefault('LC_ALL', 'C.UTF-8')
|
||||||
os.environ.setdefault('PYTHONOPTIMIZE', '1')
|
os.environ.setdefault('PYTHONOPTIMIZE', '1')
|
||||||
os.environ.setdefault('ANSIBLE_FORCE_COLOR', 'True')
|
os.environ.setdefault('ANSIBLE_FORCE_COLOR', 'True')
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[defaults]
|
[defaults]
|
||||||
forks = 10
|
forks = 10
|
||||||
host_key_checking = False
|
host_key_checking = False
|
||||||
library = /opt/jumpserver/apps/ops/ansible/modules:./modules
|
library = /opt/jumpserver/apps/libs/ansible/modules:./modules
|
||||||
timeout = 65
|
timeout = 65
|
||||||
[inventory]
|
[inventory]
|
||||||
[privilege_escalation]
|
[privilege_escalation]
|
|
@ -63,7 +63,7 @@ name:
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
from ops.ansible.modules_utils.custom_common import (
|
from libs.ansible.modules_utils.custom_common import (
|
||||||
SSHClient, common_argument_spec
|
SSHClient, common_argument_spec
|
||||||
)
|
)
|
||||||
|
|
|
@ -91,7 +91,7 @@ users:
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
from ops.ansible.modules_utils.oracle_common import (
|
from libs.ansible.modules_utils.oracle_common import (
|
||||||
OracleClient, oracle_common_argument_spec
|
OracleClient, oracle_common_argument_spec
|
||||||
)
|
)
|
||||||
|
|
|
@ -46,7 +46,7 @@ conn_err_msg:
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ops.ansible.modules_utils.oracle_common import (
|
from libs.ansible.modules_utils.oracle_common import (
|
||||||
OracleClient, oracle_common_argument_spec
|
OracleClient, oracle_common_argument_spec
|
||||||
)
|
)
|
||||||
|
|
|
@ -93,7 +93,7 @@ name:
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
from ops.ansible.modules_utils.oracle_common import (
|
from libs.ansible.modules_utils.oracle_common import (
|
||||||
OracleClient, oracle_common_argument_spec
|
OracleClient, oracle_common_argument_spec
|
||||||
)
|
)
|
||||||
|
|
|
@ -34,7 +34,7 @@ is_available:
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
from ops.ansible.modules_utils.custom_common import (
|
from libs.ansible.modules_utils.custom_common import (
|
||||||
SSHClient, common_argument_spec
|
SSHClient, common_argument_spec
|
||||||
)
|
)
|
||||||
|
|
|
@ -91,4 +91,3 @@ class OracleClient(object):
|
||||||
self._conn.close()
|
self._conn.close()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -101,7 +101,7 @@ class PlaybookRunner:
|
||||||
entry = os.path.basename(self.playbook)
|
entry = os.path.basename(self.playbook)
|
||||||
playbook_dir = os.path.dirname(self.playbook)
|
playbook_dir = os.path.dirname(self.playbook)
|
||||||
project_playbook_dir = os.path.join(self.project_dir, "project")
|
project_playbook_dir = os.path.join(self.project_dir, "project")
|
||||||
shutil.copytree(playbook_dir, project_playbook_dir)
|
shutil.copytree(playbook_dir, project_playbook_dir, dirs_exist_ok=True)
|
||||||
self.playbook = entry
|
self.playbook = entry
|
||||||
|
|
||||||
def run(self, verbosity=0, **kwargs):
|
def run(self, verbosity=0, **kwargs):
|
||||||
|
|
18
receptor
18
receptor
|
@ -13,20 +13,26 @@ import psutil
|
||||||
from psutil import NoSuchProcess
|
from psutil import NoSuchProcess
|
||||||
|
|
||||||
ANSIBLE_RUNNER_COMMAND = "ansible-runner"
|
ANSIBLE_RUNNER_COMMAND = "ansible-runner"
|
||||||
DEFAULT_SHARE_DIR = "data/share"
|
|
||||||
|
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
APPS_DIR = os.path.join(PROJECT_DIR, 'apps')
|
||||||
|
TEMP_DIR = os.path.join(PROJECT_DIR, "tmp")
|
||||||
|
|
||||||
|
DEFAULT_SHARE_DIR = os.path.join(PROJECT_DIR, "data", "share")
|
||||||
|
DEFAULT_ANSIBLE_MODULES_DIR = os.path.join(APPS_DIR, "libs", "ansible", "modules")
|
||||||
DEFAULT_CONTROL_SOCK_PATH = os.path.join(DEFAULT_SHARE_DIR, "control.sock")
|
DEFAULT_CONTROL_SOCK_PATH = os.path.join(DEFAULT_SHARE_DIR, "control.sock")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
os.chdir(APPS_DIR)
|
||||||
|
|
||||||
|
|
||||||
class ReceptorService:
|
class ReceptorService:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.pid_file = "tmp/receptor.pid"
|
self.pid_file = os.path.join(TEMP_DIR, "receptor.pid")
|
||||||
self.receptor_command = [
|
self.receptor_command = [
|
||||||
'receptor',
|
'receptor',
|
||||||
'--local-only',
|
'--local-only',
|
||||||
'--log-level',
|
|
||||||
'level=Debug',
|
|
||||||
'--node', 'id=primary',
|
'--node', 'id=primary',
|
||||||
'--control-service',
|
'--control-service',
|
||||||
'service=control',
|
'service=control',
|
||||||
|
@ -39,7 +45,7 @@ class ReceptorService:
|
||||||
'--work-command',
|
'--work-command',
|
||||||
'worktype={}'.format("kill"),
|
'worktype={}'.format("kill"),
|
||||||
'command={}'.format("python"),
|
'command={}'.format("python"),
|
||||||
"params=receptor kill",
|
"params={} kill".format(os.path.join(PROJECT_DIR, "receptor")),
|
||||||
'allowruntimeparams=true'
|
'allowruntimeparams=true'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -67,6 +73,8 @@ class ReceptorService:
|
||||||
os.remove(self.pid_file)
|
os.remove(self.pid_file)
|
||||||
|
|
||||||
os.environ.update({'LOCAL_CONNECTION_ENABLED': '1'})
|
os.environ.update({'LOCAL_CONNECTION_ENABLED': '1'})
|
||||||
|
os.environ.setdefault('ANSIBLE_LIBRARY', DEFAULT_ANSIBLE_MODULES_DIR)
|
||||||
|
os.environ.update({'PYTHONPATH': APPS_DIR})
|
||||||
process = subprocess.Popen(self.receptor_command)
|
process = subprocess.Popen(self.receptor_command)
|
||||||
with open(self.pid_file, 'w') as f:
|
with open(self.pid_file, 'w') as f:
|
||||||
f.write(str(process.pid))
|
f.write(str(process.pid))
|
||||||
|
|
Loading…
Reference in New Issue