diff --git a/examples/iaas/iaas.yml b/examples/iaas/iaas.yml index 839b1f2b4..b16839297 100644 --- a/examples/iaas/iaas.yml +++ b/examples/iaas/iaas.yml @@ -11,10 +11,15 @@ nutanix_password: validate_certs: false tasks: + - name: Include vars file + include_vars: + file: vars.yml - include_role: name: external_subnet - include_role: name: vpc + - include_role: + name: static_route - include_role: name: overlay_subnet - include_role: diff --git a/examples/iaas/policies_create.yml b/examples/iaas/policies_create.yml index fc15cccef..b6e96fd92 100644 --- a/examples/iaas/policies_create.yml +++ b/examples/iaas/policies_create.yml @@ -11,5 +11,8 @@ nutanix_password: validate_certs: false tasks: + - name: Include vars file + include_vars: + file: vars.yml - include_role: name: pbr diff --git a/examples/iaas/roles/external_subnet/tasks/main.yml b/examples/iaas/roles/external_subnet/tasks/main.yml index fccb6c6ac..f0e2653a4 100644 --- a/examples/iaas/roles/external_subnet/tasks/main.yml +++ b/examples/iaas/roles/external_subnet/tasks/main.yml @@ -2,4 +2,4 @@ - name: Inputs for external subnets task include_tasks: external_subnet.yml with_items: - - { name: Ext-Nat, vlan_id: 102, ip: 10.44.3.192, prefix: 27, gip: 10.44.3.193, sip: 10.44.3.198, eip: 10.44.3.207, eNat: True } \ No newline at end of file + - { name: "{{external_subnet.name}}", vlan_id: "{{external_subnet.vlan_id}}", ip: "{{external_subnet.ip}}", prefix: "{{external_subnet.prefix}}", gip: "{{external_subnet.gip}}", sip: "{{external_subnet.sip}}", eip: "{{external_subnet.eip}}", eNat: "{{external_subnet.eNat}}" } \ No newline at end of file diff --git a/examples/iaas/roles/external_subnet/vars/main.yml b/examples/iaas/roles/external_subnet/vars/main.yml deleted file mode 100644 index c731f66c1..000000000 --- a/examples/iaas/roles/external_subnet/vars/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -cluster: - name: auto_cluster_prod_1a642ea0a5c3 diff --git a/examples/iaas/roles/overlay_subnet/tasks/main.yml b/examples/iaas/roles/overlay_subnet/tasks/main.yml index 66e02d8a8..357cd3989 100644 --- a/examples/iaas/roles/overlay_subnet/tasks/main.yml +++ b/examples/iaas/roles/overlay_subnet/tasks/main.yml @@ -2,11 +2,13 @@ - name: Inputs for overlay subnets include_tasks: overlay_subnet.yml with_items: - - { name: Prod-SubnetA, vpc_name: Prod, nip: 10.1.1.0, prefix: 24, gip: 10.1.1.1, sip: 10.1.1.2, eip: 10.1.1.5, - domain_name: "calm.nutanix.com", dns_servers: ["8.8.8.8", "8.8.8.4"], domain_search: ["calm.nutanix.com", "eng.nutanix.com"] } - - { name: Prod-SubnetB, vpc_name: Prod, nip: 10.1.2.0, prefix: 24, gip: 10.1.2.1, sip: 10.1.2.2, eip: 10.1.2.5, - domain_name: "calm.nutanix.com", dns_servers: ["8.8.8.8", "8.8.8.4"], domain_search: ["calm.nutanix.com", "eng.nutanix.com"] } - - { name: Dev-SubnetA, vpc_name: Dev, nip: 10.1.1.0, prefix: 24, gip: 10.1.1.1, sip: 10.1.1.2, eip: 10.1.1.5, - domain_name: "calm.nutanix.com", dns_servers: ["8.8.8.8", "8.8.8.4"], domain_search: ["calm.nutanix.com", "eng.nutanix.com"] } - - { name: Dev-SubnetB, vpc_name: Dev, nip: 10.1.2.0, prefix: 24, gip: 10.1.2.1, sip: 10.1.2.2, eip: 10.1.2.5, - domain_name: "calm.nutanix.com", dns_servers: ["8.8.8.8", "8.8.8.4"], domain_search: ["calm.nutanix.com", "eng.nutanix.com"] } + - { name: "{{Prod_SubnetA.name}}", vpc_name: "{{Prod_SubnetA.vpc_name}}", + nip: "{{Prod_SubnetA.nip}}", prefix: "{{Prod_SubnetA.prefix}}", + gip: "{{Prod_SubnetA.gip}}", sip: "{{Prod_SubnetA.sip}}", eip: "{{Prod_SubnetA.eip}}", + domain_name: "{{domain_name}}", dns_servers: "{{dns_servers}}", domain_search: "{{domain_search}}" } + - { name: "{{Prod_SubnetB.name}}", vpc_name: "{{Prod_SubnetB.vpc_name}}", nip: "{{Prod_SubnetB.nip}}", prefix: "{{Prod_SubnetB.prefix}}", gip: "{{Prod_SubnetB.gip}}", sip: "{{Prod_SubnetB.sip}}", eip: "{{Prod_SubnetB.eip}}", + domain_name: "{{domain_name}}", dns_servers: "{{dns_servers}}", domain_search: "{{domain_search}}" } + - { name: "{{Dev_SubnetA.name}}", vpc_name: "{{Dev_SubnetA.vpc_name}}", nip: "{{Dev_SubnetA.nip}}", prefix: "{{Dev_SubnetA.prefix}}", gip: "{{Dev_SubnetA.gip}}", sip: "{{Dev_SubnetA.sip}}", eip: "{{Dev_SubnetA.eip}}", + domain_name: "{{domain_name}}", dns_servers: "{{dns_servers}}", domain_search: "{{domain_search}}" } + - { name: "{{Dev_SubnetB.name}}", vpc_name: "{{Dev_SubnetB.vpc_name}}", nip: "{{Dev_SubnetB.nip}}", prefix: "{{Dev_SubnetB.prefix}}", gip: "{{Dev_SubnetB.gip}}", sip: "{{Dev_SubnetB.sip}}", eip: "{{Dev_SubnetB.eip}}", + domain_name: "{{domain_name}}", dns_servers: "{{dns_servers}}", domain_search: "{{domain_search}}" } diff --git a/examples/iaas/roles/pbr/tasks/main.yml b/examples/iaas/roles/pbr/tasks/main.yml index 0fa3d0c2f..72428dd2b 100644 --- a/examples/iaas/roles/pbr/tasks/main.yml +++ b/examples/iaas/roles/pbr/tasks/main.yml @@ -2,5 +2,5 @@ - name: Include PBR task include_tasks: pbr.yml with_items: - - { vpc_name: Prod, priority: 101, nip: 10.1.2.0, prefix: 24 } - - { vpc_name: Dev, priority: 101, nip: 10.1.2.0, prefix: 24 } + - { vpc_name: "{{vpc_names[0]}}", priority: 101, nip: 10.1.2.0, prefix: 24 } + - { vpc_name: "{{vpc_names[1]}}", priority: 101, nip: 10.1.2.0, prefix: 24 } diff --git a/examples/iaas/roles/static_route/meta/main.yml b/examples/iaas/roles/static_route/meta/main.yml new file mode 100644 index 000000000..a734b2343 --- /dev/null +++ b/examples/iaas/roles/static_route/meta/main.yml @@ -0,0 +1,2 @@ + collections: + - nutanix.ncp diff --git a/examples/iaas/roles/static_route/tasks/main.yml b/examples/iaas/roles/static_route/tasks/main.yml new file mode 100644 index 000000000..c4a177a8f --- /dev/null +++ b/examples/iaas/roles/static_route/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: Inputs for static routes task + include_tasks: static_route.yml + with_items: + - { vpc_uuid: "{{vpc_uuids[0]}}", subnet_name: "{{external_subnet.name}}", destination: "10.2.2.0/24"} + - { vpc_uuid: "{{vpc_uuids[1]}}", subnet_name: "{{external_subnet.name}}", destination: "10.2.3.0/24"} diff --git a/examples/iaas/roles/static_route/tasks/static_route.yml b/examples/iaas/roles/static_route/tasks/static_route.yml new file mode 100644 index 000000000..1163f36dd --- /dev/null +++ b/examples/iaas/roles/static_route/tasks/static_route.yml @@ -0,0 +1,14 @@ +--- + - name: Create static route + ntnx_static_routes: + state: present + vpc_uuid: "{{ item.vpc_uuid }}" + static_routes: + - destination: "{{ item.destination }}" + next_hop: + external_subnet_ref: + name: "{{ item.subnet_name }}" + register: static_route + - debug: + msg: + - "uuid: {{ static_route.response.metadata.uuid }}" diff --git a/examples/iaas/roles/vm/tasks/main.yml b/examples/iaas/roles/vm/tasks/main.yml index ba6c224df..832335cef 100644 --- a/examples/iaas/roles/vm/tasks/main.yml +++ b/examples/iaas/roles/vm/tasks/main.yml @@ -2,7 +2,7 @@ - name: Inputs for vm task include_tasks: vm.yml with_items: - - {name: "Prod-Wordpress-App", desc: "Prod-Wordpress-App", is_connected: True, subnet_name: Prod-SubnetA, image_name: "wordpress-appserver", private_ip: ""} - - {name: "Prod-Wordpress-DB", desc: "Prod-Wordpress-DB", is_connected: True, subnet_name: Prod-SubnetB, image_name: "wordpress-db", private_ip: 10.1.2.5} - - {name: "Dev-Wordpress-App", desc: "Dev-Wordpress-App", is_connected: True, subnet_name: Dev-SubnetA, image_name: "wordpress-appserver", private_ip: ""} - - {name: "Dev-Wordpress-DB", desc: "Dev-Wordpress-DB", is_connected: True, subnet_name: Dev-SubnetB, image_name: "wordpress-db", private_ip: 10.1.2.5} \ No newline at end of file + - {name: "Prod-Wordpress-App", desc: "Prod-Wordpress-App", is_connected: True, subnet_name: "{{Prod_SubnetA.name}}", image_name: "wordpress-appserver", private_ip: ""} + - {name: "Prod-Wordpress-DB", desc: "Prod-Wordpress-DB", is_connected: True, subnet_name: "{{Prod_SubnetB.name}}", image_name: "wordpress-db", private_ip: 10.1.2.5} + - {name: "Dev-Wordpress-App", desc: "Dev-Wordpress-App", is_connected: True, subnet_name: "{{Dev_SubnetA.name}}", image_name: "wordpress-appserver", private_ip: ""} + - {name: "Dev-Wordpress-DB", desc: "Dev-Wordpress-DB", is_connected: True, subnet_name: "{{Dev_SubnetB.name}}", image_name: "wordpress-db", private_ip: 10.1.2.5} \ No newline at end of file diff --git a/examples/iaas/roles/vm/tasks/vm.yml b/examples/iaas/roles/vm/tasks/vm.yml index 28c7ca987..d866fe0ef 100644 --- a/examples/iaas/roles/vm/tasks/vm.yml +++ b/examples/iaas/roles/vm/tasks/vm.yml @@ -5,7 +5,7 @@ name: "{{ item.name }}" desc: "{{ item.desc }}" cluster: - name: auto_cluster_prod_1a642ea0a5c3 + name: "{{ cluster.name }}" networks: - is_connected: "{{ item.is_connected }}" subnet: diff --git a/examples/iaas/roles/vpc/tasks/main.yml b/examples/iaas/roles/vpc/tasks/main.yml index 74c7551ec..21ce27258 100644 --- a/examples/iaas/roles/vpc/tasks/main.yml +++ b/examples/iaas/roles/vpc/tasks/main.yml @@ -1,6 +1,8 @@ --- +- set_fact: + vpc_uuids: [] - name: Inputs vpcs task include_tasks: vpc.yml with_items: - - { name: Prod, subnet_name: Ext-Nat} - - { name: Dev, subnet_name: Ext-Nat} + - { name: "{{vpc_names[0]}}", subnet_name: "{{external_subnet.name}}"} + - { name: "{{vpc_names[1]}}", subnet_name: "{{external_subnet.name}}"} diff --git a/examples/iaas/roles/vpc/tasks/vpc.yml b/examples/iaas/roles/vpc/tasks/vpc.yml index d59d22f9f..ebb989d09 100644 --- a/examples/iaas/roles/vpc/tasks/vpc.yml +++ b/examples/iaas/roles/vpc/tasks/vpc.yml @@ -9,4 +9,6 @@ - debug: msg: - "name: {{ vpc.response.status.name }}" - - "uuid: {{ vpc.vpc_uuid }}" \ No newline at end of file + - "uuid: {{ vpc.vpc_uuid }}" +- set_fact: + vpc_uuids: "{{ vpc_uuids + [ vpc.vpc_uuid ] }}" \ No newline at end of file diff --git a/examples/iaas/vars.yml b/examples/iaas/vars.yml new file mode 100644 index 000000000..ff9daee05 --- /dev/null +++ b/examples/iaas/vars.yml @@ -0,0 +1,49 @@ +--- +cluster: + name: auto_cluster_prod_f34ce3677ecf +external_subnet: + name: Ext-Nat + vlan_id: 102 + ip: 10.44.3.192 + prefix: 27 + gip: 10.44.3.193 + sip: 10.44.3.198 + eip: 10.44.3.207 + eNat: True +vpc_names: ["Prod", "Dev"] +domain_search: ["calm.nutanix.com", "eng.nutanix.com"] +dns_servers: ["8.8.8.8", "8.8.8.4"] +domain_name: "calm.nutanix.com" +Prod_SubnetA: + name: Prod_SubnetA + vpc_name: Prod + nip: 10.1.1.0 + prefix: 24 + gip: 10.1.1.1 + sip: 10.1.1.2 + eip: 10.1.1.5 +Prod_SubnetB: + name: Prod_SubnetB + vpc_name: Prod + nip: 10.1.2.0 + prefix: 24 + gip: 10.1.2.1 + sip: 10.1.2.2 + eip: 10.1.2.5 +Dev_SubnetA: + name: Dev_SubnetA + vpc_name: Dev + nip: 10.1.1.0 + prefix: 24 + gip: 10.1.1.1 + sip: 10.1.1.2 + eip: 10.1.1.5 + +Dev_SubnetB: + name: Dev_SubnetB + vpc_name: Dev + nip: 10.1.2.0 + prefix: 24 + gip: 10.1.2.1 + sip: 10.1.2.2 + eip: 10.1.2.5