2016-03-30 7 views
3

Я хочу развернуть дополнительные mysql пользователей - если установлено. Так что я использую словарь. Например:Наблюдаемая проверка, если словарь существует

mysql_additional_users: 
    user1: 
    password: mysecretpass 
    privs: "database1.*:ALL" 

который работает нормально, если определено определение. Если нет - это терпит неудачу.

Хотя я пытался определить, если ДИКТ определяется:

- name: create additional mysql users 
    mysql_user: name={{ item.key }} password={{ item.value.password }} priv={{ item.value.privs }} state=present  
    with_dict: "{{ mysql_additional_users }}" 
    when: mysql_additional_users is defined 

Но я всегда получаю сообщение об ошибке:

fatal: [<hostname>]: FAILED! => {"failed": true, "msg": "ERROR! 'mysql_additional_users' is undefined"} 

Любые идеи?

ответ

5

with_dict оценивается всегда. Если вы хотите использовать его с when, попробуйте следующее:

with_dict: mysql_additional_users | default({}) 
when: mysql_additional_users is defined 

будет вычисляться пустым Dict, но задача будет пропущена when.

+0

работает отлично! – derRobert