mirror of https://github.com/jumpserver/jumpserver
				
				
				
			perf: use python embed
							parent
							
								
									1f32ab274c
								
							
						
					
					
						commit
						6fa14833b3
					
				| 
						 | 
					@ -15,7 +15,7 @@
 | 
				
			||||||
    RDS_MaxDisconnectionTime: 60000
 | 
					    RDS_MaxDisconnectionTime: 60000
 | 
				
			||||||
    RDS_RemoteAppLogoffTimeLimit: 0
 | 
					    RDS_RemoteAppLogoffTimeLimit: 0
 | 
				
			||||||
    INSTALL_APPLETS: true
 | 
					    INSTALL_APPLETS: true
 | 
				
			||||||
    PYTHON_VERSION: 3.11.6
 | 
					    PYTHON_VERSION: 3.11.10
 | 
				
			||||||
    CHROME_VERSION: 118.0.5993.118
 | 
					    CHROME_VERSION: 118.0.5993.118
 | 
				
			||||||
    CHROME_DRIVER_VERSION: 118.0.5993.70
 | 
					    CHROME_DRIVER_VERSION: 118.0.5993.70
 | 
				
			||||||
    TINKER_VERSION: v0.1.9
 | 
					    TINKER_VERSION: v0.1.9
 | 
				
			||||||
| 
						 | 
					@ -76,39 +76,43 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Download python-{{ PYTHON_VERSION }}
 | 
					        - name: Download python-{{ PYTHON_VERSION }}
 | 
				
			||||||
          ansible.windows.win_get_url:
 | 
					          ansible.windows.win_get_url:
 | 
				
			||||||
            url: "{{ APPLET_DOWNLOAD_HOST }}/download/applets/python-{{ PYTHON_VERSION }}-amd64.exe"
 | 
					            url: "{{ APPLET_DOWNLOAD_HOST }}/download/applets/jumpserver-tinker-python-{{ PYTHON_VERSION }}-win64.zip"
 | 
				
			||||||
            dest: "{{ ansible_env.TEMP }}\\python-{{ PYTHON_VERSION }}-amd64.exe"
 | 
					            dest: "{{ ansible_env.TEMP }}\\jumpserver-tinker-python-{{ PYTHON_VERSION }}-win64.zip"
 | 
				
			||||||
            validate_certs: "{{ not IGNORE_VERIFY_CERTS }}"
 | 
					            validate_certs: "{{ not IGNORE_VERIFY_CERTS }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Install the python-{{ PYTHON_VERSION }}
 | 
					        - name: Install the python-{{ PYTHON_VERSION }}
 | 
				
			||||||
          ansible.windows.win_package:
 | 
					          community.windows.win_unzip:
 | 
				
			||||||
            path: "{{ ansible_env.TEMP }}\\python-{{ PYTHON_VERSION }}-amd64.exe"
 | 
					            src: "{{ ansible_env.TEMP }}\\jumpserver-tinker-python-{{ PYTHON_VERSION }}-win64.zip"
 | 
				
			||||||
            arguments:
 | 
					            dest: "%ProgramFiles%\\JumpServer\\applications"
 | 
				
			||||||
              - /quiet
 | 
					 | 
				
			||||||
              - InstallAllUsers=1
 | 
					 | 
				
			||||||
              - PrependPath=1
 | 
					 | 
				
			||||||
              - Include_test=0
 | 
					 | 
				
			||||||
              - Include_launcher=0
 | 
					 | 
				
			||||||
            state: present
 | 
					 | 
				
			||||||
          register: win_install_python
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Check pip command exists
 | 
					        - name: Check and Clean global system path (Python)
 | 
				
			||||||
          ansible.windows.win_powershell:
 | 
					          ansible.windows.win_path:
 | 
				
			||||||
            script: |
 | 
					            elements:
 | 
				
			||||||
              if (Get-Command -Name 'pip' -ErrorAction SilentlyContinue) {
 | 
					              - 'C:\Program Files\Python310\Scripts'
 | 
				
			||||||
                $Ansible.Changed = $false
 | 
					              - 'C:\Program Files\Python310'
 | 
				
			||||||
              }
 | 
					              - 'C:\Program Files\Python311\Scripts'
 | 
				
			||||||
              else {
 | 
					              - 'C:\Program Files\Python311'
 | 
				
			||||||
               $Ansible.Changed = $true
 | 
					            state: absent
 | 
				
			||||||
              }
 | 
					
 | 
				
			||||||
          ignore_errors: yes
 | 
					        - name: Set python-{{ PYTHON_VERSION }} on the global system path
 | 
				
			||||||
          register: check_pip_command
 | 
					          ansible.windows.win_path:
 | 
				
			||||||
 | 
					            elements:
 | 
				
			||||||
 | 
					              - '%ProgramFiles%\JumpServer\applications\Python'
 | 
				
			||||||
 | 
					              - '%ProgramFiles%\JumpServer\applications\Python\Scripts'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        - name: Set python-{{ PYTHON_VERSION }} on the global system python path
 | 
				
			||||||
 | 
					          ansible.windows.win_path:
 | 
				
			||||||
 | 
					            name: PYTHONPATH
 | 
				
			||||||
 | 
					            scope: machine
 | 
				
			||||||
 | 
					            elements:
 | 
				
			||||||
 | 
					              - '%ProgramFiles%\JumpServer\applications\Python\packages'
 | 
				
			||||||
 | 
					              - '%ProgramFiles%\JumpServer\applications\Python\Lib\site-packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Reboot if installing requires it
 | 
					        - name: Reboot if installing requires it
 | 
				
			||||||
          ansible.windows.win_reboot:
 | 
					          ansible.windows.win_reboot:
 | 
				
			||||||
            post_reboot_delay: 10
 | 
					            post_reboot_delay: 10
 | 
				
			||||||
            test_command: whoami
 | 
					            test_command: whoami
 | 
				
			||||||
          when: check_pip_command.changed or rds_install.reboot_required or win_install_python.reboot_required
 | 
					          when: rds_install.reboot_required
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Set RDS LicenseServer (regedit)
 | 
					        - name: Set RDS LicenseServer (regedit)
 | 
				
			||||||
          ansible.windows.win_regedit:
 | 
					          ansible.windows.win_regedit:
 | 
				
			||||||
