如何通过 powershell 在 Azure 虚拟机上远程 运行 puppet bolt 命令

How to run puppet bolt command remotely on Azure Virtual Machine through powershell

我正在尝试 运行 低于 puppet bolt command 用于远程 Azure VMpowershell

bolt command run ipconfig --targets winrm://158.28.0.546 --no-ssl -user testuser123 -password test@84p

在 powershell 中执行上述命令时出现以下错误

Failed on 192.168.0.140:

Timeout after 10 seconds connecting to 192.168.0.140

Failed on 1 target: 192.168.0.140

如何解决上述问题

更新 1:

WinRM 在远程 Azure Virtual Machine 上启用。对于 public 网络,甚至 FirewallAzure VM 上也被禁用。

Azure Portal 中添加 DNS name 后,出现如下错误

Failed to connect to https://testazurevm.westus.cloudapp.azure.com:5986/wsman:

No connection could be made because target machine actively refused it

对于这个问题,错误显示尝试连接后超时。一般是因为端口不允许你连接。据我所知应该有两个原因。一是防火墙不允许从该端口访问。还有一个就是端口没有被监听

对于你来说,你可以检查防火墙是否允许WinRM端口,以及VM中是否启用了WinRM。

按照下面文章中给出的以下步骤操作后,问题得到解决。

https://docs.microsoft.com/en-us/azure/marketplace/cloud-partner-portal/virtual-machine/cpp-configure-winrm-after-vm-creation

  1. 导航到 blade 虚拟机 > > Settings/Networking.
  2. 单击 NSG 名称以显示其属性:在 设置、select 下 入站安全规则 以显示此 blade。
  3. 单击 +添加 为 TCP 端口 5986 创建名为 WinRM_HTTPS 的新规则。
  4. 在您完成提供值后单击确定

配置 VM 以启用 WinRM:

下载并复制以下内容到远程机器。 (从提供的 link 获取这些文件。)

  • 配置 WinRM。ps1
  • makecert.exe
  • winrmconf.cmd

运行 远程虚拟机中的命令。

ConfigureWinRM.ps1 <vm-domain-name>