使用 to_nice_yaml 维护根元素和嵌套元素将 vars 元素导出到 yaml 文件
Export vars element to yaml file with to_nice_yaml mantaining root and nested elements
我在 ansible 剧本的 vars 组中有变量 CONNECTION_DATA:
vars:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
我需要将 CONNECTION_DATA 及其嵌套元素写入 yaml 文件。为此,我使用以下任务:
vars:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
tasks:
- name: Writing vars to file yaml
ansible.builtin.copy:
dest: /tmp/vars.yml
content: "{{ CONNECTION_DATA | to_nice_yaml }}"
唯一的问题是输出到:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
相反,我想要:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
是否有实现此目的的解决方法?
您可以像这样修改您的剧本:
- hosts: localhost
gather_facts: false
vars:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
tasks:
- name: Writing vars to file yaml
ansible.builtin.copy:
dest: /tmp/vars.yml
content: "{{ _output | to_nice_yaml }}"
vars:
_output: "{{ {'CONNECTION_DATA': CONNECTION_DATA} }}"
结果:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
PWD: xxx
USER: xxx
我在 ansible 剧本的 vars 组中有变量 CONNECTION_DATA:
vars:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
我需要将 CONNECTION_DATA 及其嵌套元素写入 yaml 文件。为此,我使用以下任务:
vars:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
tasks:
- name: Writing vars to file yaml
ansible.builtin.copy:
dest: /tmp/vars.yml
content: "{{ CONNECTION_DATA | to_nice_yaml }}"
唯一的问题是输出到:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
相反,我想要:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
是否有实现此目的的解决方法?
您可以像这样修改您的剧本:
- hosts: localhost
gather_facts: false
vars:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
USER: xxx
PWD: xxx
tasks:
- name: Writing vars to file yaml
ansible.builtin.copy:
dest: /tmp/vars.yml
content: "{{ _output | to_nice_yaml }}"
vars:
_output: "{{ {'CONNECTION_DATA': CONNECTION_DATA} }}"
结果:
CONNECTION_DATA:
HOST: xxx
PORT: xxx
PWD: xxx
USER: xxx