| 
						 | 
					@ -149,22 +153,6 @@
 | 
				
			||||||
            data: "{{ RDS_RemoteAppLogoffTimeLimit }}"
 | 
					            data: "{{ RDS_RemoteAppLogoffTimeLimit }}"
 | 
				
			||||||
            type: dword
 | 
					            type: dword
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Download pip packages
 | 
					 | 
				
			||||||
          ansible.windows.win_get_url:
 | 
					 | 
				
			||||||
            url: "{{ APPLET_DOWNLOAD_HOST }}/download/applets/pip_packages.zip"
 | 
					 | 
				
			||||||
            dest: "{{ ansible_env.TEMP }}\\pip_packages.zip"
 | 
					 | 
				
			||||||
            validate_certs: "{{ not IGNORE_VERIFY_CERTS }}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        - name: Unzip pip_packages
 | 
					 | 
				
			||||||
          community.windows.win_unzip:
 | 
					 | 
				
			||||||
            src: "{{ ansible_env.TEMP }}\\pip_packages.zip"
 | 
					 | 
				
			||||||
            dest: "{{ ansible_env.TEMP }}\\pip_packages"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        - name: Install python requirements offline
 | 
					 | 
				
			||||||
          ansible.windows.win_powershell:
 | 
					 | 
				
			||||||
            script: |
 | 
					 | 
				
			||||||
              pip install -r '{{ ansible_env.TEMP }}\pip_packages\pip_packages\requirements.txt' --no-index --find-links='{{ ansible_env.TEMP }}\pip_packages\pip_packages'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        - name: Stop chromedriver before install
 | 
					        - name: Stop chromedriver before install
 | 
				
			||||||
          ansible.windows.win_powershell:
 | 
					          ansible.windows.win_powershell:
 | 
				
			||||||
            script: |
 | 
					            script: |
 | 
				
			||||||
| 
						 | 
					@ -180,10 +168,10 @@
 | 
				
			||||||
            path: "{{ item }}"
 | 
					            path: "{{ item }}"
 | 
				
			||||||
            state: absent
 | 
					            state: absent
 | 
				
			||||||
          with_items:
 | 
					          with_items:
 | 
				
			||||||
            - C:\Program Files\JumpServer\drivers\chromedriver-win32
 | 
					            - 'C:\Program Files\JumpServer\drivers\chromedriver-win32'
 | 
				
			||||||
            - C:\Program Files\JumpServer\drivers\chromedriver_win32
 | 
					            - 'C:\Program Files\JumpServer\drivers\chromedriver_win32'
 | 
				
			||||||
            - C:\Program Files\JumpServer\drivers\chromedriver-win64
 | 
					            - 'C:\Program Files\JumpServer\drivers\chromedriver-win64'
 | 
				
			||||||
            - C:\Program Files\JumpServer\drivers\chromedriver_win64
 | 
					            - 'C:\Program Files\JumpServer\drivers\chromedriver_win64'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Download chromedriver (Chrome)
 | 
					        - name: Download chromedriver (Chrome)
 | 
				
			||||||
          ansible.windows.win_get_url:
 | 
					          ansible.windows.win_get_url:
 | 
				
			||||||
