Ansible 和 Python Jinja2 过滤器用于收集
Ansible and Python Jinja2 filter for collection
我想将 SSH 密钥添加到 Ansible
中的 dokku
。已添加密钥后,我收到如下错误:
"\r\nDuplicate SSH Key name\r\nsshcommand returned an error: 255\r\n"
我当然可以忽略它,但我可以预先知道密钥是否由 运行 添加:
vagrant@vagrant:/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 }}"
您可能需要如下内容:
- 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
我想将 SSH 密钥添加到 Ansible
中的 dokku
。已添加密钥后,我收到如下错误:
"\r\nDuplicate SSH Key name\r\nsshcommand returned an error: 255\r\n"
我当然可以忽略它,但我可以预先知道密钥是否由 运行 添加:
vagrant@vagrant:/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 }}"
您可能需要如下内容:
- 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