Ansible:创建新用户并从本地系统复制 ssh-keys
Ansible: Create new user and copy ssh-keys from local system
我是 Ansible 的新手,我正在努力在远程机器上创建一个新用户并将 ssh-keys(对于 git)从本地机器复制到远程机器的新用户。
基本上,从 localmachine/somepath/keys/
到 remotemachine/newuser/home/.ssh/
.
到目前为止我尝试了:
- name: Create user
hosts: remote_host
remote_user: root
tasks:
- name: Create new user
user: name=newuser ssh_key_file=../keys/newuser
虽然这会在远程计算机上创建新用户,但它不会复制任何密钥(.ssh 仍然是空的)。我还尝试将 authorized_key
作为第二个任务,但在尝试复制私钥时只收到一条错误消息。
在我已经 运行 并且 newuser
已经存在之后,是否仍然可以添加密钥。即,我可以再次 运行 还是必须先删除新用户?
ssh_key_file
是user
module的选项generate_ssh_key
使用的路径。它不是要上传到创建的远程用户的本地 SSH 密钥的路径。
如果要上传 SSH 密钥,必须使用 copy
module
- name: Create user
hosts: remote_host
remote_user: root
tasks:
- name: Create new user
user:
name: newuser
- name: Create .ssh folder
file:
path: ~newuser/.ssh
state: directory
owner: newuser
group: newuser
mode: 0700
- name: Upload SSH key
copy:
src: ../keys/newuser
dest: ~newuser/.ssh/id_rsa
owner: newuser
group: newuser
mode: 0700
顺便说一句,建议使用 YAML 语法而不是 args 语法。
我是 Ansible 的新手,我正在努力在远程机器上创建一个新用户并将 ssh-keys(对于 git)从本地机器复制到远程机器的新用户。
基本上,从 localmachine/somepath/keys/
到 remotemachine/newuser/home/.ssh/
.
到目前为止我尝试了:
- name: Create user
hosts: remote_host
remote_user: root
tasks:
- name: Create new user
user: name=newuser ssh_key_file=../keys/newuser
虽然这会在远程计算机上创建新用户,但它不会复制任何密钥(.ssh 仍然是空的)。我还尝试将 authorized_key
作为第二个任务,但在尝试复制私钥时只收到一条错误消息。
在我已经 运行 并且 newuser
已经存在之后,是否仍然可以添加密钥。即,我可以再次 运行 还是必须先删除新用户?
ssh_key_file
是user
module的选项generate_ssh_key
使用的路径。它不是要上传到创建的远程用户的本地 SSH 密钥的路径。
如果要上传 SSH 密钥,必须使用 copy
module
- name: Create user
hosts: remote_host
remote_user: root
tasks:
- name: Create new user
user:
name: newuser
- name: Create .ssh folder
file:
path: ~newuser/.ssh
state: directory
owner: newuser
group: newuser
mode: 0700
- name: Upload SSH key
copy:
src: ../keys/newuser
dest: ~newuser/.ssh/id_rsa
owner: newuser
group: newuser
mode: 0700
顺便说一句,建议使用 YAML 语法而不是 args 语法。