mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-18 00:08:31 +00:00
feat: 支持 ansible 沙盒运行 (#12953)
* feat: 支持 ansible 沙盒运行 * feat: 修改 receptor sock 默认路径 * feat: 增加 adhoc 执行命令的 local connection 权限 --------- Co-authored-by: Aaron3S <chenyang@fit2cloud.com> Co-authored-by: Bai <baijiangjie@gmail.com>
This commit is contained in:
@@ -17,6 +17,7 @@ class Services(TextChoices):
|
||||
web = 'web', 'web'
|
||||
celery = 'celery', 'celery'
|
||||
task = 'task', 'task'
|
||||
receptor = 'receptor', 'receptor'
|
||||
all = 'all', 'all'
|
||||
|
||||
@classmethod
|
||||
@@ -27,7 +28,8 @@ class Services(TextChoices):
|
||||
cls.flower: services.FlowerService,
|
||||
cls.celery_default: services.CeleryDefaultService,
|
||||
cls.celery_ansible: services.CeleryAnsibleService,
|
||||
cls.beat: services.BeatService
|
||||
cls.beat: services.BeatService,
|
||||
cls.receptor: services.ReceptorService
|
||||
}
|
||||
return services_map.get(name)
|
||||
|
||||
@@ -43,9 +45,13 @@ class Services(TextChoices):
|
||||
def task_services(cls):
|
||||
return cls.celery_services() + [cls.beat]
|
||||
|
||||
@classmethod
|
||||
def receptor_services(cls):
|
||||
return [cls.receptor]
|
||||
|
||||
@classmethod
|
||||
def all_services(cls):
|
||||
return cls.web_services() + cls.task_services()
|
||||
return cls.web_services() + cls.task_services() + cls.receptor_services()
|
||||
|
||||
@classmethod
|
||||
def export_services_values(cls):
|
||||
|
@@ -3,3 +3,4 @@ from .celery_ansible import *
|
||||
from .celery_default import *
|
||||
from .flower import *
|
||||
from .gunicorn import *
|
||||
from .receptor import *
|
||||
|
@@ -0,0 +1,32 @@
|
||||
from .base import BaseService
|
||||
from ..hands import *
|
||||
|
||||
__all__ = ['ReceptorService']
|
||||
|
||||
ANSIBLE_RUNNER_COMMAND = "ansible-runner"
|
||||
|
||||
|
||||
class ReceptorService(BaseService):
|
||||
@property
|
||||
def cmd(self):
|
||||
print("\n- Start Receptor as Ansible Runner Sandbox")
|
||||
|
||||
cmd = [
|
||||
'receptor',
|
||||
'--local-only',
|
||||
'--node', 'id=primary',
|
||||
'--control-service',
|
||||
'service=control',
|
||||
'filename=/opt/jumpserver/data/share/control.sock',
|
||||
'--work-command',
|
||||
'worktype={}'.format(ANSIBLE_RUNNER_COMMAND),
|
||||
'command={}'.format(ANSIBLE_RUNNER_COMMAND),
|
||||
'params=worker',
|
||||
'allowruntimeparams=true'
|
||||
]
|
||||
|
||||
return cmd
|
||||
|
||||
@property
|
||||
def cwd(self):
|
||||
return APPS_DIR
|
Reference in New Issue
Block a user