用户在特定组中时创建目录

时间:2016-03-11 21:23:04

标签: automation ansible ansible-2.x

我正在尝试执行以下任务,如果用户是hdfsuser组的一部分,则创建目录

- include_vars: ../../security/vars/main.yml 

- name: create user tmp dir /srv/tmp/$USER on gateway
  file: path=/srv/tmp/{{ item.name }} owner={{ item.name }} group={{ item.name }} mode=0755 state=directory
  when: "'hdfsuser' in {{ item.groups }}"
  with_items: ssh_users #this is coming from - include_vars: ../../security/vars/main.yml 
  tags:
    - hadoop

但是得到了这个错误:

fatal: [hadoop-client001.dev.abc.com]: FAILED! => {"failed": true, "msg": "The conditional check ''hdfsuser' in {{ item.groups }}' failed. The error was: template error while templating string: expected token ',', got 'string'. String: {% if 'hdfsuser' in [u'users'] %} True {% else %} False {% endif %}\n\nThe error appears to have been in '/Users/xyz/ansible/roles/luigi/tasks/main.yml': line 81, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: create user tmp dir /srv/tmp/$USER on gateway\n  ^ here\n"}

任何人都知道解决方法吗?

1 个答案:

答案 0 :(得分:2)

when条件已被解释为Jinja2表达式,因此不需要大括号。

when: "'hdfsuser' in item.groups"