41 lines
1.3 KiB
YAML
41 lines
1.3 KiB
YAML
- name: Launch Instance
|
|
ec2:
|
|
group_id: 'sg-07bb906d' # jenkins-slave_new
|
|
count: 1
|
|
instance_type: 'm3.large'
|
|
image: '{{ item.image }}'
|
|
wait: true
|
|
region: 'us-east-1'
|
|
keypair: '{{ keypair }}'
|
|
aws_access_key: "{{ aws_access_key|default(lookup('env', 'AWS_ACCESS_KEY')) }}"
|
|
aws_secret_key: "{{ aws_secret_key|default(lookup('env', 'AWS_SECRET_KEY')) }}"
|
|
instance_tags:
|
|
jenkins: jenkins_ansible_pr_test
|
|
register: ec2
|
|
with_items: slaves
|
|
# We could do an async here, that would speed things up
|
|
|
|
|
|
- name: Wait for SSH
|
|
wait_for:
|
|
host: "{{ item['instances'][0]['public_ip'] }}"
|
|
port: 22
|
|
delay: 10
|
|
timeout: 320
|
|
state: started
|
|
with_items: ec2.results
|
|
|
|
- name: Wait a little longer for centos
|
|
pause: seconds=20
|
|
|
|
- name: Add hosts group temporary inventory group with pem path
|
|
add_host:
|
|
name: "{{ item.1.platform }}-{{ ec2.results[item.0]['instances'][0]['public_ip'] }}"
|
|
groups: dynamic_hosts
|
|
ansible_ssh_host: "{{ ec2.results[item.0]['instances'][0]['public_ip'] }}"
|
|
ansible_ssh_private_key_file: '{{ pem_path }}'
|
|
ansible_ssh_user: "{{ item.1.ssh_user }}"
|
|
ec2_vars: "{{ ec2.results[item.0]['instances'][0] }}"
|
|
ec2_instance_ids: "{{ ec2.results[item.0]['instance_ids'] }}"
|
|
with_indexed_items: slaves
|
|
|