Ansible根据条件更改默认值
Ansible change default value according to a condition
我需要帮助 Ansible 并使用另一个用户定义的变量根据条件创建变量。
我写了这样的东西,但我很确定这是错误的脚本。
所以“{{ vcpu_size }}”必须根据用户定义的“{{ vm_size }}”来定义,我不知道该怎么做
感谢帮助
---
- name: Deploy VM on XenServer
hosts: XEN_Server
become: true
tasks:
- name: Load VPS specs for chosen type
set_fact:
vcpu_size: "{{ '2' if ({{ vm_size }} == 'S') }}"
vcpu_size: "{{ '4' if ({{ vm_size }} == 'M') }}"
vcpu_size: "{{ '6' if ({{ vm_size }} == 'L') }}"
vcpu_size: "{{ '8' if ({{ vm_size }} == 'XL') }}"
- debug:
msg: "Write {{ vcpu_size }} and to be sure {{ vm_size }}"
你可以像这样使用 Jinja 表达式:
vcpu_size: "{% if vm_size == 'S' %}2{% elif vm_size == 'M' %}4{% else %}some_def_value_here{% endif %}"
您可以在 group_vars/all
或其他地方定义大小(例如角色的变量,或在剧本本身):
sizes:
S: 2
M: 4
L: 6
XL: 8
然后像这样使用它:
set_fact:
vcpu_size: "{{ sizes[vm_size] }}"
我需要帮助 Ansible 并使用另一个用户定义的变量根据条件创建变量。 我写了这样的东西,但我很确定这是错误的脚本。
所以“{{ vcpu_size }}”必须根据用户定义的“{{ vm_size }}”来定义,我不知道该怎么做
感谢帮助
---
- name: Deploy VM on XenServer
hosts: XEN_Server
become: true
tasks:
- name: Load VPS specs for chosen type
set_fact:
vcpu_size: "{{ '2' if ({{ vm_size }} == 'S') }}"
vcpu_size: "{{ '4' if ({{ vm_size }} == 'M') }}"
vcpu_size: "{{ '6' if ({{ vm_size }} == 'L') }}"
vcpu_size: "{{ '8' if ({{ vm_size }} == 'XL') }}"
- debug:
msg: "Write {{ vcpu_size }} and to be sure {{ vm_size }}"
你可以像这样使用 Jinja 表达式:
vcpu_size: "{% if vm_size == 'S' %}2{% elif vm_size == 'M' %}4{% else %}some_def_value_here{% endif %}"
您可以在 group_vars/all
或其他地方定义大小(例如角色的变量,或在剧本本身):
sizes:
S: 2
M: 4
L: 6
XL: 8
然后像这样使用它:
set_fact:
vcpu_size: "{{ sizes[vm_size] }}"