Ansible 剧本。包含值时始终引用模板表达式括号
Ansible playbook. Always quote template expression brackets when hey contain a value
我在这个 ansible 剧本中遇到错误 运行。它只是尝试通过在 ansible facts 中查看 mount_points 来从 ansible facts 加载特定安装的属性(大小)。 (i) 我的变量表达式以某种方式被错误引用,尝试了括号和引号的一些排列。 (ii) 一旦我修复了引号,底层命令是否会真正找到并将所需的事实属性提取到我的变量中 mountsize
?
- hosts: target_hosts
vars:
mountsize: "999"
tasks:
- name: Collect only facts returned by facter
setup:
fact_path : "/etc/ansible/facts.d"
- debug:
var: "{{ ansible_facts['ansible_mounts' | selectattr('mount', 'equalto', '/apps') | map(attribute='size_total') | "{{mountsize}}"] }}"
mountsize 的预期示例输出(以字节为单位):
234567891012
您的代码存在许多问题,包括您使用大括号 ({{ }}
)、您引用 ansible_facts 的方式以及您尝试将值赋给的方式mountsize
变量
尝试:
- set_fact:
mountsize: "{{ ansible_mounts | selectattr('mount', 'equalto', '/apps') | map(attribute='size_total') | first }}"
- debug:
var: mountsize
我在这个 ansible 剧本中遇到错误 运行。它只是尝试通过在 ansible facts 中查看 mount_points 来从 ansible facts 加载特定安装的属性(大小)。 (i) 我的变量表达式以某种方式被错误引用,尝试了括号和引号的一些排列。 (ii) 一旦我修复了引号,底层命令是否会真正找到并将所需的事实属性提取到我的变量中 mountsize
?
- hosts: target_hosts
vars:
mountsize: "999"
tasks:
- name: Collect only facts returned by facter
setup:
fact_path : "/etc/ansible/facts.d"
- debug:
var: "{{ ansible_facts['ansible_mounts' | selectattr('mount', 'equalto', '/apps') | map(attribute='size_total') | "{{mountsize}}"] }}"
mountsize 的预期示例输出(以字节为单位): 234567891012
您的代码存在许多问题,包括您使用大括号 ({{ }}
)、您引用 ansible_facts 的方式以及您尝试将值赋给的方式mountsize
变量
尝试:
- set_fact:
mountsize: "{{ ansible_mounts | selectattr('mount', 'equalto', '/apps') | map(attribute='size_total') | first }}"
- debug:
var: mountsize