05c4dca04f404ec9c2074b9093146a36ad464444
[icn.git] / deploy / metal3-vm / vm-setup / roles / common / tasks / main.yml
1 ---
2
3 - set_fact:
4     generate_vm_nodes: "{{vm_nodes is not defined}}"
5
6 - name: Define vm_nodes if not already defined
7   when: generate_vm_nodes
8   block:
9     - name: Generate vm_nodes for "{{num_masters}}" masters
10       set_fact:
11         vm_nodes: "{{vm_nodes|default([]) + [
12                      {'name': ironic_prefix + 'master_%s'|format(item),
13                       'flavor': 'master',
14                       'virtualbmc_port': virtualbmc_base_port+item}]}}"
15       loop: "{{ range(0, num_masters|int)|list }}"
16     
17     - name: Generate vm_nodes for "{{num_workers}}" workers
18       set_fact:
19         vm_nodes: "{{vm_nodes|default([]) + [
20                      {'name': ironic_prefix + 'worker_%s'|format(item),
21                       'flavor': 'worker',
22                       'virtualbmc_port': virtualbmc_base_port+num_masters|int+item} ]}}"
23       loop: "{{ range(0, num_workers|int)|list }}"
24
25 # Describe our virtual networks.  These networks will be attached to
26 # the vm nodes in the order in which they are defined with the following caveats:
27 #   *  The first bridge network defined will be used for pxe booting
28 - set_fact:
29     generate_networks: "{{networks is not defined}}"
30 - name: Define networks when not already defined
31   when: generate_networks
32   block:
33     - name: Generate dhcp entries on baremetal network for "{{num_masters}}" masters
34       set_fact:
35         dhcp_hosts: "{{dhcp_hosts|default([]) + [
36                        {'name': 'master-%s'|format(item),
37                         'ip': baremetal_network_cidr|nthhost(20+item)|string}]}}"
38       loop: "{{ range(0, num_masters|int)|list }}"
39     
40     - name: Generate dhcp entries on baremetal network for "{{num_workers}}" workers
41       set_fact:
42         dhcp_hosts: "{{dhcp_hosts|default([]) + [
43                        {'name': 'worker-%s'|format(item),
44                         'ip': baremetal_network_cidr|nthhost(20+num_masters|int+item)|string} ]}}"
45       loop: "{{ range(0, num_workers|int)|list }}"
46     
47     - name: Set fact for networks
48       set_fact:
49         networks:
50           - name: provisioning
51             bridge: provisioning
52             forward_mode: bridge
53           - name: baremetal
54             bridge: baremetal
55             forward_mode: "{% if manage_baremetal == 'y' %}nat{% else %}bridge{% endif %}"
56             address: "{{ baremetal_network_cidr|nthhost(1) }}"
57             netmask: "{{ baremetal_network_cidr|ipaddr('netmask') }}"
58             dhcp_range:
59               - "{{ baremetal_network_cidr|nthhost(20) }}"
60               - "{{ baremetal_network_cidr|nthhost(60) }}"
61             dhcp_hosts: "{{dhcp_hosts}}"
62             nat_port_range:
63               - 1024
64               - 65535
65             domain: "{{ cluster_domain }}"
66             dns:
67               hosts: "{{dns_extrahosts | default([])}}"
68               forwarders:
69                 - domain: "apps.{{ cluster_domain }}"
70                   addr: "127.0.0.1"