From 85574b43eeb62682cb20892d21d6c7ab93a64f7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=B0=8F=E7=99=BD?= <296015668@qq.com> Date: Wed, 26 Oct 2022 19:25:34 +0800 Subject: [PATCH] perf: update playbook.yml --- .../deploy_applet_host/playbook.yml | 176 +++++++++++++----- 1 file changed, 130 insertions(+), 46 deletions(-) diff --git a/apps/terminal/automations/deploy_applet_host/playbook.yml b/apps/terminal/automations/deploy_applet_host/playbook.yml index 17016328d..ffb748b63 100644 --- a/apps/terminal/automations/deploy_applet_host/playbook.yml +++ b/apps/terminal/automations/deploy_applet_host/playbook.yml @@ -1,56 +1,140 @@ --- + - hosts: windows vars: - DownloadHost: https://demo.jumpserver.org/download - RDS_Licensing: enabled - RDS_LicenseServer: 127.0.0.1 - RDS_LicensingMode: 4 - - RDS_fSingleSessionPerUser: 0 + - RDS_fSingleSessionPerUser: 1 - RDS_MaxDisconnectionTime: 60000 - RDS_RemoteAppLogoffTimeLimit: 0 + tasks: - - name: Install RDS-Licensing (RDS) - ansible.windows.win_feature: - name: RDS-Licensing - state: present - include_management_tools: yes - when: RDS_Licensing == "enabled" - - name: Install RDS-RD-Server (RDS) - ansible.windows.win_feature: - name: RDS-RD-Server - state: present - include_management_tools: yes - register: win_feature - - name: Reboot if installing RDS feature requires it - ansible.windows.win_reboot: - when: win_feature.reboot_required - - name: Set RDS LicenseServer (regedit) - ansible.windows.win_regedit: - path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services - name: LicenseServers - data: "{{ RDS_LicenseServer }}" - type: string - - name: Set RDS LicensingMode (regedit) - ansible.windows.win_regedit: - path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services - name: LicensingMode - data: "{{ RDS_LicensingMode }}" - type: dword - - name: Set RDS fSingleSessionPerUser (regedit) - ansible.windows.win_regedit: - path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services - name: fSingleSessionPerUser - data: "{{ RDS_fSingleSessionPerUser }}" - type: dword - - name: Set RDS MaxDisconnectionTime (regedit) - ansible.windows.win_regedit: - path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services - name: MaxDisconnectionTime - data: "{{ RDS_MaxDisconnectionTime }}" - type: dword - when: RDS_MaxDisconnectionTime >= 60000 - - name: Set RDS RemoteAppLogoffTimeLimit (regedit) - ansible.windows.win_regedit: - path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services - name: RemoteAppLogoffTimeLimit - data: "{{ RDS_RemoteAppLogoffTime }}" + - name: Install RDS-Licensing (RDS) + ansible.windows.win_feature: + name: RDS-Licensing + state: present + include_management_tools: yes + when: RDS_Licensing == "enabled" + + - name: Install RDS-RD-Server (RDS) + ansible.windows.win_feature: + name: RDS-RD-Server + state: present + include_management_tools: yes + register: rds_install + + - name: Reboot if installing RDS feature requires it + ansible.windows.win_reboot: + post_reboot_delay: 10 + test_command: whoami + when: rds_install.reboot_required + + - name: Set RDS LicenseServer (regedit) + ansible.windows.win_regedit: + path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services + name: LicenseServers + data: "{{ RDS_LicenseServer }}" + type: string + + - name: Set RDS LicensingMode (regedit) + ansible.windows.win_regedit: + path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services + name: LicensingMode + data: "{{ RDS_LicensingMode }}" + type: dword + + - name: Set RDS fSingleSessionPerUser (regedit) + ansible.windows.win_regedit: + path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services + name: fSingleSessionPerUser + data: "{{ RDS_fSingleSessionPerUser }}" + type: dword + + - name: Set RDS MaxDisconnectionTime (regedit) + ansible.windows.win_regedit: + path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services + name: MaxDisconnectionTime + data: "{{ RDS_MaxDisconnectionTime }}" + type: dword + when: RDS_MaxDisconnectionTime >= 60000 + + - name: Set RDS RemoteAppLogoffTimeLimit (regedit) + ansible.windows.win_regedit: + path: HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services + name: RemoteAppLogoffTimeLimit + data: "{{ RDS_RemoteAppLogoffTimeLimit }}" + type: dword + + - name: Download Jmservisor (jumpserver) + ansible.windows.win_get_url: + url: "{{ DownloadHost }}/Jmservisor.msi" + dest: "{{ ansible_env.TEMP }}\\Jmservisor.msi" + + - name: Install the Jmservisor (jumpserver) + ansible.windows.win_package: + path: "{{ ansible_env.TEMP }}\\Jmservisor.msi" + state: present + + - name: Download python-3.10.8 + ansible.windows.win_get_url: + url: "{{ DownloadHost }}/python-3.10.8-amd64.exe" + dest: "{{ ansible_env.TEMP }}\\python-3.10.8-amd64.exe" + + - name: Install the python-3.10.8 + ansible.windows.win_package: + path: "{{ ansible_env.TEMP }}\\python-3.10.8-amd64.exe" + product_id: '{371d0d73-d418-4ffe-b280-58c3e7987525}' + arguments: + - /quiet + - InstallAllUsers=1 + - PrependPath=1 + - Include_test=0 + - Include_launcher=0 + state: present + register: win_install_python + + - name: Reboot if installing Python package requires it + ansible.windows.win_reboot: + when: win_install_python.reboot_required + + - name: Download pip packages + ansible.windows.win_get_url: + url: "{{ DownloadHost }}/pip_packages_v0.0.1.zip" + dest: "{{ ansible_env.TEMP }}\\pip_packages_v0.0.1.zip" + + - name: Unzip pip_packages + community.windows.win_unzip: + src: "{{ ansible_env.TEMP }}\\pip_packages_v0.0.1.zip" + dest: "{{ ansible_env.TEMP }}" + + - name: Install python requirements offline + ansible.windows.win_shell: pip install -r "{{ ansible_env.TEMP }}\pip_packages_v0.0.1\requirements.txt" --no-index --find-links="{{ ansible_env.TEMP }}\pip_packages_v0.0.1" + + - name: Download chromedriver (chrome) + ansible.windows.win_get_url: + url: "{{ DownloadHost }}/chromedriver_win32.106.zip" + dest: "{{ ansible_env.TEMP }}\\chromedriver_win32.106.zip" + + - name: Unzip chromedriver (chrome) + community.windows.win_unzip: + src: "{{ ansible_env.TEMP }}\\chromedriver_win32.106.zip" + dest: C:\Program Files\JumpServer\drivers + + - name: Set chromedriver on the global system path (chrome) + ansible.windows.win_path: + elements: + - 'C:\Program Files\JumpServer\drivers' + + - name: Download chrome msi package (chrome) + ansible.windows.win_get_url: + url: "{{ DownloadHost }}/googlechromestandaloneenterprise64.msi" + dest: "{{ ansible_env.TEMP }}\\googlechromestandaloneenterprise64.msi" + + - name: Install chrome (chrome) + ansible.windows.win_package: + path: "{{ ansible_env.TEMP }}\\googlechromestandaloneenterprise64.msi" + state: present + arguments: + - /quiet