forked from IBMSpectrumComputing/lsf-hybrid-cloud
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Step4-bring-up-ec2-hosts.yml
110 lines (90 loc) · 3.56 KB
/
Step4-bring-up-ec2-hosts.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#
#-----------------------------------
# Copyright IBM Corp. 1992, 2017. All rights reserved.
# US Government Users Restricted Rights - Use, duplication or disclosure
# restricted by GSA ADP Schedule Contract with IBM Corp.
#-----------------------------------
#
---
# This playbook will bring up all the needed EC2 VMs and create a inventory file
# for the next step in the process.
- name: Should we use EC2 VPN node as part of the LSF Cluster
hosts: LSF_Masters[0]
vars_prompt:
- name: use_vpn
prompt: "\n**************************** Input Needed ****************************\n\nDo you want to use the EC2 VPN node as part of the LSF Cluster? \nIn a Multi-Cluster deployment this will become the LSF Master.\n[y/n]? "
default: "y"
private: no
- name: num_ec2_vm
prompt: "\n**************************** Input Needed ****************************\n\nHow many additional EC2 nodes would you like to configure as\npart of the LSF Cluster? "
default: 0
private: no
tasks:
- set_fact:
num_ec2_vm: "{{ num_ec2_vm }}"
- set_fact:
use_vpn: "{{ use_vpn }}"
- name: Validate input
fail:
msg: Either the VPN instance must be used for LSF or an additional EC2 instance must be started. Restart playbook and use the VPN instance for LSF, or start 1 additional EC2 insrance
when:
- num_ec2_vm == 0
- use_vpn != y
- name: Users response
debug:
msg: "The VPN node (if present) will {% set out = '' %}{% if use_vpn != 'y' %}{% set out = 'not ' %}{{ out }}{% endif %}be used as a LSF server host."
- name: Users response 2
debug:
msg: "Going to start {{ num_ec2_vm }} EC2 VM to be LSF Servers."
# --------------------------------------------------------------
# ------------------ Bring up more LSF Servers ---------------
# --------------------------------------------------------------
- name: Setup Cloud machines
hosts: LSF_Masters[0]
gather_facts: false
roles:
- make-ec2-server-nodes
tasks:
- name: Reload EC2 server inventory
include_vars: "inventory_ec2servers.yml"
- name: Make a hostgroup from the private IPs for later testing
add_host:
hostname: "{{ item.prv_ip }}"
groupname: prvec2grp
with_items: "{{ ec2servers }}"
- name: Make a hostgroup from the public IPs for configuration
add_host:
hostname: "{{ item.pub_ip }}"
# Dont change the groupname. Needed within the tasks
groupname: pubec2grp
with_items: "{{ ec2servers }}"
# --------------------------------------------------------------
# ------------------ Configure EC2 VMs --------------------
# --------------------------------------------------------------
- name: Configure the EC2 nodes for later LSF install
hosts: pubec2grp
vars_files:
- AWS/AWS-config.yml
user: "{{ AWS_Image_User }}"
become: true
gather_facts: true
vars:
ansible_ssh_private_key_file: "{{ AWS_Private_Key_File }}"
roles:
- prepare-ec2-servers
# --------------------------------------------------------------
# ------------------ Test the EC2 nodes --------------------
# --------------------------------------------------------------
- name: Test ICMP ping of EC2 nodes private interface
hosts: LSF_Masters[0]
gather_facts: false
tasks:
- name: Try ICMP ping
shell: ping -c 2 -w 5 "{{ item }}"
with_items: "{{ groups.prvec2grp }}"
- name: Test access to the EC2 VMs private interfaces
hosts: prvec2grp
gather_facts: false
tasks:
- name: Ping Private network interfaces
ping: