我开始使用Ansible自动创建用户。以下代码创建用户和/home/test_user_003/.ssh/id_rsa.pub文件。
但authorized_key步骤给出了错误"无法在查找中找到文件"。在那里,我可以看到它。
---
- hosts: test
become: true
tasks:
- name: create user
user:
name: test_user_003
generate_ssh_key: yes
group: sudo
ssh_key_passphrase: xyz
- name: Set authorized key
authorized_key:
user: test_user_003
state: present
key: "{{ lookup('file', '/home/test_user_003/.ssh/id_rsa.pub') }}"
(我很想知道为什么"键"使用查找,但仅限于教育)
答案 0 :(得分:4)
您在远程主机上创建用户但尝试在本地主机上查找生成的密钥(ansible中的所有查找都在本地执行)。
您可能想要捕获(注册)用户任务的结果并使用它的字段:
- name: create user
user:
name: test_user_003
generate_ssh_key: yes
group: sudo
ssh_key_passphrase: xyz
register: new_user
- name: Set authorized key
authorized_key:
user: test_user_003
state: present
key: "{{ new_user.ssh_public_key }}"