【发布时间】:2018-04-25 05:31:38
【问题描述】:
我正在使用 Ansible 编写一个简单的任务来创建用户并添加现有的 RSA 公钥。这是我写的代码:
- name: SYSTEM - Create test user
tags: system-user
user:
name: "{{ test_user }}"
state: present
createhome: yes
- name: SYSTEM - Add existing pub key for test user
tags: system-user
copy:
content: "{{ test_user_pubkey }}"
dest: "/tmp/test_user_id_rsa.pub"
force: no
owner: "{{ test_user }}"
group: "{{ test_user }}"
mode: 0600
- name: SYSTEM - Set authorized key for test_user took from file
tags: system-user
authorized_key:
user: "{{ test_user }}"
state: present
key: "{{ lookup('file', '/tmp/test_user_id_rsa.pub') }}"
我编写的代码并不优雅,我认为最好的选择是将现有的 RSA 公钥与用户创建块一起添加,以便创建和填充 authorized_keys 文件。
我已经阅读了Ansible user module 但 ssh_key_file 方法不包括将现有 pub 密钥的值回显到authorized_keys 文件的可能性(最终目的是能够使用用户远程连接 ssh和私钥)。
ssh_key_file = 可选择指定 SSH 密钥文件名。如果这是一个 相对文件名,那么它将相对于用户的家 目录。
是否可以使用 Ansible 在用户模块中管理此过程?
【问题讨论】:
-
所以你写了一些代码,甚至在发布到 StackOverflow 之前都懒得尝试?因为它会在执行时失败。它会说
/tmp/test_user_id_rsa.pub不存在(除非你的本地计算机上有乱七八糟的东西)。 -
您说得对,错误消息是我在测试时得到的,但我忘了在帖子中提及。我将对其进行编辑以进行澄清,并在以后的帖子中更加小心。此外,我不太确定为什么要使用代码获取它,因为该文件在运行副本后存在。