Я пишу роль. В defaults / main.yml у меня есть:
sysctl:
net.inet.ip.forwarding: 1
vm.swappiness: 10
tasks / main.yml:
- name: Setup sysctl.conf
sysctl: name="{{ item.0 }}" value="{{ item.1 }}" state=present
become: yes
loop: "{{ sysctl_default | combine(sysctl) | dictsort }} "
Если пользователь не определит sysctl
в vars ansible, возникнет ошибка. Параметры по умолчанию должны быть установлены, если пользователь пропустит эти настройки. Как создать пустой словарь, если пользователь установил параметры sysctl в своей книге игр? Такое выражение {{ sysctl_default | combine(sysctl | default({})) | dictsort }}
не работает:
fatal: [192.168.140.96]: FAILED! => {"msg": "|combine expects dictionaries, got AnsibleUndefined"}