setup-openstack-iscsi-multipath-storpool: Add Interface to OpenStack Node
Change-Id: Ide5e528c743d2d9e0a0afb4c1af51a437044b67c
diff --git a/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml b/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml
index e0164d7..d9e1677 100644
--- a/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml
+++ b/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml
@@ -14,15 +14,28 @@
- "{{ storpool_node }}"
- "{{ item }}"
loop:
- - "{{ port_sp_api }}"
+ - "{{ port_node_1_sp_api }}"
- "{{ port_sp0 }}"
- "{{ port_sp1 }}"
+ - name: Remove the StorPool Ports from the OpenStack Node
+ ansible.builtin.command:
+ argv:
+ - "{{ os_venv }}/bin/openstack"
+ - --os-cloud
+ - openstack-testing
+ - server
+ - remove
+ - port
+ - "{{ storpool_node }}"
+ - "{{ port_node_2_sp_api }}"
+
- name: Delete the StorPool Ports
ansible.builtin.command:
argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "delete", "{{ item }}" ]
loop:
- - "{{ port_sp_api }}"
+ - "{{ port_node_1_sp_api }}"
+ - "{{ port_node_2_sp_api }}"
- "{{ port_sp0 }}"
- "{{ port_sp1 }}"
diff --git a/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml b/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
index b456e73..14e0ce2 100644
--- a/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
+++ b/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
@@ -50,7 +50,8 @@
- --disable-port-security
- "{{ item.port }}"
loop:
- - { network: "{{ network_sp_api }}", subnet: "{{ subnet_sp_api }}", ip: "{{ ip_sp_api }}", port: "{{ port_sp_api }}" }
+ - { network: "{{ network_sp_api }}", subnet: "{{ subnet_sp_api }}", ip: "{{ ip_node_1_sp_api }}", port: "{{ port_node_1_sp_api }}" }
+ - { network: "{{ network_sp_api }}", subnet: "{{ subnet_sp_api }}", ip: "{{ ip_node_2_sp_api }}", port: "{{ port_node_2_sp_api }}" }
- { network: "{{ network_sp0 }}", subnet: "{{ subnet_sp0 }}", ip: "{{ ip_sp0 }}", port: "{{ port_sp0 }}" }
- { network: "{{ network_sp1 }}", subnet: "{{ subnet_sp1 }}", ip: "{{ ip_sp1 }}", port: "{{ port_sp1 }}" }
@@ -66,18 +67,39 @@
- "{{ storpool_node }}"
- "{{ item }}"
loop:
- - "{{ port_sp_api }}"
+ - "{{ port_node_1_sp_api }}"
- "{{ port_sp0 }}"
- "{{ port_sp1 }}"
- - name: Get Information About port_sp_api
+ - name: Attach the StorPool API Port to the OpenStack Node
ansible.builtin.command:
- argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_sp_api }}" ]
- register: port_sp_api_info
+ argv:
+ - "{{ os_venv }}/bin/openstack"
+ - --os-cloud
+ - openstack-testing
+ - server
+ - add
+ - port
+ - "{{ openstack_node }}"
+ - "{{ port_node_2_sp_api }}"
- - name: Get MAC Address of port_sp_api
+ - name: Get Information About port_node_1_sp_api
+ ansible.builtin.command:
+ argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_node_1_sp_api }}" ]
+ register: port_node_1_sp_api_info
+
+ - name: Get MAC Address of port_node_1_sp_api
ansible.builtin.set_fact:
- port_sp_api_mac: "{{ (port_sp_api_info.stdout | from_json).mac_address }}"
+ port_node_1_sp_api_mac: "{{ (port_node_1_sp_api_info.stdout | from_json).mac_address }}"
+
+ - name: Get Information About port_node_2_sp_api
+ ansible.builtin.command:
+ argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_node_2_sp_api }}" ]
+ register: port_node_2_sp_api_info
+
+ - name: Get MAC Address of port_node_2_sp_api
+ ansible.builtin.set_fact:
+ port_node_2_sp_api_mac: "{{ (port_node_2_sp_api_info.stdout | from_json).mac_address }}"
- name: Get Information About port_sp0
ansible.builtin.command:
@@ -152,17 +174,17 @@
- vars.yaml
tasks:
- set_fact:
- ip_sp_api_wo_net: "{{ ip_sp_api }}"
+ ip_sp_api_wo_net: "{{ ip_port_1_sp_api }}"
- set_fact:
- port_sp_api_mac: "{{ hostvars['undercloud-client']['port_sp_api_mac'] }}"
+ port_node_1_sp_api_mac: "{{ hostvars['undercloud-client']['port_node_1_sp_api_mac'] }}"
sp_sp0_mac: "{{ hostvars['undercloud-client']['port_sp0_mac'] }}"
sp_sp1_mac: "{{ hostvars['undercloud-client']['port_sp1_mac'] }}"
sp_iscsi0_mac: "{{ hostvars['undercloud-client']['port_node_1_iscsi0_mac'] }}"
sp_iscsi1_mac: "{{ hostvars['undercloud-client']['port_node_1_iscsi1_mac'] }}"
ip_node_1_iscsi0: "{{ hostvars['undercloud-client']['ip_node_1_iscsi0'] }}/24"
ip_node_1_iscsi1: "{{ hostvars['undercloud-client']['ip_node_1_iscsi1'] }}/24"
- ip_sp_api: "{{ ip_sp_api }}/24"
+ ip_node_1_sp_api: "{{ ip_node_1_sp_api }}/24"
ip_sp0: "{{ ip_sp0 }}/24"
ip_sp1: "{{ ip_sp1 }}/24"
@@ -178,7 +200,7 @@
dest: /etc/netplan/60-storpool.yaml
- set_fact:
- ip_sp_api: "{{ ip_sp_api_wo_net }}"
+ ip_port_1_sp_api: "{{ ip_sp_api_wo_net }}"
- name: Generate Netplan
become: true
@@ -351,8 +373,10 @@
executable: pip3
- set_fact:
+ port_node_2_sp_api_mac: "{{ hostvars['undercloud-client']['port_node_2_sp_api_mac'] }}"
mac_node_2_iscsi0: "{{ hostvars['undercloud-client']['port_node_2_iscsi0_mac'] }}"
mac_node_2_iscsi1: "{{ hostvars['undercloud-client']['port_node_2_iscsi1_mac'] }}"
+ ip_node_2_sp_api: "{{ ip_node_2_sp_api }}/24"
ip_node_2_iscsi0: "{{ hostvars['undercloud-client']['ip_node_2_iscsi0'] }}/24"
ip_node_2_iscsi1: "{{ hostvars['undercloud-client']['ip_node_2_iscsi1'] }}/24"
@@ -387,6 +411,21 @@
dest: /etc/systemd/network/61-storpool-iscsi-2.network
- set_fact:
+ iscsi_ip: "{{ port_node_2_sp_api_mac }}"
+ iscsi_mac: "{{ ip_node_2_sp_api }}"
+
+ - set_fact:
+ systemd_networkd_iscsi: "{{ hostvars['localhost'].ISCSI_NODE_SYSTEMD_NETWORKD.v }}"
+ no_log: true
+
+ - name: Provision the Netplan Template for SP API Network
+ no_log: true
+ become: true
+ ansible.builtin.copy:
+ content: "{{ systemd_networkd_iscsi }}"
+ dest: /etc/systemd/network/62-storpool-api.network
+
+ - set_fact:
storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF_ISCSI_NODE.v }}"
no_log: true
diff --git a/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml b/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml
index 86c46c0..8334358 100644
--- a/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml
+++ b/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml
@@ -1,6 +1,7 @@
storpool_node: "{{ hostvars['lab-sp-a1']['nodepool']['external_id'] }}"
storpool_node_ip: "{{ hostvars['lab-sp-a1']['nodepool']['interface_ip'] }}"
undercloud_client_node: "{{ hostvars['undercloud-client']['nodepool']['external_id'] }}"
+openstack_node: "{{ hostvars['controller']['nodepool']['external_id'] }}"
storpool_volume: "{{ undercloud_client_node }}-storpool-volume"
@@ -8,7 +9,8 @@
network_ip_sp0: "192.168.20.0/24"
network_ip_sp1: "192.168.30.0/24"
-ip_sp_api: "192.168.10.3"
+ip_node_1_sp_api: "192.168.10.3"
+ip_node_2_sp_api: "192.168.10.4"
ip_sp0: "192.168.20.3"
ip_sp1: "192.168.30.3"
@@ -20,6 +22,7 @@
subnet_sp0: "{{ undercloud_client_node }}-subnet-sp0"
subnet_sp1: "{{ undercloud_client_node }}-subnet-sp1"
-port_sp_api: "{{ undercloud_client_node }}-port-sp-api"
+port_node_1_sp_api: "{{ undercloud_client_node }}-port-node-1-sp-api"
+port_node_2_sp_api: "{{ undercloud_client_node }}-port-node-2-sp-api"
port_sp0: "{{ undercloud_client_node }}-port-sp0"
port_sp1: "{{ undercloud_client_node }}-port-sp1"
diff --git a/zuul.d/sp-cinder-secrets.yaml b/zuul.d/sp-cinder-secrets.yaml
index 9a583bb..f2462bb 100644
--- a/zuul.d/sp-cinder-secrets.yaml
+++ b/zuul.d/sp-cinder-secrets.yaml
@@ -57,16 +57,16 @@
name: STORPOOL_CONF_ISCSI_NODE
data:
v: !encrypted/pkcs1-oaep
- - hANtHFqL+R8V/Ma6iA3+bzdErU3GJsh2LsUVGnU5j14GidJC38gaks4ydcjZBArBDnVZL
- DLRLsfhNoQvCNCIibmMXooU8uRhPVI/T9hcy5IUtEIj+PkskrSNWakJ3U/qMxO6YGBgCb
- P/BmB5oQx4yCTy0jnzsBXEQM5+TD6Xo/Y1U6p0WZ08QJeyMM6cdGbJcKttZDUHWlXuOCx
- 1hxWCvoJ3AsP7z3wnXVkKHA/ADzrDyzzEClPxJ3QD5o2ZN/pgaw+0WNZrNWuwQ4EBSxsz
- +ftQ4qO7brec5UTpJ2Jhufb51jq3JPXlgCcSYAZ9k0qGhcH1te6uYiFQoUWyC5+enYyRl
- omFL80mScGRR2oZuXVjCk5MX7XrNIxtPGEi/7zTK8icQV7FsPoG7Qo7XTfOftACZcScWM
- tjsAFMovgVnyS/wy9nV5QW4uN2dFs7UE+C5EToi8nqWyNR7F0BCnsybg6RaMdQSKngXRc
- gzhZKSeLm7AwlEayI63JAkpmDOImxFBalPD7KPVRv3QrfqiLG1Er62DbO3YyFwrkO6FNX
- FfOnVJQQR2zt9sc/p8+WYDieiUJFSPl+/SQ2KI77mEu+zw/VB0CMMziLZkU9k+LEk3Npn
- mcLQOYOlqqgVV3ZZbc8ZWWEPzIP8agQ5WzsxcFt+XIhSFF3zxt8d/brNEiSORQ=
+ - T4G8EPQYTiDA19NuY7RA3X2lQsdQQKJ1oJoM1NhC+JcR2jfPSuanwaIsPj5k48bkmddR/
+ 8e7OJZYOBngiOaR7EXt5MKywgeLgXEgSDp6L1XGu+8cxPqGnuvD4BqkYLV3VnxJQquuke
+ 4Wth1T07JIkCPCgtvNFrFZgIcSQDk27bOvyy5np+oLVkaMFFiiO/XHkjFwq0QjIMG+9fK
+ /F+eBXLaz575LM2ClpBeIWhQBhdWO1XgUUyOQDw4D7sgBLnNa5TK+TV1vjZZ1QqVc1Sde
+ V9LMorYlEf6ychPPaU6sNjOgAouGS/ba1v6gwFI0baVwFfs2KnjoQdMJ+ytYJIPckpw0j
+ dDL26aKL7vkQUkbPCxJ0EPt1K4R/WBiBI/EXygHr8MtcTJ0R2L5Fy1gbk+x06Dxzy2gBT
+ qBqgttfZ5Sr1VcoGEAUCi52lZSj6KWiVZnvm6c4c2coqfsqUTM0GseauoY43BhOu7itZ1
+ vkT8CKe77C7tTHp6HGtqYhRU+p4OZRXSHM5fAlfl+x4W0ShFYE/ne+/fyEYTMRM3c0Xs+
+ aKHzpdQ0ORDT+syNkBzgxdohURPhbI/34buoNCmAVIp7DbBEgV9LnCSHGf3Il4Lemoo38
+ XPKoZ9BpU1/+JDZXeIV39OhMLZUlwgA2y2fMC/nz20IKcEfCbaH6Vs2eLQxShE=
- secret:
name: STORPOOL_DEPLOY_KEY
@@ -197,26 +197,26 @@
name: STORPOOL_NETPLAN
data:
v: !encrypted/pkcs1-oaep
- - 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
+ - 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
- secret:
name: STORPOOL_NETPLAN_SERVICE
@@ -237,13 +237,13 @@
name: ISCSI_NODE_SYSTEMD_NETWORKD
data:
v: !encrypted/pkcs1-oaep
- - GOOTGl66YKOo1nI/j778efZ8ghX1dPjN07d355OleMthGWi6bnCx7Y7N/+DOLScC2ye27
- JDNnz3WQlO7EQQITUjhgSAe6EnOzAUo61yKCRI3BYRnIx93HGMwILAc/yvSAGkSBwSxfT
- GnchS56y8GXQbswk5EcXuRGC1Ar1zQ/UWFr1J/XPa6cf26TOD7WUqEWSDoThiF9obgROr
- lyomirPhui1UXW7k376hu7ue0mKBm0f8AdAq38YXGbxq5RcUfu2ADP32OASXnUJJGcbNW
- z3KdOupwzrZ+Pl68pWjv8/y84QXi3r4vwdibKJWOND6ptYCEWQU2WJ2ppAngZER04WFnv
- mQHw+wn7t6nrBkMxJzitHyuCfFoyT5tkc9qTfbalWWqle+7QwDM/Kj9FsPnQLoFQ6oKRI
- DiLW8vrRBsSKn2gvfunQidZ0Jg58w3leaDkbhYnmRVNuEiS/RIs7FQ8XBTqBxIp+yN1Xo
- lqOU+jXyZTm1EJHYTZb9WnagP1XSSxwZoIsDMZKC9rZEEUtDO5UKw34wRVpWA7CCq/aIS
- ENRT9QZjFdN/rOD+/7mLw96/BD5OGZqINKUyAKwptZ9BXfY+F5Swd/nQgghLIwrKg9u4K
- 3BcCDROMcCK3NSPW1EuhPenz8hRSEfVb4dozJ/Q/QEjIhSBRdI318hEbAnyb3I=
+ - dt4xX89TItfHOHgzdDl3iOk0/fJcVNbUH/zw0ayCGmjfF3k4ruAqizNBOw3Ld6xTTCu7x
+ lLff2UcT+neUh2uxU8Vt4UyzVv+idwfMw20uRYbDMnusQM4PeTb0IXlXVYE/N/YBjGZ7K
+ oUj9xNGj51wSqIr+8JCvyBzDN2v9gA3PhRvM9Vj6+8l/mLQQRknGwC2tQUC/nayjt+1p2
+ bWeznWjm1acHcG/0ZTk8ZJ7Q8LKJBcyqFRfwvDkxifsncw/N4VwlSDbnh3fXFB1ylvYaV
+ t7/4gavq5uI+LDO33+gcVyuuCA+diPYuieBCdMemkUZJaGj1sUWC14arPu6ZFKvHGBwut
+ QPfDWISxoHXEupkH+vJYYF0OAaD0lXfV2THEu0zHxZjd64VSJfQIWNsyWughckhjpygZA
+ IYT/ml2nzrcHxOhhCUoZ9+9rtbLVl3Nz8MWmbK29+FS7dZCgdhGqgGJTL9pb0k7XcXcsI
+ DEWa2hETcLXNYB+DaUB377v2zvTYAR0Q/8E/hK2TMtauSkC9ssjd9D2Tl2eGNVmUAhLJG
+ +HKE2FYm8+xuy22Xk+08cMCogzwyhyj5zjukHDYabcxyKL7SgIEfmVcs5hfb2XbahIUla
+ aHiji/q4RAqRgz3tAM92/GAPAtn+NoAjE1QvnFdpV9CSW08VjgFODOVqtAgQZU=