Ich benutze Ansible, um eine neue EC2-Instanz zu erstellen und versuche, einige Pakete darauf zu installieren. Das Problem ist, dass ich einen neuen Host zu einer Hostgruppe hinzufüge, aber ich kann diese Hostgruppe in einem anderen Spiel nicht sehen. Wenn es "Configure EC2-Instanz" erreicht er sagt:Ansible add_host funktioniert nicht, es überspringt Hosts
PLAY [Configure EC2-Instanz] *************************** ************************************ Skipping: keine Hosts angepasst
Hier wird der Code:
---
- name: Provision an EC2 Instance
hosts: localhost
connection: local
gather_facts: False
tags: provisioning
# Necessary Variables for creating/provisioning the EC2 Instance
vars_files:
- vars/variables.yml
- vars/aws_auth.yml
# Task that will be used to Launch/Create an EC2 Instance
tasks:
- name: Create security group
ec2_group:
aws_access_key: "{{ec2_access_key}}"
aws_secret_key: "{{ec2_secret_key}}"
name: "{{ project_name }}_security_group"
description: "{{ project_name }} security group"
region: "{{ aws_region }}"
rules:
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 80
to_port: 80
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 443
to_port: 443
cidr_ip: 0.0.0.0/0
rules_egress:
- proto: all
cidr_ip: 0.0.0.0/0
register: basic_firewall
- name: Create an EC2 key
ec2_key:
aws_access_key: "{{ec2_access_key}}"
aws_secret_key: "{{ec2_secret_key}}"
name: "{{ project_name }}-{{ env }}-key"
region: "{{ aws_region }}"
register: ec2_key
- name: save private key
copy:
content: "{{ ec2_key.key.private_key }}"
dest: "private_keys/aws-{{ env }}-private.pem"
mode: 0600
when: ec2_key.changed
- name: Create an EC2 instance
ec2:
aws_access_key: "{{ec2_access_key}}"
aws_secret_key: "{{ec2_secret_key}}"
key_name: "{{ project_name }}-{{ env }}-key"
region: "{{ aws_region }}"
group_id: "{{ basic_firewall.group_id }}"
instance_type: "{{ instance_type }}"
image: "{{ ami }}"
wait: yes
instance_tags:
env: "{{ env }}"
count_tag: env
exact_count: 1
register: ec2
- name: Add new instance to host group
add_host:
name: "{{ item.public_dns_name }}"
groups: launched
with_items: "{{ ec2.tagged_instances }}"
- name: Wait for SSH to come up
wait_for:
host: "{{ item.public_dns_name }}"
port: 22
delay: 60
timeout: 320
state: started
with_items: "{{ ec2.tagged_instances }}"
- name: Refresh inventory to ensure new instaces exist in inventory
meta: refresh_inventory
- name: Configure EC2 instance
hosts: launched
gather_facts: False
tasks:
- debug: var=group_names
- debug: msg="{{ inventory_hostname }}"
- debug: var=hostvars[inventory_hostname]
- debug: msg="groups={{groups}}"
run_once: true
- name: install drush
yum: name=drush state=present
- name: install git
yum: name=git state=present
- name: download Drupal
shell: drush dl drupal-7
Hier ist die Ausgabe von add_host:
"add_host": {
"groups": [
"launched"
],
"host_name": "xxx.us-east-2.compute.amazonaws.com",
"host_vars": {}
},
ist hier der Wert der ec2.tagged_instances:
"tagged_instances": [
{
"ami_launch_index": "0",
"architecture": "x86_64",
"block_device_mapping": {
"/dev/sda1": {
"delete_on_termination": true,
"status": "attached",
"volume_id": "vol-0a095bd6e62ca6xxx"
}
},
"dns_name": "xxx.us-east-2.compute.amazonaws.com",
"ebs_optimized": false,
"groups": {
"sg-90a9bxxx": "xxx_automation_security_group"
},
"hypervisor": "xen",
"id": "i-0f39cd12657aad100",
"image_id": "ami-11aa8c74",
"instance_type": "t2.micro",
"kernel": null,
"key_name": "xxx_automation-staging-key",
"launch_time": "2017-07-19T00:12:52.000Z",
"placement": "us-east-2b",
"private_dns_name": "xxx.us-east-2.compute.internal",
"private_ip": "172.31.24.xxx",
"public_dns_name": "xxx.us-east-2.compute.amazonaws.com",
"public_ip": "18.220.52.xxx",
"ramdisk": null,
"region": "us-east-2",
"root_device_name": "/dev/sda1",
"root_device_type": "ebs",
"state": "running",
"state_code": 16,
"tags": {
"env": "staging"
},
"tenancy": "default",
"virtualization_type": "hvm"
}
Bitte geben Sie die gesamte Ausgabe Ihrer ansible Ausführung an. Problem scheint in vorherigen Aufgaben zu sein. – zigarn
Hi techraf, Ich habe den Wert der ec2.tagged_instances und die Ausgabe von add_host hinzugefügt. Vielen Dank. –
Bitte korrigieren Sie den Einzug, es verursacht unnötige Verwirrung (es gibt ein Spiel auf der Aufgaben-Ebene, aber da die Fehlermeldung richtig ist, ist es nur in der Frage). – techraf