Fix cosmetic issues in VIRL topologies
[csit.git] / resources / tools / virl / topologies / simple-ring.virl
1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2 <topology xmlns="http://www.cisco.com/VIRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="0.9" xsi:schemaLocation="http://www.cisco.com/VIRL https://raw.github.com/CiscoVIRL/schema/v0.9/virl.xsd">
3     <extensions>
4         <entry key="management_network" type="String">flat</entry>
5     </extensions>
6     <node name="tg1" type="SIMPLE" subtype="server" location="570,238" vmImage="server-java">
7         <extensions>
8             <entry key="config" type="String">#cloud-config&#xD;
9 bootcmd:&#xD;
10 - ln -s -t /etc/rc.d /etc/rc.local&#xD;
11 hostname: tg1&#xD;
12 manage_etc_hosts: true&#xD;
13 nfs_server_scratch: $$NFS_SERVER_SCRATCH$$
14 nfs_server_common: $$NFS_SERVER_COMMON$$
15 runcmd:&#xD;
16 - start ttyS0&#xD;
17 - systemctl start getty@ttyS0.service&#xD;
18 - systemctl start rc-local&#xD;
19 - touch /tmp/before-sed&#xD;
20 - sed -i 's/^\s*PasswordAuthentication\s\+no/PasswordAuthentication yes/' /etc/ssh/sshd_config&#xD;
21 - echo "UseDNS no" &gt;&gt; /etc/ssh/sshd_config&#xD;
22 - service ssh restart&#xD;
23 - service sshd restart&#xD;
24 users:&#xD;
25 - default&#xD;
26 - gecos: User configured by VIRL Configuration Engine 0.21.4&#xD;
27   lock-passwd: false&#xD;
28   name: cisco&#xD;
29   plain-text-passwd: cisco&#xD;
30   shell: /bin/bash&#xD;
31   ssh-authorized-keys:&#xD;
32   - VIRL-USER-SSH-PUBLIC-KEY&#xD;
33   - VIRL-USER-SSH-PUBLIC-KEY&#xD;
34   sudo: ALL=(ALL) NOPASSWD:ALL&#xD;
35 write_files:&#xD;
36 - path: /etc/init/ttyS0.conf&#xD;
37   owner: root:root&#xD;
38   content: |&#xD;
39     # ttyS0 - getty&#xD;
40     # This service maintains a getty on ttyS0 from the point the system is&#xD;
41     # started until it is shut down again.&#xD;
42     start on stopped rc or RUNLEVEL=[12345]&#xD;
43     stop on runlevel [!12345]&#xD;
44     respawn&#xD;
45     exec /sbin/getty -L 115200 ttyS0 vt102&#xD;
46   permissions: '0644'&#xD;
47 - path: /etc/systemd/system/dhclient@.service&#xD;
48   content: |&#xD;
49     [Unit]&#xD;
50     Description=Run dhclient on %i interface&#xD;
51     After=network.target&#xD;
52     [Service]&#xD;
53     Type=oneshot&#xD;
54     ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease&#xD;
55     RemainAfterExit=yes&#xD;
56   owner: root:root&#xD;
57   permissions: '0644'&#xD;
58 - path: /usr/local/sbin/cloud-instance-name
59   content: |
60     #!/usr/bin/python
61     import pickle
62     print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name']
63   owner: root:root
64   permissions: '0755'
65 - path: /etc/rc.local&#xD;
66   owner: root:root&#xD;
67   permissions: '0755'&#xD;
68   content: |-&#xD;
69     #!/bin/sh&#xD;
70     grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1
71     grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1
72     nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }')
73     nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }')
74     instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '&lt;' | cut -f 1 -d '&gt;')
75     echo My instance name is $instance_name
76
77     MAXCOUNT=12
78     RETRY=5
79
80     mkdir -p /scratch
81     mkdir -p /mnt/common
82
83     echo "Mounting NFS directories"
84     count=0
85     while [ $count -lt $MAXCOUNT ] &amp;&amp; ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch
86     do
87       sleep 5
88       count=$[$count+1]
89     done
90
91     mount -t nfs "${nfs_server_common}" /mnt/common
92
93     mkdir /scratch/$(hostname)
94
95     exit 0&#xD;
96 </entry>
97             <entry key="Auto-generate config" type="Boolean">false</entry>
98         </extensions>
99         <interface id="0" name="eth1"/>
100         <interface id="1" name="eth2"/>
101     </node>
102     <node name="sut1" type="SIMPLE" subtype="vPP" location="425,26" vmImage="server-java">
103         <extensions>
104             <entry key="config" type="string">#cloud-config
105 bootcmd:
106 - ln -s -t /etc/rc.d /etc/rc.local
107 hostname: sut1
108 manage_etc_hosts: true
109 nfs_server_scratch: $$NFS_SERVER_SCRATCH$$
110 nfs_server_common: $$NFS_SERVER_COMMON$$
111 runcmd:
112 - start ttyS0
113 - systemctl start getty@ttyS0.service
114 - systemctl start rc-local
115 - sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config
116 - echo "UseDNS no" &gt;&gt; /etc/ssh/sshd_config
117 - service ssh restart
118 - service sshd restart
119 - sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf
120 - sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf
121 users:
122 - default
123 - gecos: User configured by VIRL Configuration Engine 0.21.4
124   lock-passwd: false
125   name: cisco
126   plain-text-passwd: cisco
127   shell: /bin/bash
128   ssh-authorized-keys:
129   - VIRL-USER-SSH-PUBLIC-KEY
130   - VIRL-USER-SSH-PUBLIC-KEY
131   sudo: ALL=(ALL) NOPASSWD:ALL
132 write_files:
133 - path: /etc/init/ttyS0.conf
134   owner: root:root
135   content: |
136     # ttyS0 - getty
137     # This service maintains a getty on ttyS0 from the point the system is
138     # started until it is shut down again.
139     start on stopped rc or RUNLEVEL=[12345]
140     stop on runlevel [!12345]
141     respawn
142     exec /sbin/getty -L 115200 ttyS0 vt102
143   permissions: '0644'
144 - path: /etc/systemd/system/dhclient@.service
145   content: |
146     [Unit]
147     Description=Run dhclient on %i interface
148     After=network.target
149     [Service]
150     Type=oneshot
151     ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease
152     RemainAfterExit=yes
153   owner: root:root
154   permissions: '0644'
155 - path: /usr/local/sbin/cloud-instance-name
156   content: |
157     #!/usr/bin/python
158     import pickle
159     print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name']
160   owner: root:root
161   permissions: '0755'
162 - path: /etc/rc.local&#xD;
163   owner: root:root&#xD;
164   permissions: '0755'&#xD;
165   content: |-&#xD;
166     #!/bin/sh&#xD;
167     grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1
168     grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1
169     nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }')
170     nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }')
171     instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '&lt;' | cut -f 1 -d '&gt;')
172     echo My instance name is $instance_name
173
174     MAXCOUNT=12
175     RETRY=5
176
177     mkdir -p /scratch
178     mkdir -p /mnt/common
179
180     echo "Mounting NFS directories"
181     count=0
182     while [ $count -lt $MAXCOUNT ] &amp;&amp; ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch
183     do
184       sleep 5
185       count=$[$count+1]
186     done
187
188     mount -t nfs "${nfs_server_common}" /mnt/common
189
190     mkdir /scratch/$(hostname)
191
192     exit 0&#xD;
193 </entry>
194         </extensions>
195         <interface id="0" name="GigabitEthernet0/4/0"/>
196         <interface id="1" name="GigabitEthernet0/5/0"/>
197     </node>
198     <node name="sut2" type="SIMPLE" subtype="vPP" location="748,26" vmImage="server-java">
199         <extensions>
200             <entry key="config" type="string">#cloud-config
201 bootcmd:
202 - ln -s -t /etc/rc.d /etc/rc.local
203 hostname: sut2
204 manage_etc_hosts: true
205 nfs_server_scratch: $$NFS_SERVER_SCRATCH$$
206 nfs_server_common: $$NFS_SERVER_COMMON$$
207 runcmd:
208 - start ttyS0
209 - systemctl start getty@ttyS0.service
210 - systemctl start rc-local
211 - sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config
212 - echo "UseDNS no" &gt;&gt; /etc/ssh/sshd_config
213 - service ssh restart
214 - service sshd restart
215 - sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf
216 - sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf
217 users:
218 - default
219 - gecos: User configured by VIRL Configuration Engine 0.21.4
220   lock-passwd: false
221   name: cisco
222   plain-text-passwd: cisco
223   shell: /bin/bash
224   ssh-authorized-keys:
225   - VIRL-USER-SSH-PUBLIC-KEY
226   - VIRL-USER-SSH-PUBLIC-KEY
227   sudo: ALL=(ALL) NOPASSWD:ALL
228 write_files:
229 - path: /etc/init/ttyS0.conf
230   owner: root:root
231   content: |
232     # ttyS0 - getty
233     # This service maintains a getty on ttyS0 from the point the system is
234     # started until it is shut down again.
235     start on stopped rc or RUNLEVEL=[12345]
236     stop on runlevel [!12345]
237     respawn
238     exec /sbin/getty -L 115200 ttyS0 vt102
239   permissions: '0644'
240 - path: /etc/systemd/system/dhclient@.service
241   content: |
242     [Unit]
243     Description=Run dhclient on %i interface
244     After=network.target
245     [Service]
246     Type=oneshot
247     ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease
248     RemainAfterExit=yes
249   owner: root:root
250   permissions: '0644'
251 - path: /usr/local/sbin/cloud-instance-name
252   content: |
253     #!/usr/bin/python
254     import pickle
255     print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).metadata['name']
256   owner: root:root
257   permissions: '0755'
258 - path: /etc/rc.local&#xD;
259   owner: root:root&#xD;
260   permissions: '0755'&#xD;
261   content: |-&#xD;
262     #!/bin/sh&#xD;
263     grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1
264     grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1
265     nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }')
266     nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }')
267     instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '&lt;' | cut -f 1 -d '&gt;')
268     echo My instance name is $instance_name
269
270     MAXCOUNT=12
271     RETRY=5
272
273     mkdir -p /scratch
274     mkdir -p /mnt/common
275
276     echo "Mounting NFS directories"
277     count=0
278     while [ $count -lt $MAXCOUNT ] &amp;&amp; ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch
279     do
280       sleep 5
281       count=$[$count+1]
282     done
283
284     mount -t nfs "${nfs_server_common}" /mnt/common
285
286     mkdir /scratch/$(hostname)
287
288     exit 0&#xD;
289 </entry>
290         </extensions>
291         <interface id="0" name="GigabitEthernet0/4/0"/>
292         <interface id="1" name="GigabitEthernet0/5/0"/>
293     </node>
294     <connection dst="/virl:topology/virl:node[1]/virl:interface[2]" src="/virl:topology/virl:node[3]/virl:interface[1]"/>
295     <connection dst="/virl:topology/virl:node[2]/virl:interface[2]" src="/virl:topology/virl:node[1]/virl:interface[1]"/>
296     <connection dst="/virl:topology/virl:node[3]/virl:interface[2]" src="/virl:topology/virl:node[2]/virl:interface[1]"/>
297 </topology>