perf: 支持发布机卸载远程应用

This commit is contained in:
Eric
2024-03-20 19:23:44 +08:00
committed by Bryan
parent a5e8792092
commit 0589f7fe33
6 changed files with 89 additions and 4 deletions

View File

@@ -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"

View File

@@ -0,0 +1,11 @@
---
- hosts: all
vars:
applet_name: chrome
tasks:
- name: uninstall applet
ansible.windows.win_powershell:
script: |
tinkerd uninstall --name {{ applet_name }}