6 - include_vars: "{{ ConfigFileName }}"
8 - name: Install grepcidr library
9 shell: apt-get install grepcidr
11 - name: Read protected net CIDR
12 shell: cat /opt/config/protected_net_cidr.txt
13 register: protectedCidr
15 - name: Read unprotected net CIDR
16 shell: cat /opt/config/unprotected_private_net_cidr.txt
17 register: unprotectedCidr
20 shell: cat /opt/config/vpg_private_ip_0.txt
23 - name: Read OLD FW IP
24 shell: cat /opt/config/fw_ipaddr.txt
27 - name: Read OLD SINK IP
28 shell: cat /opt/config/sink_ipaddr.txt
31 - name: Get all Interfaces
33 interfaces: "{{destinations[0].vservers | map(attribute='l-interfaces') | list}}"
34 - name: print all Interfaces
36 - name: Interfaces vserver 1
38 vserver1_interfaces: "{{destinations[0].vservers[0]['l-interfaces'] | list}}"
39 - name: Interfaces vserver 2
41 vserver2_interfaces: "{{destinations[0].vservers[1]['l-interfaces'] | list}}"
43 - name: length interfaces vserver1
45 length1: "{{ vserver1_interfaces |length }}"
46 - name: length interfaces vserver2
48 length2: "{{ vserver2_interfaces |length }}"
50 - name: adress 1 vserver
53 - "{{destinations[0].vservers[0]['l-interfaces'][0]['ipv4-addresses'][0]}}"
54 - "{{destinations[0].vservers[0]['l-interfaces'][1]['ipv4-addresses'][0]}}"
55 - "{{destinations[0].vservers[0]['l-interfaces'][2]['ipv4-addresses'][0]}}"
56 - name: adress 2 vserver
59 - "{{destinations[0].vservers[1]['l-interfaces'][0]['ipv4-addresses'][0]}}"
60 - "{{destinations[0].vservers[1]['l-interfaces'][1]['ipv4-addresses'][0]}}"
61 - "{{destinations[0].vservers[1]['l-interfaces'][2]['ipv4-addresses'][0]}}"
62 - "{{destinations[0].vservers[1]['l-interfaces'][3]['ipv4-addresses'][0]}}"
67 - name: adress 1 vserver
70 - "{{destinations[0].vservers[0]['l-interfaces'][0]['ipv4-addresses'][0]}}"
71 - "{{destinations[0].vservers[0]['l-interfaces'][1]['ipv4-addresses'][0]}}"
72 - "{{destinations[0].vservers[0]['l-interfaces'][2]['ipv4-addresses'][0]}}"
73 - "{{destinations[0].vservers[0]['l-interfaces'][3]['ipv4-addresses'][0]}}"
74 - name: adress 2 vserver
77 - "{{destinations[0].vservers[1]['l-interfaces'][0]['ipv4-addresses'][0]}}"
78 - "{{destinations[0].vservers[1]['l-interfaces'][1]['ipv4-addresses'][0]}}"
79 - "{{destinations[0].vservers[1]['l-interfaces'][2]['ipv4-addresses'][0]}}"
84 - name: Create file to store fw-addresses
85 shell: touch /home/fw.txt
87 - name: Create file to store sink-addresses
88 shell: touch /home/sink.txt
90 - name: Save sink-addresses to file
95 - "{{sink_addresses[0]}}"
96 - "{{sink_addresses[1]}}"
97 - "{{sink_addresses[2]}}"
99 - name: Save fw-addresses to file
104 - "{{fw_addresses[0]}}"
105 - "{{fw_addresses[1]}}"
106 - "{{fw_addresses[2]}}"
107 - "{{fw_addresses[3]}}"
109 - name: Filter SINK IPs
110 shell: grepcidr {{protectedCidr.stdout}} /home/sink.txt
113 - debug: var=sinkIp.stdout
114 - name: Filter FW IPs
115 shell: grepcidr {{unprotectedCidr.stdout}} /home/fw.txt
118 - debug: var=fwIp.stdout
119 - name: Delete created files
120 shell: rm -f /home/sink.txt /home/fw.txt
125 - name: get new FW IP
127 fwIp: "{{fwIp.stdout}}"
128 - name: get new SINK IP
130 sinkIp: "{{sinkIp.stdout}}"
131 - debug: var=pkgIp.stdout
132 - debug: var=oldFwIp.stdout
133 - debug: var=oldSinkIp.stdout
134 - debug: var=protectedCidr.stdout
135 - debug: var=unprotectedCidr.stdout
139 msg: "FW IP has not been changed"
140 when: oldFwIp.stdout == fwIp
142 - name: Remove OLD FW IP route
143 shell: vppctl ip route del {{ protectedCidr.stdout }} via {{ oldFwIp.stdout }}
144 - name: Add NEW FW IP route
145 shell: vppctl ip route add {{ protectedCidr.stdout }} via {{ fwIp }}
146 - name: Save NEW FW IP address
147 shell: echo {{ fwIp }} > /opt/config/fw_ipaddr.txt
149 msg: "FW IP has been changed"
151 when: oldFwIp.stdout != fwIp
153 msg: "SINK IP has not been changed"
154 when: oldSinkIp.stdout == sinkIp
157 - name: Modify packet stream files
159 msg: "Modify packet stream files"
160 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp1"
161 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp2"
162 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp3"
163 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp4"
164 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp5"
165 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp6"
166 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp7"
167 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp8"
168 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp9"
169 - shell: "sed -i -e '0,/UDP/ s/UDP:.*/UDP: {{ pkgIp.stdout }} -> {{ sinkIp }}/' /opt/pg_streams/stream_fw_udp10"
171 - name: Delete old streams
173 msg: "Delete old streams"
174 - shell: vppctl packet-generator delete fw_udp1
175 - shell: vppctl packet-generator delete fw_udp2
176 - shell: vppctl packet-generator delete fw_udp3
177 - shell: vppctl packet-generator delete fw_udp4
178 - shell: vppctl packet-generator delete fw_udp5
179 - shell: vppctl packet-generator delete fw_udp6
180 - shell: vppctl packet-generator delete fw_udp7
181 - shell: vppctl packet-generator delete fw_udp8
182 - shell: vppctl packet-generator delete fw_udp9
183 - shell: vppctl packet-generator delete fw_udp10
185 - name: Install new streams
187 msg: "Install new streams"
188 - shell: vppctl exec /opt/pg_streams/stream_fw_udp1
189 - shell: vppctl exec /opt/pg_streams/stream_fw_udp2
190 - shell: vppctl exec /opt/pg_streams/stream_fw_udp3
191 - shell: vppctl exec /opt/pg_streams/stream_fw_udp4
192 - shell: vppctl exec /opt/pg_streams/stream_fw_udp5
193 - shell: vppctl exec /opt/pg_streams/stream_fw_udp6
194 - shell: vppctl exec /opt/pg_streams/stream_fw_udp7
195 - shell: vppctl exec /opt/pg_streams/stream_fw_udp8
196 - shell: vppctl exec /opt/pg_streams/stream_fw_udp9
197 - shell: vppctl exec /opt/pg_streams/stream_fw_udp10
199 - name: Enable new streams
201 msg: "Enable new streams"
202 - shell: vppctl packet-generator enable fw_udp1
203 - shell: vppctl packet-generator enable fw_udp2
204 - shell: vppctl packet-generator enable fw_udp3
205 - shell: vppctl packet-generator enable fw_udp4
206 - shell: vppctl packet-generator enable fw_udp5
207 - shell: vppctl packet-generator enable fw_udp6
208 - shell: vppctl packet-generator enable fw_udp7
209 - shell: vppctl packet-generator enable fw_udp8
210 - shell: vppctl packet-generator enable fw_udp9
211 - shell: vppctl packet-generator enable fw_udp10
212 - name: Save NEW SINK IP address
213 shell: echo {{ sinkIp }} > /opt/config/sink_ipaddr.txt
215 msg: "SINK IP has been changed"
217 when: oldSinkIp.stdout != sinkIp