Ansible控制Windows操作步骤

时间:2021-10-04 02:16:07

标签:ansible控制windows主机的配置步骤

环境:

CentOS 6.75(Ansible 2.0)

Windows Server 2012 (PowerShell 4.0)


1、确保PowerShell版本为3.0以上

ansible要控制windows,必须要求windows主机的PowerShell版本为3.0以上,如果版本不满足要求需要升级PowerShell。

查看PowerShell版本可以使用以下命令

$PSVersionTable.PSVersion

如果版本不满足要求,可以使用下面脚本进行升级(将脚本内容保存到一个powershell脚本中,)

首先启动powershell必须是用超管权限启动,然后 set-ExecutionPolicy RemoteSigned ,以后才能正确执行下面的脚本(脚本随便放哪都行,找到放置的对应路径就行)

[html] view plain copy print? # Powershell script to upgrade a PowerShell 2.0 system to PowerShell 3.0   # based on    #   # some Ansible modules that may use Powershell 3 features, so systems may need   # to be upgraded.  This may be used by a sample playbook.  Refer to the windows   # documentation on docs.ansible.com for details.   #    # - hosts: windows   #   tasks:   #     - script: upgrade_to_ps3.ps1      # Get version of OS      # 6.0 is 2008   # 6.1 is 2008 R2   # 6.2 is 2012   # 6.3 is 2012 R2         if ($PSVersionTable.psversion.Major -ge 3)   {       write-host "Powershell 3 Installed already; You don‘t need this"       Exit   }      $powershellpath = "C:\powershell"      function download-file   {       param ([string]$path, [string]$local)       $client = new-object system.net.WebClient       $client.Headers.Add("user-agent", "PowerShell")       $client.downloadfile($path, $local)   }      if (!(test-path $powershellpath))   {       New-Item -ItemType directory -Path $powershellpath   }         # .NET Framework 4.0 is necessary.      #if (($PSVersionTable.CLRVersion.Major) -lt 2)   #{   #    $DownloadUrl = "http://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_x86_x64.exe"   #    $FileName = $DownLoadUrl.Split(‘/‘)[-1]   #    download-file $downloadurl "$powershellpath\$filename"   #    ."$powershellpath\$filename" /quiet /norestart   #}      #You may need to reboot after the .NET install if so just run the script again.      # If the Operating System is above 6.2, then you already have PowerShell Version > 3   if ([Environment]::OSVersion.Version.Major -gt 6)   {       write-host "OS is new; upgrade not needed."       Exit   }         $osminor = [environment]::OSVersion.Version.Minor      $architecture = $ENV:PROCESSOR_ARCHITECTURE      if ($architecture -eq "AMD64")   {       $architecture = "x64"   }     else   {       $architecture = "x86"    }       if ($osminor -eq 1)   {       $DownloadUrl = "http://download.microsoft.com/download/E/7/6/E76850B8-DA6E-4FF5-8CCE-A24FC513FD16/Windows6.1-KB2506143-" + $architecture + ".msu"   }   elseif ($osminor -eq 0)   {       $DownloadUrl = "http://download.microsoft.com/download/E/7/6/E76850B8-DA6E-4FF5-8CCE-A24FC513FD16/Windows6.0-KB2506146-" + $architecture + ".msu"   }   else   {       # Nothing to do; In theory this point will never be reached.       Exit   }      $FileName = $DownLoadUrl.Split(‘/‘)[-1]   download-file $downloadurl "$powershellpath\$filename"    write-host "$powershellpath\$filename"   Start-Process -FilePath "$powershellpath\$filename" -ArgumentList /quiet


执行完了之后,需要重启电脑(自动),然后可以使用get-host查看是否成功升级!

如果升级成功,继续执行下面的配置winrm的脚本


2、执行脚本配置vinrm