mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-18 00:08:31 +00:00
perf: 支持发布机卸载远程应用
This commit is contained in:
@@ -36,6 +36,9 @@ class DeployAppletHostManager:
|
||||
def install_applet(self, **kwargs):
|
||||
self._run(self._run_install_applet, **kwargs)
|
||||
|
||||
def uninstall_applet(self, **kwargs):
|
||||
self._run(self._run_uninstall_applet, **kwargs)
|
||||
|
||||
def _run_initial_deploy(self, **kwargs):
|
||||
playbook = self.generate_initial_playbook
|
||||
return self._run_playbook(playbook, **kwargs)
|
||||
@@ -47,6 +50,13 @@ class DeployAppletHostManager:
|
||||
generate_playbook = self.generate_install_all_playbook
|
||||
return self._run_playbook(generate_playbook, **kwargs)
|
||||
|
||||
def _run_uninstall_applet(self, **kwargs):
|
||||
if self.applet:
|
||||
generate_playbook = self.generate_uninstall_applet_playbook
|
||||
else:
|
||||
raise ValueError("applet is required for uninstall_applet")
|
||||
return self._run_playbook(generate_playbook, **kwargs)
|
||||
|
||||
def generate_initial_playbook(self):
|
||||
site_url = settings.SITE_URL
|
||||
download_host = settings.APPLET_DOWNLOAD_HOST
|
||||
@@ -92,6 +102,16 @@ class DeployAppletHostManager:
|
||||
|
||||
return self._generate_playbook("install_applet.yml", handler)
|
||||
|
||||
def generate_uninstall_applet_playbook(self):
|
||||
applet_name = self.applet.name
|
||||
|
||||
def handler(plays):
|
||||
for play in plays:
|
||||
play["vars"]["applet_name"] = applet_name
|
||||
return plays
|
||||
|
||||
return self._generate_playbook("uninstall_applet.yml", handler)
|
||||
|
||||
def generate_inventory(self):
|
||||
inventory = JMSInventory(
|
||||
[self.deployment.host], account_policy="privileged_only"
|
||||
|
@@ -0,0 +1,11 @@
|
||||
---
|
||||
|
||||
- hosts: all
|
||||
vars:
|
||||
applet_name: chrome
|
||||
|
||||
tasks:
|
||||
- name: uninstall applet
|
||||
ansible.windows.win_powershell:
|
||||
script: |
|
||||
tinkerd uninstall --name {{ applet_name }}
|
Reference in New Issue
Block a user