ansible.windows.win_package 将库存机器详细信息传递给 msi 参数

ansible.windows.win_package 将库存机器详细信息传递给 msi 参数

ansible.windows.win_package我正在尝试在模块的帮助下安装 MSI 文件。
其中一个参数需要保存应用服务器机器名称。
尝试以下语法 - 不起作用(我缩小了以下任务文件示例中的参数列表):

- name: Install Server.msi center_primary_dbserver
  ansible.windows.win_package:
    path: c:\r10_files\Server.msi
    arguments:
      ...
      AUTH=WINDOWS
      APPSERVER={{ center_primary_appservers }}
      RABBITSERVER={{ center_qservers.hosts[0] }}
      ... 
      THUMBPRINT={{ cert_thumbprint }}
      SECURED=1
      SQLSERVERNAME={{ inventory_hostname_short }}
      LOG_SIZE=100
      ...
  when: "'center_primary_dbservers' in group_names"

这是我的库存文件的一部分:

---
all:
  children:
    root:
      children:
        center:
          children:
            center_primary_appservers:
              hosts:
                vm1.domain.com:
            center_qservers:
              hosts:
                vm2.domain.com:
            center_primary_dbservers:
              hosts:
                vm3.domain.com:

我们可以看到 -
我需要将center_primary_appserver机器的值放在APPSERVER参数中,
将机器的值放在参数center_qserver中。 为此,我创建了一个单独的任务文件,其结果用变量注册,如下所示:RABBITSERVER
THUMBPRINTcert_thumbprint

- name: Import certificate thumbprint
  ansible.windows.win_certificate_store:
    path: "{{ cert_path.files[0].path }}"
    file_type: pkcs12
    password: "FooF!ght3rs"
    store_location: LocalMachine
    key_storage: machine
    state: present
  become: yes
  become_method: runas
  become_user: SYSTEM
  register: cert_thumbprint
  when: "'certificate_autohrities' in group_names"

因此,目前执行此任务会产生以下错误:

{
    "changed": false,
    "invocation": {
        "module_args": {
            "arguments":
            ... 
            THUMBPRINT={'changed': False, 'skipped': True, 
                        'skip_reason': 'Conditional result was False'} 
            RABBIT_PARENT_SERVER=center_qservers.hosts[0] 
            SECURED=1
            SQLSERVERNAME=vm3
            LOG_SIZE=100 
            ...         
           }
        }
    }
}

总结一下这个问题:
正确的语法是什么:

  • 在 MSI 参数中分配-来自另一个任务文件的注册变量(在我们的示例中cert_thumbprint:)?
  • 在 MSI 参数中分配-来自库存的机器变量(在我们的示例中:center_primary_appserverscenter_qservers.hosts[0])?

相关内容