Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ansible将多个变量输出到同一行_Ansible - Fatal编程技术网

ansible将多个变量输出到同一行

ansible将多个变量输出到同一行,ansible,Ansible,我正在使用win_reg_stat收集注册表中的SQL版本和版本,将它们注册到一个变量中,并将它们写入一个文件。 是否可以将值写入同一行而不是单独的行 - name: get sql version win_reg_stat: path: HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\{{ item }}\Setup name: Version with_items: "{{ sql_versions }}" regist

我正在使用win_reg_stat收集注册表中的SQL版本和版本,将它们注册到一个变量中,并将它们写入一个文件。
是否可以将值写入同一行而不是单独的行

- name: get sql version
  win_reg_stat:
    path: HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\{{ item }}\Setup
    name: Version
  with_items: "{{ sql_versions }}"
  register: sql_version

- name: get sql edition
  win_reg_stat:
    path: HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\{{ item }}\Setup
    name: Edition
  with_items: "{{ sql_versions }}"
  register: sql_edition

- lineinfile:
    dest: /tmp/sql
    line: "{{ inventory_hostname }};{{ item.value }}"
  when: item.exists
  with_items:
    - "{{ sql_version.results }}"
  delegate_to: localhost

- lineinfile:
    dest: /tmp/sql
    line: "{{ inventory_hostname }};{{ item.value }}"
  when: item.exists
  with_items:
    - "{{ sql_edition.results }}"
  delegate_to: localhost
sql_versions变量包含多个项:

sql_versions:
  - MSSQL15.MSSQLSERVER
  - MSSQL14.MSSQLSERVER
  - MSSQL13.MSSQLSERVER
  - MSSQL12.MSSQLSERVER
  - MSSQL11.MSSQLSERVER
  - MSSQL10_50.MSSQLSERVER
  - MSSQL10.MSSQLSERVER
  - MSSQL.1
输出示例:

TASK [licensing : register sql version] *****************************************************************************************************************************************************************************************************
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL15.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL14.MSSQLSERVER', 'ansible_loop_var': 'item'})
ok: [win2019] => (item={'changed': False, 'type': 'REG_SZ', 'raw_value': '13.2.5026.0', 'value': '13.2.5026.0', 'exists': True, 'failed': False, 'item': 'MSSQL13.MSSQLSERVER', 'ansible_loop_var': 'item'}) => {
    "msg": "13.2.5026.0"
}
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL12.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL11.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL10_50.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL10.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL.1', 'ansible_loop_var': 'item'})

TASK [licensing : register sql edition] *****************************************************************************************************************************************************************************************************
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL15.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL14.MSSQLSERVER', 'ansible_loop_var': 'item'})
ok: [win2019] => (item={'changed': False, 'type': 'REG_SZ', 'raw_value': 'Web Edition', 'value': 'Web Edition', 'exists': True, 'failed': False, 'item': 'MSSQL13.MSSQLSERVER', 'ansible_loop_var': 'item'}) => {
    "msg": "Web Edition"
}
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL12.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL11.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL10_50.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL10.MSSQLSERVER', 'ansible_loop_var': 'item'})
skipping: [win2019] => (item={'changed': False, 'exists': False, 'failed': False, 'item': 'MSSQL.1', 'ansible_loop_var': 'item'})
你试过这个吗

- lineinfile:
    dest: /tmp/sql
    line: "{{ inventory_hostname }};{{ item.value }}"
  when: item.exists
  with_items:
    - "{{ sql_version.results }}"
    - "{{ sql_edition.results }}"
  delegate_to: localhost
请按以下方式尝试(未测试)


谢谢,但这不起作用,因为有时它不包含属性“exists”,因为找不到版本,然后失败。您可以将其添加到条件“when:item.exists and item.version is defined”中,谢谢,但这也会在单独的行中输出结果。
- lineinfile:
    dest: /tmp/sql
    line: "{{ inventory_hostname }};{{ item.version.value }};{{ item.edition.value }}"
  when: item.exists
  with_items:
    - "{ version: {{sql_version.results}}, edition: {{sql_edition.results}} }"
  delegate_to: localhost