2014-10-17 54 views

回答

4

Ansible documentation的例子似乎表明究竟是如何做到這一點:

# Creates a new ec2 key pair named `example` if not present, returns generated 
# private key 
- name: example ec2 key 
    local_action: 
    module: ec2_key 
    name: example 

# Creates a new ec2 key pair named `example` if not present using provided key 
# material 
- name: example2 ec2 key 
    local_action: 
    module: ec2_key 
    name: example2 
    key_material: 'ssh-rsa AAAAxyz...== [email protected]' 
    state: present 

# Creates a new ec2 key pair named `example` if not present using provided key 
# material 
- name: example3 ec2 key 
    local_action: 
    module: ec2_key 
    name: example3 
    key_material: "{{ item }}" 
    with_file: /path/to/public_key.id_rsa.pub 
+0

是否可以詳細一點的是提供如'key_material'選項輸入用戶的公鑰的目的是什麼?啓動實例時,會創建一個「pem」文件,而不用提示輸入公共密鑰。 – pkaramol 2017-10-09 11:56:03

-1

但你不能保存生成的私鑰,所以這種方法是不恰當的。不使用ec2_key模塊,而是使用命令模塊並使用aws cli生成並將私鑰保存在pem文件中。例如。

- command: /usr/local/bin/aws ec2 create-key-pair --key-name keypair_name > ~/keypair_name.pem 
    register: keypair 
6

工作示例:

- name: Create an EC2 key 
    ec2_key: 
    name: "mykey" 
    region: "eu-west-1" 
    register: ec2_key 

- name: save private key 
    copy: 
    content: "{{ ec2_key.key.private_key }}" 
    dest: "./aws-private.pem" 
    mode: 0600 
    when: ec2_key.changed 
相關問題