Hello,
Thanks for Ansible, so far I am enjoying it but have hit an SSH
authentication issue that I am trying to understand.
Ansible version:
```
ansible 2.4.1.0
```
I am trying to create an EC2 instance and run some initial configuration
commands on the new instance (using a dynamic inventory). So far everything
works well up until I try to SSH to the new instance to run the initial
configuration commands at which point I get a permission denied public key
error for the SSH connection.
I would like to know what is considered the best practice for configuring a
new EC2 instance or if there is some easy way for me to modify the existing
playbook to do what I want.
The full playbook is:
```
---
- name: Provision database servers
hosts: localhost
connection: local
gather_facts: false
vars:
vpc_id: vpc-e0311a87
subnet_id: subnet-eaa88aa3
ami_id: ami-760aaa0f
aws_region: eu-west-1
profile: XXXX
tasks:
- name: Create database server keypair
ec2_key:
region: "{{ aws_region }}"
profile: "{{ profile }}"
name: db-servers
register: keypair
- name: Create security group for database servers
ec2_group:
profile: "{{ profile }}"
name: "postgres-ssh"
description: "Database security group"
vpc_id: "{{ vpc_id }}"
region: "{{ aws_region }}"
rules:
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 5432
to_port: 5432
cidr_ip: 0.0.0.0/0
register: aws_sg
- name: Provision database servers
ec2:
profile: "{{ profile }}"
key_name: db-servers
instance_type: t2.micro
image: "{{ ami_id }}"
region: "{{ aws_region }}"
vpc_subnet_id: "{{ subnet_id }}"
group_id: "{{ aws_sg.group_id }}"
wait: true
exact_count: 1
count_tag:
Name: Database
instance_tags:
Name: Database
assign_public_ip: yes
register: ec2
- name: Add new instances to host group
add_host:
name: "{{ item.public_ip }}"
groups: postgres
with_items: "{{ ec2.tagged_instances }}"
- name: Wait for SSH to come up
wait_for:
host: "{{ item.public_dns_name }}"
port: 22
delay: 15
timeout: 320
state: started
with_items: "{{ ec2.tagged_instances }}"
#- debug:
#var: keypair
- name: Configure database instances
hosts: postgres
user: ec2-user
gather_facts: false
roles:
- postgres
```
The error occurs when I get to the *Configure database instances* task.
At this point I am assuming the public key has been configured on the new
EC2 instance and I need to specify the correct private key (generated via
ec2_key) when I try to SSH to the server to run the configuration role.
Can somebody please advise how I should fix this issue?
Thanks for any help.
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/319c204a-2935-4394-8066-b5bac208f095%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.