When setting sysctl parameters I use the following variable:
kernel_params:
kernel.sem: 250 32000 100 128
kernel.shmmni: 4096
net.core.rmem_max: 4194304
net.core.rmem_default: 262144
net.core.wmem_max: 1048576
net.core.wmem_default: 262144
...
Then in my role I do the following:
- name: Change kernel parameters
sysctl:
name: "{{ item.key }}"
value: "{{ item.value }}"
state: present
with_dict: "{{ kernel_params }}"
In Ansible 1.9.4 this worked fine, but when I tried it with Ansible 2.1.0 I get the following error:
TASK [db-sysprep : Change kernel parameters] ****************************
[DEPRECATION WARNING]: Skipping task due to undefined Error, in the future this will be a fatal error.:
'kernel' is undefined. This feature will be removed in a future release. Deprecation warnings can be
disabled by setting deprecation_warnings=False in ansible.cfg.
fatal: [rlxpool51.corp.ads]: FAILED! => {"failed": true, "msg": "with_dict expects a dict"}
It seems like the "." in the key name is causing confusion, although I'm not really sure why (or how to fix it).
Thanks,
Ryan