diff options
Diffstat (limited to 'lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb')
-rw-r--r-- | lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb | 278 |
1 files changed, 0 insertions, 278 deletions
diff --git a/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb b/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb deleted file mode 100644 index 7aa7be49f8..0000000000 --- a/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +++ /dev/null @@ -1,278 +0,0 @@ -@rem -@rem Author:: Seth Chisamore (<schisamo@chef.io>) -@rem Copyright:: Copyright (c) 2011-2019 Chef Software, Inc. -@rem License:: Apache License, Version 2.0 -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@rem Use delayed environment expansion so that ERRORLEVEL can be evaluated with the -@rem !ERRORLEVEL! syntax which evaluates at execution of the line of script, not when -@rem the line is read. See help for the /E switch from cmd.exe /? . -@setlocal ENABLEDELAYEDEXPANSION - -<%= "SETX HTTP_PROXY \"#{@config[:bootstrap_proxy]}\"" if @config[:bootstrap_proxy] %> - -@set BOOTSTRAP_DIRECTORY=<%= bootstrap_directory %> -@echo Checking for existing directory "%BOOTSTRAP_DIRECTORY%"... -@if NOT EXIST %BOOTSTRAP_DIRECTORY% ( - @echo Existing directory not found, creating. - @mkdir %BOOTSTRAP_DIRECTORY% -) else ( - @echo Existing directory found, skipping creation. -) - -> <%= bootstrap_directory %>\wget.vbs ( - <%= win_wget %> -) - -> <%= bootstrap_directory %>\wget.ps1 ( - <%= win_wget_ps %> -) - -@rem Determine the version and the architecture - -@FOR /F "usebackq tokens=1-8 delims=.[] " %%A IN (`ver`) DO ( -@set WinMajor=%%D -@set WinMinor=%%E -@set WinBuild=%%F -) - -@echo Detected Windows Version %WinMajor%.%WinMinor% Build %WinBuild% - -@set LATEST_OS_VERSION_MAJOR=10 -@set LATEST_OS_VERSION_MINOR=1 - -@if /i %WinMajor% GTR %LATEST_OS_VERSION_MAJOR% goto VersionUnknown -@if /i %WinMajor% EQU %LATEST_OS_VERSION_MAJOR% ( - @if /i %WinMinor% GTR %LATEST_OS_VERSION_MINOR% goto VersionUnknown -) - -goto Version%WinMajor%.%WinMinor% - -:VersionUnknown -@rem If this is an unknown version of windows set the default -@set MACHINE_OS=2012r2 -@echo Warning: Unknown version of Windows, assuming default of Windows %MACHINE_OS% -goto architecture_select - -:Version6.0 -@set MACHINE_OS=2008 -goto architecture_select - -:Version6.1 -@set MACHINE_OS=2008r2 -goto architecture_select - -:Version6.2 -@set MACHINE_OS=2012 -goto architecture_select - -@rem Currently Windows Server 2012 R2 is treated as equivalent to Windows Server 2012 -:Version6.3 -@set MACHINE_OS=2012r2 -goto architecture_select - -:Version10.0 -@set MACHINE_OS=2016 -goto architecture_select - -@rem Currently Windows Server 2019 is treated as equivalent to Windows Server 2016 -:Version10.1 -goto Version10.0 - -:architecture_select -<% if @config[:architecture] %> - @set MACHINE_ARCH=<%= @config[:architecture] %> - - <% if @config[:architecture] == "x86_64" %> - IF "%PROCESSOR_ARCHITECTURE%"=="x86" IF not defined PROCESSOR_ARCHITEW6432 ( - echo You specified bootstrap_architecture as x86_64 but the target machine is i386. A 64 bit program cannot run on a 32 bit machine. > "&2" - echo Exiting without bootstrapping. > "&2" - exit /b 1 - ) - <% end %> -<% else %> - @set MACHINE_ARCH=x86_64 - IF "%PROCESSOR_ARCHITECTURE%"=="x86" IF not defined PROCESSOR_ARCHITEW6432 @set MACHINE_ARCH=i686 -<% end %> -goto chef_installed - -:chef_installed -@echo Checking for existing <%= ChefUtils::Dist::Infra::PRODUCT %> installation -WHERE <%= ChefUtils::Dist::Infra::CLIENT %> >nul 2>nul -If !ERRORLEVEL!==0 ( - @echo Existing <%= ChefUtils::Dist::Infra::PRODUCT %> installation detected, skipping download - goto key_create -) else ( - @echo No existing installation of <%= ChefUtils::Dist::Infra::PRODUCT %> detected - goto install -) - -:install -@rem If user has provided the custom installation command, execute it -<% if @config[:bootstrap_install_command] %> - <%= @config[:bootstrap_install_command] %> -<% else %> - @rem Install Chef using the MSI installer - - @set "LOCAL_DESTINATION_MSI_PATH=<%= local_download_path %>" - @set "CHEF_CLIENT_MSI_LOG_PATH=%TEMP%\<%= ChefUtils::Dist::Infra::CLIENT %>-msi%RANDOM%.log" - - @rem Clear any pre-existing downloads - @echo Checking for existing downloaded package at "%LOCAL_DESTINATION_MSI_PATH%" - @if EXIST "%LOCAL_DESTINATION_MSI_PATH%" ( - @echo Found existing downloaded package, deleting. - @del /f /q "%LOCAL_DESTINATION_MSI_PATH%" - @if ERRORLEVEL 1 ( - echo Warning: Failed to delete pre-existing package with status code !ERRORLEVEL! > "&2" - ) - ) else ( - echo No existing downloaded packages to delete. - ) - - @rem If there is somehow a name collision, remove pre-existing log - @if EXIST "%CHEF_CLIENT_MSI_LOG_PATH%" del /f /q "%CHEF_CLIENT_MSI_LOG_PATH%" - - @echo Attempting to download client package using PowerShell if available... - @set "REMOTE_SOURCE_MSI_URL=<%= msi_url('%MACHINE_OS%', '%MACHINE_ARCH%', 'PowerShell') %>" - @set powershell_download=powershell.exe -ExecutionPolicy Unrestricted -InputFormat None -NoProfile -NonInteractive -File <%= bootstrap_directory %>\wget.ps1 "%REMOTE_SOURCE_MSI_URL%" "%LOCAL_DESTINATION_MSI_PATH%" - @echo !powershell_download! - @call !powershell_download! - - @set DOWNLOAD_ERROR_STATUS=!ERRORLEVEL! - - @if ERRORLEVEL 1 ( - @echo Failed PowerShell download with status code !DOWNLOAD_ERROR_STATUS! > "&2" - @if !DOWNLOAD_ERROR_STATUS!==0 set DOWNLOAD_ERROR_STATUS=2 - ) else ( - @rem Sometimes the error level is not set even when the download failed, - @rem so check for the file to be sure it is there -- if it is not, we will retry - @if NOT EXIST "%LOCAL_DESTINATION_MSI_PATH%" ( - echo Failed download: download completed, but downloaded file not found > "&2" - set DOWNLOAD_ERROR_STATUS=2 - ) else ( - echo Download via PowerShell succeeded. - ) - ) - - @if NOT %DOWNLOAD_ERROR_STATUS%==0 ( - @echo Warning: Failed to download "%REMOTE_SOURCE_MSI_URL%" to "%LOCAL_DESTINATION_MSI_PATH%" - @echo Warning: Retrying download with cscript ... - - @if EXIST "%LOCAL_DESTINATION_MSI_PATH%" del /f /q "%LOCAL_DESTINATION_MSI_PATH%" - - @set "REMOTE_SOURCE_MSI_URL=<%= msi_url('%MACHINE_OS%', '%MACHINE_ARCH%') %>" - cscript /nologo <%= bootstrap_directory %>\wget.vbs /url:"%REMOTE_SOURCE_MSI_URL%" /path:"%LOCAL_DESTINATION_MSI_PATH%" - - @if NOT ERRORLEVEL 1 ( - @rem Sometimes the error level is not set even when the download failed, - @rem so check for the file to be sure it is there. - @if NOT EXIST "%LOCAL_DESTINATION_MSI_PATH%" ( - echo Failed download: download completed, but downloaded file not found > "&2" - echo Exiting without bootstrapping due to download failure. > "&2" - exit /b 1 - ) else ( - echo Download via cscript succeeded. - ) - ) else ( - echo Failed to download "%REMOTE_SOURCE_MSI_URL%" with status code !ERRORLEVEL!. > "&2" - echo Exiting without bootstrapping due to download failure. > "&2" - exit /b 1 - ) - ) - - @echo Installing downloaded client package... - - <%= install_chef %> - - @if ERRORLEVEL 1 ( - echo <%= ChefUtils::Dist::Infra::CLIENT %> package failed to install with status code !ERRORLEVEL!. > "&2" - echo See installation log for additional detail: %CHEF_CLIENT_MSI_LOG_PATH%. > "&2" - ) else ( - @echo Installation completed successfully - del /f /q "%CHEF_CLIENT_MSI_LOG_PATH%" - ) - -<% end %> - -@rem This line is required to separate the key_create label from the "block boundary" -@rem Removing these lines will cause the error "The system cannot find the batch label specified - key_create" -:key_create -@endlocal - -@echo off - -<% if client_pem -%> -> <%= bootstrap_directory %>\client.pem ( - <%= escape_and_echo(::File.read(::File.expand_path(client_pem))) %> -) -<% end -%> - -echo Writing validation key... - -<% if validation_key -%> -> <%= bootstrap_directory %>\validation.pem ( - <%= escape_and_echo(validation_key) %> -) -<% end -%> - -echo Validation key written. -@echo on - -<% if secret -%> -> <%= bootstrap_directory %>\encrypted_data_bag_secret ( - <%= encrypted_data_bag_secret %> -) -<% end -%> - -<% unless trusted_certs_script.empty? -%> - @if NOT EXIST <%= bootstrap_directory %>\trusted_certs ( - mkdir <%= bootstrap_directory %>\trusted_certs - ) - ) - -<%= trusted_certs_script %> -<% end -%> - -<%# Generate Ohai Hints -%> -<% unless @config[:hints].nil? || @config[:hints].empty? -%> - @if NOT EXIST <%= bootstrap_directory %>\ohai\hints ( - mkdir <%= bootstrap_directory %>\ohai\hints - ) - -<% @config[:hints].each do |name, hash| -%> -> <%= bootstrap_directory %>\ohai\hints\<%= name %>.json ( - <%= escape_and_echo(hash.to_json) %> -) -<% end -%> -<% end -%> - -> <%= bootstrap_directory %>\client.rb ( - <%= config_content %> -) - -> <%= bootstrap_directory %>\first-boot.json ( - <%= first_boot %> -) - -<% unless client_d.empty? -%> - @if NOT EXIST <%= bootstrap_directory %>\client.d ( - mkdir <%= bootstrap_directory %>\client.d - ) - - <%= client_d %> -<% end -%> - -@echo Starting <%= ChefUtils::Dist::Infra::CLIENT %> to bootstrap the node... -<%= start_chef %> |