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
THUMBPRINT
cert_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_appservers
,center_qservers.hosts[0]
)?