2017-05-16 57 views
0

我想添加SSH密钥到dokkuAnsible。当钥匙已经加入我的错误,如:Ansible和Python Jinja2过滤器收集

"\r\nDuplicate SSH Key name\r\nsshcommand returned an error: 255\r\n" 

我当然可以,忽略它,但我能知道前期如果密钥是通过运行补充说:

[email protected]:/home/dokku$ dokku ssh-keys:list 
SHA256:dai6gOKjl1NMD1pre1104aF/Iz8Cfy8gmHdOx4RgZvs NAME="UserA"" 
SHA256:zYYrX2tXt95wRjXFHMcefFkSIHotulkU62kFoaFGV8c NAME="UserB"" 

有什么检查用户是否已经定义的方法?

- name: authorize developers 
    raw: dokku ssh-keys:add {{ item }} {{ ssh_dir }}/{{ item }}.pub 
    when: "{{ item }} not in keys.stdout_lines" 
    with_items: "{{ developers }}" 

回答

0

你可能想要的东西,像下面这样::喜欢的东西

- name: sshcommand list dokku 
    command: sshcommand list dokku 
    changed_when: False 
    register: dokku_ssh_users 
    ignore_errors: true 

- name: dokku ssh-keys:add 
    shell: 'key=$(cat "{{ item.value }}"); echo "$key" | dokku ssh-keys:add {{ item.key }}' 
    when: dokku_ssh_users is defined and dokku_ssh_users.stdout.find(item.key) == -1 
    with_dict: 
    username: path/to/key 
+0

'when'报表不应包括Jinja2的模板定界符 – squixy

+0

我修改了答案删除它们,它应该工作的罚款。 –