我是 Ansible 的新手,我正在努力在远程机器上创建一个新用户并将 ssh 密钥(用于 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是由选项中使用的路径generate_ssh_key的user模块。它不是上传到创建的远程用户的本地 SSH 密钥的路径。
如果要上传SSH密钥,则必须使用该copy模块
- 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 语法。
| 归档时间: | 
 | 
| 查看次数: | 7514 次 | 
| 最近记录: |