| 
						 | 
					@ -194,7 +182,7 @@
 | 
				
			||||||
        - name: Unzip chromedriver (Chrome)
 | 
					        - name: Unzip chromedriver (Chrome)
 | 
				
			||||||
          community.windows.win_unzip:
 | 
					          community.windows.win_unzip:
 | 
				
			||||||
            src: "{{ ansible_env.TEMP }}\\chromedriver-{{ CHROME_DRIVER_VERSION }}-win64.zip"
 | 
					            src: "{{ ansible_env.TEMP }}\\chromedriver-{{ CHROME_DRIVER_VERSION }}-win64.zip"
 | 
				
			||||||
            dest: C:\Program Files\JumpServer\drivers
 | 
					            dest: "%ProgramFiles%\\JumpServer\\drivers"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Download Chrome zip package (Chrome)
 | 
					        - name: Download Chrome zip package (Chrome)
 | 
				
			||||||
          ansible.windows.win_get_url:
 | 
					          ansible.windows.win_get_url:
 | 
				
			||||||
| 
						 | 
					@ -217,21 +205,19 @@
 | 
				
			||||||
            path: "{{ item }}"
 | 
					            path: "{{ item }}"
 | 
				
			||||||
            state: absent
 | 
					            state: absent
 | 
				
			||||||
          with_items:
 | 
					          with_items:
 | 
				
			||||||
            - C:\Program Files\JumpServer\applications\Chrome
 | 
					            - 'C:\Program Files\JumpServer\applications\Chrome'
 | 
				
			||||||
            - C:\Program Files\Chrome\chrome-win32
 | 
					            - 'C:\Program Files\Chrome\chrome-win32'
 | 
				
			||||||
            - C:\Program Files\Chrome\chrome-win
 | 
					            - 'C:\Program Files\Chrome\chrome-win'
 | 
				
			||||||
            - C:\Program Files\chrome-win
 | 
					            - 'C:\Program Files\chrome-win'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Unzip Chrome (Chrome)
 | 
					        - name: Unzip Chrome (Chrome)
 | 
				
			||||||
          community.windows.win_unzip:
 | 
					          community.windows.win_unzip:
 | 
				
			||||||
            src: "{{ ansible_env.TEMP }}\\chrome-{{ CHROME_VERSION }}-win.zip"
 | 
					            src: "{{ ansible_env.TEMP }}\\chrome-{{ CHROME_VERSION }}-win.zip"
 | 
				
			||||||
            dest: C:\Program Files\JumpServer\applications
 | 
					            dest: "%ProgramFiles%\\JumpServer\\applications"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Check and Clean global system path (Chrome)
 | 
					        - name: Check and Clean global system path (Chrome)
 | 
				
			||||||
          ansible.windows.win_path:
 | 
					          ansible.windows.win_path:
 | 
				
			||||||
            elements:
 | 
					            elements:
 | 
				
			||||||
              - 'C:\Program Files\Python310\Scripts\'
 | 
					 | 
				
			||||||
              - 'C:\Program Files\Python310\'
 | 
					 | 
				
			||||||
              - 'C:\Program Files\JumpServer\drivers\chromedriver-win32'
 | 
					              - 'C:\Program Files\JumpServer\drivers\chromedriver-win32'
 | 
				
			||||||
              - 'C:\Program Files\JumpServer\drivers\chromedriver_win32'
 | 
					              - 'C:\Program Files\JumpServer\drivers\chromedriver_win32'
 | 
				
			||||||
              - 'C:\Program Files\Chrome\chrome-win32'
 | 
					              - 'C:\Program Files\Chrome\chrome-win32'
 | 
				
			||||||
| 
						 | 
					@ -242,8 +228,8 @@
 | 
				
			||||||
        - name: Set Chrome and driver on the global system path (Chrome)
 | 
					        - name: Set Chrome and driver on the global system path (Chrome)
 | 
				
			||||||
          ansible.windows.win_path:
 | 
					          ansible.windows.win_path:
 | 
				
			||||||
            elements:
 | 
					            elements:
 | 
				
			||||||
              - 'C:\Program Files\JumpServer\applications\Chrome\Application'
 | 
					              - '%ProgramFiles%\JumpServer\applications\Chrome\Application'
 | 
				
			||||||
              - 'C:\Program Files\JumpServer\drivers\chromedriver-win64'
 | 
					              - '%ProgramFiles%\JumpServer\drivers\chromedriver-win64'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - name: Set Chrome variables disable Google Api (Chrome)
 | 
					        - name: Set Chrome variables disable Google Api (Chrome)
 | 
				
			||||||
          ansible.windows.win_environment:
 | 
					          ansible.windows.win_environment:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue