2016-04-26 105 views
2

我有以下剧本:部署SSH密钥服务器

--- 
- name: provision toms keys 
    hosts: ssh4.demo.com 
    tasks: 
    - name: ensure user tom is present 
     user: name=tom state=present 

    - name: ensure private key and public one are present 
     copy: src=ssh_keys/tom dest=/.ssh mode=0600 
     with_items: 
     - id_rsa.pub 
     - id_rsa 

- name: provision toms public keys 
    hosts: ssh1.demo.com 

    sudo: yes 

    tasks: 

    - user: name=tom comment="Add tom" group=staff 

    - name: Placing key 
     authorized_key: user=tom key="{{ lookup('file', 'ssh_keys/tom/id_rsa.pub') }}" 

我有一个包含我的两个SSH公钥和私钥这样的本地目录:

./ssh_keys 
./ssh_keys/david 
./ssh_keys/david/id_rsa 
./ssh_keys/david/id_rsa.pub 
./ssh_keys/fred 
./ssh_keys/fred/id_rsa 
./ssh_keys/fred/id_rsa.pub 
./ssh_keys/joe 
./ssh_keys/joe/id_rsa 
./ssh_keys/joe/id_rsa.pub 
./ssh_keys/paul 
./ssh_keys/paul/id_rsa 
./ssh_keys/paul/id_rsa.pub 
./ssh_keys/peter 
./ssh_keys/peter/id_rsa 
./ssh_keys/peter/id_rsa.pub 
./ssh_keys/tom 
./ssh_keys/tom/id_rsa 
./ssh_keys/tom/id_rsa.pub 

我需要创建一些可用于将密钥推送到hosts字段中定义的各种主机的剧本。

但是,.ssh密钥目录创建不正确。即称为tom的目录在id_rsa和id_rsa.pub目录下被创建。

例如

/home/tom/.ssh/id_rsa/tom/id_rsa 

有没有人有这方面的一个很好的示例剧本?

回答

3

尝试:

--- 
- name: provision toms keys 
    hosts: ssh4.demo.com 
    tasks: 
    - name: ensure user tom is present 
     user: name=tom state=present 

    - name: ensure private key and public one are present 
     copy: src=ssh_keys/tom/ dest=/.ssh mode=0600 

您可以复制整个目录或汤姆汤姆与“嗵/”的内容。 当您复制完整目录时,您也不需要指定文件。