簡體   English   中英

如何從 azure devops 管道到本地遠程服務器運行 powershell 命令

[英]How to run powershell command from azure devops pipeline to on-premises remote server

大家好

我已將https://devblogs.microsoft.com/devops/new-ip-firewall-rules-for-azure-devops/ 中列出的所有 IP 范圍添加到我的防火牆中。 但是我仍然無法將 powershell 命令從 azure devops 管道 YAML 運行到我的本地 Windows 服務器。 每次我從微軟獲得新 IP 時,上面提到的站點中都沒有列出。

我可以使用以下 powershell 命令使用本地計算機連接到服務器

下面是我的 yaml 管道腳本

pool:
vmImage: 'windows-latest'

stages:
- stage: 'Deploy'
  jobs:
- deployment: 'Deploy'
environment: 'stage'
strategy:
  runOnce:
    deploy:
      steps:
      - task: PowerShell@2
        inputs:
          targetType: 'inline'
          script: |
            $so = New-PsSessionOption –SkipCACheck -SkipCNCheck
            $username='myUserName'
            $password='myPassword'
            $secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
            $credentials = New-Object System.Management.Automation.PSCredential($username, $secpasswd)
            Enter-PSSession -ComputerName xyz.com -Credential $credentials -UseSSL -SessionOption $so
            write-output 'host name is '+$(hostname)

我收到錯誤:

Enter-PSSession:連接到遠程服務器 xyz.com 失敗並顯示以下錯誤消息:WinRM 無法完成操作。 驗證指定的計算機名稱是否有效、該計算機是否可通過網絡訪問以及 WinRM 服務的防火牆例外是否已啟用並允許從該計算機進行訪問。 默認情況下,公共配置文件的 WinRM 防火牆例外限制對同一本地子網中的遠程計算機的訪問。 有關詳細信息,請參閱 about_Remote_Troubleshooting。

是與防火牆相關的問題還是我使用 azure devops 執行 Powershell 腳本的方法錯誤?

Microsoft 雲代理無法訪問您的本地遠程服務器。 如果在 Microsoft 雲代理上運行管道,則無法連接到本地遠程服務器。 除非您的本地遠程服務器可以從公共網絡訪問。

由於您可以使用本地計算機連接到本地服務器。 您可以在本地計算機上創建自托管代理 並通過將pool指定為deployment job本地代理池,在此自托管代理上運行deployment job 然后您將能夠連接到遠程本地服務器。 見下文

- deployment: Deploy
  displayName: deploy Web App
  #specify the local agent pool to run deployment job on self-hosted agent
  pool: default
  environment: stage
  strategy:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM