首页 > 解决方案 > 获取正确的 powercli 的结果到 Ansible 寄存器

问题描述

大家好~我有一个问题。

首先..我英语说得不太好。

其实我有一些问题......我想通过powercli向GuestVM添加新的NIC。然后我想在我的 GuestVM 上获取新 NIC 的 MacAddress 并尝试保存我的寄存器变量。

====================================================

< 我的 Ansible 代码 >

---
- name:
  hosts: localhost
  gather_facts: no
  tasks:

  - name: Get new NIC MacAddress
    shell: |
      Connect-VIServer -Server '$my_vCenter' -User $my_ID -Password '$my_PWD' | Out-null
      $vm = get-vm | where { $_.ExtensionData.config.uuid -eq $my_UUID }
      $nic = New-NetworkAdapter -VM $vm -NetworkName "vmnet_10.40.95.x" -WakeOnLan -StartConnected
      $nic.MacAddress

    args:
      executable: /usr/bin/pwsh
    register: new_macaddress
    delegate_to: localhost

  - debug:
      var: new_macaddress.stdout_lines

==================================================== ===================

但是,我的寄存器变量的结果并不好。

==================================================== ===================

<寄存器变量结果>

{
    "changed": false,
    "_ansible_verbose_always": true,
    "new_macaddress.stdout_lines": [
        "",
        "",
        "",
        "",
        "",
        "                      00:50:56:8a:69:11"
    ],
    "_ansible_no_log": false
}

==================================================== ===================

我只想要 MacAddress (00:50:56:8a:69:11),但有很多不必要的东西。(例如 : ””, ””, ””,......)

所以,我想知道我怎样才能只获得macaddress。

请帮帮我T_T

标签: ansiblepowercli

解决方案


看起来您可能有一些其他网络适配器已关闭。他们给出空白的结果,所以只尝试你需要的那个。

$nic1 = $nic | where {$_.NetworkName -eq "vmnet_10.40.95.x"}
$nic1.macaddress

推荐阅读