@@ -132,29 +132,39 @@ cp /var/log/esxi_install.log "/vmfs/volumes/datastore1/firstboot-esxi_install.lo
132
132
<% }); %>
133
133
<% } %>
134
134
135
+ #parameters:vmkName, portgroup, switchName
136
+ createVmk () {
137
+ vmkMac=`esxcli network ip interface list | sed -ne '/^.*\Name: $1.*$/{N;s/.*MAC Address: //;p}'`
138
+ esxcli network vswitch standard portgroup add -p $2 -v $3
139
+ esxcli network ip interface remove -i $1
140
+ if [ -z $vmkMac ]
141
+ then
142
+ esxcli network ip interface add -i $1 -p $2
143
+ else
144
+ esxcli network ip interface add -i $1 -p $2 -M $vmkMac
145
+ fi
146
+ }
147
+
135
148
<% vmkid = 0 %>
136
149
<% if( typeof networkDevices !== 'undefined' ) { %>
137
150
<% networkDevices.forEach(function(n) { %>
138
151
currdev=<%=n.device%>
152
+ esxSwitchName=<%= typeof n.esxSwitchName!='undefined' ? n.esxSwitchName : 'vSwitch0' %>
139
153
<% if (n.device.substring(0,5) != 'vmnic') { %>
140
154
currdev=`esxcli network nic list | grep <%=n.device%> | cut -d ' ' -f 1`
141
155
<% } %>
142
156
<% if( undefined !== n.ipv4 ) { %>
143
157
<% if( undefined !== n.ipv4.vlanIds ) { %>
144
158
<% n.ipv4.vlanIds.forEach(function(vid) { %>
145
159
<% vmkname = 'vmk' + vmkid++ %>
146
- esxcli network vswitch standard portgroup add -p $currdev.<%=vid%> -v "<%= typeof n.esxSwitchName!='undefined' ? n.esxSwitchName : 'vSwitch0' %>"
147
- esxcli network ip interface remove -i <%=vmkname%>
148
- esxcli network ip interface add -i <%=vmkname%> -p $currdev.<%=vid%>
160
+ createVmk <%=vmkname%> $currdev.<%=vid%> $esxSwitchName
149
161
esxcli network ip interface ipv4 set -i <%=vmkname%> -I <%=n.ipv4.ipAddr%> -N <%=n.ipv4.netmask%> -t static
150
162
esxcli network ip route ipv4 add -n default -g <%=n.ipv4.gateway%>
151
163
esxcli network vswitch standard portgroup set -p $currdev.<%=vid%> -v <%=vid %>
152
164
<% }); %>
153
165
<% } else { %>
154
166
<% vmkname = 'vmk' + vmkid++ %>
155
- esxcli network vswitch standard portgroup add -p $currdev -v <%= typeof n.esxSwitchName!='undefined' ? n.esxSwitchName : 'vSwitch0' %>
156
- esxcli network ip interface remove -i <%=vmkname%>
157
- esxcli network ip interface add -i <%=vmkname%> -p $currdev
167
+ createVmk <%=vmkname%> $currdev $esxSwitchName
158
168
esxcli network ip interface ipv4 set -i <%=vmkname%> -I <%=n.ipv4.ipAddr%> -N <%=n.ipv4.netmask%> -t static
159
169
esxcli network ip route ipv4 add -n default -g <%=n.ipv4.gateway%>
160
170
<% } %>
@@ -163,25 +173,19 @@ cp /var/log/esxi_install.log "/vmfs/volumes/datastore1/firstboot-esxi_install.lo
163
173
<% if( undefined !== n.ipv6.vlanIds ) { %>
164
174
<% n.ipv6.vlanIds.forEach(function(vid) { %>
165
175
<% vmkname = 'vmk' + vmkid++ %>
166
- esxcli network vswitch standard portgroup add -p $currdev.<%=vid%> -v <%= typeof n.esxSwitchName!='undefined' ? n.esxSwitchName : 'vSwitch0' %>
167
- esxcli network ip interface remove -i <%=vmkname%>
168
- esxcli network ip interface add -i <%=vmkname%> -p $currdev.<%=vid%>
176
+ createVmk <%=vmkname%> $currdev.<%=vid%> $esxSwitchName
169
177
esxcli network ip interface ipv6 address add -i <%=vmkname%> -I <%=n.ipv6.ipAddr%>
170
178
esxcli network vswitch standard portgroup set -p $currdev.<%=vid%> -v <%=vid %>
171
179
<% }); %>
172
180
<% } else { %>
173
181
<% vmkname = 'vmk' + vmkid++ %>
174
- esxcli network vswitch standard portgroup add -p $currdev -v <%= typeof n.esxSwitchName!='undefined' ? n.esxSwitchName : 'vSwitch0' %>
175
- esxcli network ip interface remove -i <%=vmkname%>
176
- esxcli network ip interface add -i <%=vmkname%> -p $currdev
182
+ createVmk <%=vmkname%> $currdev $esxSwitchName
177
183
esxcli network ip interface ipv6 address add -i <%=vmkname%> -I <%=n.ipv6.ipAddr%>
178
184
<% } %>
179
185
<% } %>
180
186
<% if( (undefined === n.ipv6) && (undefined === n.ipv4) ) { %>
181
187
<% vmkname = 'vmk' + vmkid++ %>
182
- esxcli network vswitch standard portgroup add -p $currdev -v <%= typeof n.esxSwitchName!='undefined' ? n.esxSwitchName : 'vSwitch0' %>
183
- esxcli network ip interface remove -i <%=vmkname%>
184
- esxcli network ip interface add -i <%=vmkname%> -p $currdev
188
+ createVmk <%=vmkname%> $currdev $esxSwitchName
185
189
esxcli network ip interface ipv4 set -i <%=vmkname%> -t dhcp
186
190
<% } %>
187
191
<% }); %>
0 commit comments