I have a few questions on handling the creation/tear down of an ec2
instance.
I have a role ( its a task atm, but Ill be migrating it over')
- name: dallascowboys | Deployments
include_tasks:
tasks/customer-instance.yml
vars:
customer_name: dallascowboys
customer_ip: '10.99.100.10'
customer_instance_count: 1
customer_eip_state: present
customer_eni_state: present
tags:
- dallascowboys
- name: Customer | Configure ENI
ec2_eni:
state: "{{ customer_eni_state }}"
description: '{{ customer_name }} ENI'
private_ip_address: '{{ customer_ip }}'
region: "{{ vpc_region }}"
security_groups: "{{ secgrp_appliance_id }}"
subnet_id: "{{ public_subnet_id }}"
register: customer_eni
- name: Customer | Configure EIP
ec2_eip:
state: "{{ customer_eip_state }}"
region: "{{ vpc_region }}"
in_vpc: true
device_id: "{{ customer_eni.interface.id }}"
- name: Customer | Configure EC2 Instance
ec2:
key_name: "{{ aws_mfacloud_key }}"
instance_type: t2.medium
image: "{{ mfa_ami }}"
region: "{{ vpc_region }}"
instance_profile_name: '{{ role_appliance_name }}'
network_interfaces: "{{ customer_eni.interface.id }}"
user_data: "{{ lookup('file','windows-remoting') }}"
instance_tags:
Name: ec2-cloudmfa-{{ customer_name }}-prd
Customer: "{{ customer_name }}"
Environment: prd
Patch Group: cloudmfa
Ansible: true
AMI: True
count_tag:
Name: ec2-cloudmfa-{{ customer_name }}-prd
exact_count: "{{ customer_instance_count }}"
register: instance
- name: debug instance
debug:
var: instance
- name: Customer | Grab Password
ec2_win_password:
instance_id: "{{ instance.tagged_instances[0].id }}"
region: "{{ vpc_region }}"
key_file: "~/.ssh/{{ aws_mfacloud_key }}.pem"
wait: yes
wait_timeout: 300
register: winpass
This works OK to spin an instance up, my issue is when I want to destroy
the instance for some reason. I first set count to 0, which causes the job
to fail because the ec2_win_password module. So I run it again, with eip
absent and this works, but again fails on the ec2_win_password. I then run
it a third time with eni absent, and it fails with the following error.
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
> "state is absent but all of the following are missing: eni_id"}
My issues are. Is there a better way to create these instances? Its going
to be ~20 or so instances, that are configured the same, but will end up
with different software on them. So I cant just say "spin up 20
instances". Is there a better way to have ec2_win_password only execute
when I have created, or started an instance? As opposed to turned
off/terminated an instance? I assume im missing something obvious about
the tear down of the EIP and ENI as well.
Sorry for the vagueness here, I know im probably missing some info that
would be helpful so please just ask.
--
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/a3f01b40-0086-494e-93f6-f9343a1a29c4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.