2017-10-12 3 views
0

J'ai du mal à obtenir ce travail sans succès .. Voici mon playbook.Mettre fin à des instances EC2, basé sur des balises, en utilisant Ansible

D'abord une recherche de mes machines par balise et plus tard essayer de les terminer.

- name: EC2 Facts 
    ec2_instance_facts: 
     region: us-east-1 
     filters: 
     "tag:Type": "staging" 
     aws_access_key: "{{ lookup('env', 'AWS_ACCESS_KEY_ID') }}" 
     aws_secret_key: "{{ lookup('env', 'AWS_SECRET_ACCESS_KEY') }}" 
    register: ec2 

    - name: Kill EC2 Instance 
    ec2: 
    instance_ids: "{{ item.instance_id }}" 
    state: "{{ state }}" 
    region: "{{ lookup('env', 'AWS_REGION') }}" 
    aws_access_key: "{{ lookup('env', 'AWS_ACCESS_KEY_ID') }}" 
    aws_secret_key: "{{ lookup('env', 'AWS_SECRET_ACCESS_KEY') }}" 
    with_items: "{{ ec2.instances }}" 

courir comme ceci:

ansible-playbook ec2_id_kill.yml --extra-vars "state=absent" 

Attend ansible ne trouve pas le INSTANCE_ID des faits

+0

Quel est le message d'erreur? Pouvez-vous corriger l'indentation de code? – helloV

+0

"msg": "le paramètre image est requis pour la nouvelle instance" looks ansible ne peut pas obtenir le bon ** instance_id **. J'utilise ansible-2.4 – lnx0101

+0

Il est probable que la valeur 'state' passée n'est pas utilisée/honorée. Il utilise la valeur par défaut de 'present' et essaie de créer une instance. Vous ne pouvez pas aider si vous ne corrigez pas l'indentation. – helloV

Répondre

0

Je me sers de ce mettre fin à l'instance unique, vous pouvez régler cela à mettre fin à plusieurs par exemple:

- name: EC2 Facts 
    ec2_instance_facts: 
    region: us-east-1 
    filters: 
     "tag:Type": "staging" 
    aws_access_key: "{{ lookup('env', 'AWS_ACCESS_KEY_ID') }}" 
    aws_secret_key: "{{ lookup('env', 'AWS_SECRET_ACCESS_KEY') }}" 
    register: ec2 

- name: Kill EC2 Instance 
    ec2: 
    instance_ids: "{{ ec2.instances[0].id }}" 
    state: "{{ state }}" 
    region: "{{ lookup('env', 'AWS_REGION') }}" 
    aws_access_key: "{{ lookup('env', 'AWS_ACCESS_KEY_ID') }}" 
    aws_secret_key: "{{ lookup('env', 'AWS_SECRET_ACCESS_KEY') }}" 

Espoir tha t vous aider

+0

Toujours ne fonctionne pas ... erreur: fatale: [localhost]: ÉCHEC! => {"changed": false, "failed": true, "msg": "le paramètre image est requis pour la nouvelle instance"} – lnx0101

+0

du message indique que vous essayez de créer une nouvelle instance au lieu de terminer l'ancienne. s'il vous plaît partager votre playbook complet –