nuageinit.sh (19fb9ad746517c7af9d79a982334b2550f285355) | nuageinit.sh (504981357aa36365784458cfe8d9e23097bfac7b) |
---|---|
1#- 2# Copyright (c) 2022 Baptiste Daroussin <bapt@FreeBSD.org> 3# 4# SPDX-License-Identifier: BSD-2-Clause 5# 6 |
|
1atf_test_case args 2atf_test_case nocloud 3atf_test_case nocloud_userdata_script 4atf_test_case nocloud_user_data_script | 7atf_test_case args 8atf_test_case nocloud 9atf_test_case nocloud_userdata_script 10atf_test_case nocloud_user_data_script |
5atf_test_case nocloud_userdata_cloudconfig | |
6atf_test_case nocloud_userdata_cloudconfig_users 7atf_test_case nocloud_network 8atf_test_case config2 9atf_test_case config2_pubkeys 10atf_test_case config2_pubkeys_user_data 11atf_test_case config2_pubkeys_meta_data 12atf_test_case config2_network 13atf_test_case config2_network_static_v4 14 | 11atf_test_case nocloud_userdata_cloudconfig_users 12atf_test_case nocloud_network 13atf_test_case config2 14atf_test_case config2_pubkeys 15atf_test_case config2_pubkeys_user_data 16atf_test_case config2_pubkeys_meta_data 17atf_test_case config2_network 18atf_test_case config2_network_static_v4 19 |
15 | |
16args_body() 17{ 18 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit 19 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla 20 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla meh plop 21 atf_check -s exit:1 -e inline:"Unknown cloud init type: meh\n" /usr/libexec/nuageinit bla meh 22} 23 --- 14 unchanged lines hidden (view full) --- 38 atf_check -o inline:"hostname=\"myhost\"\n" cat etc/rc.conf.d/hostname 39} 40 41nocloud_userdata_script_body() 42{ 43 here=$(pwd) 44 mkdir -p media/nuageinit 45 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data | 20args_body() 21{ 22 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit 23 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla 24 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla meh plop 25 atf_check -s exit:1 -e inline:"Unknown cloud init type: meh\n" /usr/libexec/nuageinit bla meh 26} 27 --- 14 unchanged lines hidden (view full) --- 42 atf_check -o inline:"hostname=\"myhost\"\n" cat etc/rc.conf.d/hostname 43} 44 45nocloud_userdata_script_body() 46{ 47 here=$(pwd) 48 mkdir -p media/nuageinit 49 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data |
46 printf "#!/bin/sh\necho "yeah"\n" > ${here}/media/nuageinit/user-data 47 chmod 755 ${here}/media/nuageinit/user-data | 50 printf "#!/bin/sh\necho yeah\n" > ${here}/media/nuageinit/user-data 51 chmod 755 ${here}/media/nuageinit/user-data |
48 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud 49} 50 51nocloud_user_data_script_body() 52{ 53 here=$(pwd) 54 mkdir -p media/nuageinit 55 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data | 52 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud 53} 54 55nocloud_user_data_script_body() 56{ 57 here=$(pwd) 58 mkdir -p media/nuageinit 59 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data |
56 printf "#!/bin/sh\necho "yeah"\n" > ${here}/media/nuageinit/user_data 57 chmod 755 ${here}/media/nuageinit/user_data | 60 printf "#!/bin/sh\necho yeah\n" > ${here}/media/nuageinit/user_data 61 chmod 755 ${here}/media/nuageinit/user_data |
58 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud 59} 60 61nocloud_userdata_cloudconfig_users_body() 62{ 63 here=$(pwd) 64 export NUAGE_FAKE_ROOTDIR=$(pwd) 65 if [ $(id -u) -ne 0 ]; then 66 atf_skip "root required" 67 fi 68 mkdir -p media/nuageinit 69 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data 70 mkdir -p etc | 62 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud 63} 64 65nocloud_userdata_cloudconfig_users_body() 66{ 67 here=$(pwd) 68 export NUAGE_FAKE_ROOTDIR=$(pwd) 69 if [ $(id -u) -ne 0 ]; then 70 atf_skip "root required" 71 fi 72 mkdir -p media/nuageinit 73 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data 74 mkdir -p etc |
71 cat > etc/master.passwd <<EOF | 75 cat > etc/master.passwd << EOF |
72root:*:0:0::0:0:Charlie &:/root:/bin/csh 73sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 74EOF 75 pwd_mkdb -d etc ${here}/etc/master.passwd | 76root:*:0:0::0:0:Charlie &:/root:/bin/csh 77sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 78EOF 79 pwd_mkdb -d etc ${here}/etc/master.passwd |
76 cat > etc/group <<EOF | 80 cat > etc/group << EOF |
77wheel:*:0:root 78users:*:1: 79EOF | 81wheel:*:0:root 82users:*:1: 83EOF |
80 cat > media/nuageinit/user-data <<EOF | 84 cat > media/nuageinit/user-data << EOF |
81#cloud-config 82groups: 83 - admingroup: [root,sys] 84 - cloud-users 85users: 86 - default 87 - name: foobar 88 gecos: Foo B. Bar --- 21 unchanged lines hidden (view full) --- 110 atf_check -o file:expectedgroup cat ${here}/etc/group 111} 112 113nocloud_network_body() 114{ 115 here=$(pwd) 116 mkdir -p media/nuageinit 117 mkdir -p etc | 85#cloud-config 86groups: 87 - admingroup: [root,sys] 88 - cloud-users 89users: 90 - default 91 - name: foobar 92 gecos: Foo B. Bar --- 21 unchanged lines hidden (view full) --- 114 atf_check -o file:expectedgroup cat ${here}/etc/group 115} 116 117nocloud_network_body() 118{ 119 here=$(pwd) 120 mkdir -p media/nuageinit 121 mkdir -p etc |
118 cat > etc/master.passwd <<EOF | 122 cat > etc/master.passwd << EOF |
119root:*:0:0::0:0:Charlie &:/root:/bin/csh 120sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 121EOF 122 pwd_mkdb -d etc ${here}/etc/master.passwd | 123root:*:0:0::0:0:Charlie &:/root:/bin/csh 124sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 125EOF 126 pwd_mkdb -d etc ${here}/etc/master.passwd |
123 cat > etc/group <<EOF | 127 cat > etc/group << EOF |
124wheel:*:0:root 125users:*:1: 126EOF 127 if [ $(id -u) -ne 0 ]; then 128 atf_skip "root required" 129 fi 130 mynetworks=$(ifconfig -l ether) 131 if [ -z "$mynetworks" ]; then 132 atf_skip "a network interface is needed" 133 fi 134 set -- $mynetworks 135 myiface=$1 136 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }') 137 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data | 128wheel:*:0:root 129users:*:1: 130EOF 131 if [ $(id -u) -ne 0 ]; then 132 atf_skip "root required" 133 fi 134 mynetworks=$(ifconfig -l ether) 135 if [ -z "$mynetworks" ]; then 136 atf_skip "a network interface is needed" 137 fi 138 set -- $mynetworks 139 myiface=$1 140 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }') 141 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data |
138 cat > media/nuageinit/user-data <<EOF | 142 cat > media/nuageinit/user-data << EOF |
139#cloud-config | 143#cloud-config |
140# | |
141network: 142 version: 2 143 ethernets: 144 # opaque ID for physical interfaces, only referred to by other stanzas 145 id0: 146 match: | 144network: 145 version: 2 146 ethernets: 147 # opaque ID for physical interfaces, only referred to by other stanzas 148 id0: 149 match: |
147 macaddress: '${myaddr}' | 150 macaddress: "$myaddr" |
148 addresses: 149 - 192.168.14.2/24 150 - 2001:1::1/64 151 gateway4: 192.168.14.1 152 gateway6: 2001:1::2 153EOF 154 export NUAGE_FAKE_ROOTDIR=$(pwd) 155 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit nocloud | 151 addresses: 152 - 192.168.14.2/24 153 - 2001:1::1/64 154 gateway4: 192.168.14.1 155 gateway6: 2001:1::2 156EOF 157 export NUAGE_FAKE_ROOTDIR=$(pwd) 158 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit nocloud |
156 cat > network <<EOF | 159 cat > network << EOF |
157ifconfig_${myiface}="inet 192.168.14.2/24" 158ifconfig_${myiface}_ipv6="inet6 2001:1::1/64" 159ipv6_network_interfaces="${myiface}" 160ipv6_default_interface="${myiface}" 161EOF | 160ifconfig_${myiface}="inet 192.168.14.2/24" 161ifconfig_${myiface}_ipv6="inet6 2001:1::1/64" 162ipv6_network_interfaces="${myiface}" 163ipv6_default_interface="${myiface}" 164EOF |
162 cat > routing <<EOF | 165 cat > routing << EOF |
163defaultrouter="192.168.14.1" 164ipv6_defaultrouter="2001:1::2" 165ipv6_route_${myiface}="2001:1::2 -prefixlen 128 -interface ${myiface}" 166EOF 167 atf_check -o file:network cat ${here}/etc/rc.conf.d/network 168 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing 169} 170config2_body() 171{ 172 here=$(pwd) 173 mkdir -p media/nuageinit 174 atf_check -s exit:1 -e match:"nuageinit: error parsing config-2: meta_data.json.*" /usr/libexec/nuageinit ${here}/media/nuageinit config-2 175 printf "{}" > media/nuageinit/meta_data.json 176 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 177 cat > media/nuageinit/meta_data.json << EOF 178{ | 166defaultrouter="192.168.14.1" 167ipv6_defaultrouter="2001:1::2" 168ipv6_route_${myiface}="2001:1::2 -prefixlen 128 -interface ${myiface}" 169EOF 170 atf_check -o file:network cat ${here}/etc/rc.conf.d/network 171 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing 172} 173config2_body() 174{ 175 here=$(pwd) 176 mkdir -p media/nuageinit 177 atf_check -s exit:1 -e match:"nuageinit: error parsing config-2: meta_data.json.*" /usr/libexec/nuageinit ${here}/media/nuageinit config-2 178 printf "{}" > media/nuageinit/meta_data.json 179 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 180 cat > media/nuageinit/meta_data.json << EOF 181{ |
179 "hostname": "cloudimg", | 182 "hostname": "cloudimg" |
180} 181EOF 182 export NUAGE_FAKE_ROOTDIR=$(pwd) 183 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 184 atf_check -o inline:"hostname=\"cloudimg\"\n" cat etc/rc.conf.d/hostname 185} 186 187config2_pubkeys_body() 188{ 189 here=$(pwd) 190 export NUAGE_FAKE_ROOTDIR=$(pwd) 191 if [ $(id -u) -ne 0 ]; then 192 atf_skip "root required" 193 fi 194 mkdir -p media/nuageinit 195 touch media/nuageinit/meta_data.json 196 cat > media/nuageinit/user-data << EOF 197#cloud-config | 183} 184EOF 185 export NUAGE_FAKE_ROOTDIR=$(pwd) 186 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 187 atf_check -o inline:"hostname=\"cloudimg\"\n" cat etc/rc.conf.d/hostname 188} 189 190config2_pubkeys_body() 191{ 192 here=$(pwd) 193 export NUAGE_FAKE_ROOTDIR=$(pwd) 194 if [ $(id -u) -ne 0 ]; then 195 atf_skip "root required" 196 fi 197 mkdir -p media/nuageinit 198 touch media/nuageinit/meta_data.json 199 cat > media/nuageinit/user-data << EOF 200#cloud-config |
198 | |
199ssh_authorized_keys: 200 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova" 201EOF 202 mkdir -p etc | 201ssh_authorized_keys: 202 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova" 203EOF 204 mkdir -p etc |
203 cat > etc/master.passwd <<EOF | 205 cat > etc/master.passwd << EOF |
204root:*:0:0::0:0:Charlie &:/root:/bin/csh 205sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 206EOF 207 pwd_mkdb -d etc ${here}/etc/master.passwd | 206root:*:0:0::0:0:Charlie &:/root:/bin/csh 207sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 208EOF 209 pwd_mkdb -d etc ${here}/etc/master.passwd |
208 cat > etc/group <<EOF | 210 cat > etc/group << EOF |
209wheel:*:0:root 210users:*:1: 211EOF 212 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 213 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys 214} 215 216 217config2_pubkeys_user_data_body() 218{ 219 here=$(pwd) 220 export NUAGE_FAKE_ROOTDIR=$(pwd) 221 if [ $(id -u) -ne 0 ]; then 222 atf_skip "root required" 223 fi 224 mkdir -p media/nuageinit 225 touch media/nuageinit/meta_data.json 226 cat > media/nuageinit/user_data << EOF 227#cloud-config | 211wheel:*:0:root 212users:*:1: 213EOF 214 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 215 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys 216} 217 218 219config2_pubkeys_user_data_body() 220{ 221 here=$(pwd) 222 export NUAGE_FAKE_ROOTDIR=$(pwd) 223 if [ $(id -u) -ne 0 ]; then 224 atf_skip "root required" 225 fi 226 mkdir -p media/nuageinit 227 touch media/nuageinit/meta_data.json 228 cat > media/nuageinit/user_data << EOF 229#cloud-config |
228 | |
229ssh_authorized_keys: 230 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova" 231EOF 232 mkdir -p etc | 230ssh_authorized_keys: 231 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova" 232EOF 233 mkdir -p etc |
233 cat > etc/master.passwd <<EOF | 234 cat > etc/master.passwd << EOF |
234root:*:0:0::0:0:Charlie &:/root:/bin/csh 235sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 236EOF 237 pwd_mkdb -d etc ${here}/etc/master.passwd | 235root:*:0:0::0:0:Charlie &:/root:/bin/csh 236sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 237EOF 238 pwd_mkdb -d etc ${here}/etc/master.passwd |
238 cat > etc/group <<EOF | 239 cat > etc/group << EOF |
239wheel:*:0:root 240users:*:1: 241EOF 242 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 243 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys 244} 245 246config2_pubkeys_meta_data_body() 247{ 248 here=$(pwd) 249 export NUAGE_FAKE_ROOTDIR=$(pwd) 250 if [ $(id -u) -ne 0 ]; then 251 atf_skip "root required" 252 fi 253 mkdir -p media/nuageinit | 240wheel:*:0:root 241users:*:1: 242EOF 243 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 244 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys 245} 246 247config2_pubkeys_meta_data_body() 248{ 249 here=$(pwd) 250 export NUAGE_FAKE_ROOTDIR=$(pwd) 251 if [ $(id -u) -ne 0 ]; then 252 atf_skip "root required" 253 fi 254 mkdir -p media/nuageinit |
254 cat > media/nuageinit/meta_data.json <<EOF | 255 cat > media/nuageinit/meta_data.json << EOF |
255{ | 256{ |
256 "uuid": "uuid_for_this_instance", 257 "admin_pass": "a_generated_password", 258 "public_keys": { 259 "tdb": "ssh-ed25519 my_key_id tdb@host" 260 }, 261 "keys": [ 262 { 263 "name": "tdb", 264 "type": "ssh", 265 "data": "ssh-ed25519 my_key_id tdb@host" 266 } 267 ], 268 "hostname": "freebsd-14-test.novalocal", 269 "name": "freebsd-14-test", 270 "launch_index": 0, 271 "availability_zone": "nova", 272 "random_seed": "long_random_seed", 273 "project_id": "my_project_id", 274 "devices": [], 275 "dedicated_cpus": [] | 257 "uuid": "uuid_for_this_instance", 258 "admin_pass": "a_generated_password", 259 "public_keys": { 260 "tdb": "ssh-ed25519 my_key_id tdb@host" 261 }, 262 "keys": [ 263 { 264 "name": "tdb", 265 "type": "ssh", 266 "data": "ssh-ed25519 my_key_id tdb@host" 267 } 268 ], 269 "hostname": "freebsd-14-test.novalocal", 270 "name": "freebsd-14-test", 271 "launch_index": 0, 272 "availability_zone": "nova", 273 "random_seed": "long_random_seed", 274 "project_id": "my_project_id", 275 "devices": [], 276 "dedicated_cpus": [] |
276} 277EOF 278 mkdir -p etc | 277} 278EOF 279 mkdir -p etc |
279 cat > etc/master.passwd <<EOF | 280 cat > etc/master.passwd << EOF |
280root:*:0:0::0:0:Charlie &:/root:/bin/csh 281sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 282EOF 283 pwd_mkdb -d etc ${here}/etc/master.passwd | 281root:*:0:0::0:0:Charlie &:/root:/bin/csh 282sys:*:1:0::0:0:Sys:/home/sys:/bin/csh 283EOF 284 pwd_mkdb -d etc ${here}/etc/master.passwd |
284 cat > etc/group <<EOF | 285 cat > etc/group << EOF |
285wheel:*:0:root 286users:*:1: 287EOF 288 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 289 atf_check -o inline:"ssh-ed25519 my_key_id tdb@host\n" cat home/freebsd/.ssh/authorized_keys 290} 291 | 286wheel:*:0:root 287users:*:1: 288EOF 289 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 290 atf_check -o inline:"ssh-ed25519 my_key_id tdb@host\n" cat home/freebsd/.ssh/authorized_keys 291} 292 |
292config2_network_body() { | 293config2_network_body() 294{ |
293 here=$(pwd) 294 mkdir -p media/nuageinit 295 printf "{}" > media/nuageinit/meta_data.json 296 mynetworks=$(ifconfig -l ether) 297 if [ -z "$mynetworks" ]; then 298 atf_skip "a network interface is needed" 299 fi 300 set -- $mynetworks 301 myiface=$1 302 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }') | 295 here=$(pwd) 296 mkdir -p media/nuageinit 297 printf "{}" > media/nuageinit/meta_data.json 298 mynetworks=$(ifconfig -l ether) 299 if [ -z "$mynetworks" ]; then 300 atf_skip "a network interface is needed" 301 fi 302 set -- $mynetworks 303 myiface=$1 304 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }') |
303cat > media/nuageinit/network_data.json <<EOF | 305cat > media/nuageinit/network_data.json << EOF |
304{ 305 "links": [ 306 { 307 "ethernet_mac_address": "$myaddr", 308 "id": "iface0", | 306{ 307 "links": [ 308 { 309 "ethernet_mac_address": "$myaddr", 310 "id": "iface0", |
309 "mtu": null, | 311 "mtu": null |
310 } 311 ], 312 "networks": [ 313 { 314 "id": "network0", 315 "link": "iface0", 316 "type": "ipv4_dhcp" 317 }, | 312 } 313 ], 314 "networks": [ 315 { 316 "id": "network0", 317 "link": "iface0", 318 "type": "ipv4_dhcp" 319 }, |
318 { // IPv6 319 "id": "private-ipv4", 320 "type": "ipv6", 321 "link": "iface0", 322 // supports condensed IPv6 with CIDR netmask 323 "ip_address": "2001:cdba::3257:9652/24", 324 "gateway": "fd00::1" 325 "routes": [ 326 { 327 "network": "::", 328 "netmask": "::", 329 "gateway": "fd00::1" 330 }, 331 { 332 "network": "::", 333 "netmask": "ffff:ffff:ffff::", 334 "gateway": "fd00::1:1" 335 }, 336 ], 337 "network_id": "da5bb487-5193-4a65-a3df-4a0055a8c0d8" 338}, 339 ], | 320 { // IPv6 321 "id": "private-ipv4", 322 "type": "ipv6", 323 "link": "iface0", 324 // supports condensed IPv6 with CIDR netmask 325 "ip_address": "2001:cdba::3257:9652/24", 326 "gateway": "fd00::1", 327 "routes": [ 328 { 329 "network": "::", 330 "netmask": "::", 331 "gateway": "fd00::1" 332 }, 333 { 334 "network": "::", 335 "netmask": "ffff:ffff:ffff::", 336 "gateway": "fd00::1:1" 337 } 338 ], 339 "network_id": "da5bb487-5193-4a65-a3df-4a0055a8c0d8" 340 } 341 ] |
340} 341EOF 342 export NUAGE_FAKE_ROOTDIR=$(pwd) 343 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 | 342} 343EOF 344 export NUAGE_FAKE_ROOTDIR=$(pwd) 345 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 |
344 cat > network <<EOF | 346 cat > network << EOF |
345ifconfig_${myiface}="DHCP" 346ifconfig_${myiface}_ipv6="inet6 2001:cdba::3257:9652/24" 347ipv6_network_interfaces="${myiface}" 348ipv6_default_interface="${myiface}" 349EOF | 347ifconfig_${myiface}="DHCP" 348ifconfig_${myiface}_ipv6="inet6 2001:cdba::3257:9652/24" 349ipv6_network_interfaces="${myiface}" 350ipv6_default_interface="${myiface}" 351EOF |
350 cat > routing <<EOF | 352 cat > routing << EOF |
351ipv6_defaultrouter="fd00::1" 352ipv6_route_${myiface}="fd00::1 -prefixlen 128 -interface ${myiface}" 353ipv6_static_routes="${myiface}" 354EOF 355 atf_check -o file:network cat ${here}/etc/rc.conf.d/network 356 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing 357} 358 | 353ipv6_defaultrouter="fd00::1" 354ipv6_route_${myiface}="fd00::1 -prefixlen 128 -interface ${myiface}" 355ipv6_static_routes="${myiface}" 356EOF 357 atf_check -o file:network cat ${here}/etc/rc.conf.d/network 358 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing 359} 360 |
359config2_network_static_v4_body() { | 361config2_network_static_v4_body() 362{ |
360 here=$(pwd) 361 mkdir -p media/nuageinit 362 printf "{}" > media/nuageinit/meta_data.json 363 mynetworks=$(ifconfig -l ether) 364 if [ -z "$mynetworks" ]; then 365 atf_skip "a network interface is needed" 366 fi 367 set -- $mynetworks 368 myiface=$1 369 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }') | 363 here=$(pwd) 364 mkdir -p media/nuageinit 365 printf "{}" > media/nuageinit/meta_data.json 366 mynetworks=$(ifconfig -l ether) 367 if [ -z "$mynetworks" ]; then 368 atf_skip "a network interface is needed" 369 fi 370 set -- $mynetworks 371 myiface=$1 372 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }') |
370cat > media/nuageinit/network_data.json <<EOF | 373cat > media/nuageinit/network_data.json << EOF |
371{ 372 "links": [ 373 { 374 "ethernet_mac_address": "$myaddr", 375 "id": "iface0", | 374{ 375 "links": [ 376 { 377 "ethernet_mac_address": "$myaddr", 378 "id": "iface0", |
376 "mtu": null, | 379 "mtu": null |
377 } 378 ], 379 "networks": [ 380 { 381 "id": "network0", 382 "link": "iface0", | 380 } 381 ], 382 "networks": [ 383 { 384 "id": "network0", 385 "link": "iface0", |
383 "type": "ipv4" | 386 "type": "ipv4", |
384 "ip_address": "10.184.0.244", 385 "netmask": "255.255.240.0", 386 "routes": [ | 387 "ip_address": "10.184.0.244", 388 "netmask": "255.255.240.0", 389 "routes": [ |
387 { 388 "network": "10.0.0.0", 389 "netmask": "255.0.0.0", 390 "gateway": "11.0.0.1" 391 }, 392 { 393 "network": "0.0.0.0", 394 "netmask": "0.0.0.0", 395 "gateway": "23.253.157.1" 396 } 397 ] 398 } 399] | 390 { 391 "network": "10.0.0.0", 392 "netmask": "255.0.0.0", 393 "gateway": "11.0.0.1" 394 }, 395 { 396 "network": "0.0.0.0", 397 "netmask": "0.0.0.0", 398 "gateway": "23.253.157.1" 399 } 400 ] 401 } 402 ] |
400} 401EOF 402 403 export NUAGE_FAKE_ROOTDIR=$(pwd) 404 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 | 403} 404EOF 405 406 export NUAGE_FAKE_ROOTDIR=$(pwd) 407 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2 |
405 cat > network <<EOF | 408 cat > network << EOF |
406ifconfig_${myiface}="inet 10.184.0.244 netmask 255.255.240.0" 407EOF | 409ifconfig_${myiface}="inet 10.184.0.244 netmask 255.255.240.0" 410EOF |
408 cat > routing <<EOF | 411 cat > routing << EOF |
409route_cloudinit1_${myiface}="-net 10.0.0.0 11.0.0.1 255.0.0.0" 410defaultrouter="23.253.157.1" 411static_routes="cloudinit1_${myiface}" 412EOF 413 atf_check -o file:network cat ${here}/etc/rc.conf.d/network 414 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing 415} 416 --- 15 unchanged lines hidden --- | 412route_cloudinit1_${myiface}="-net 10.0.0.0 11.0.0.1 255.0.0.0" 413defaultrouter="23.253.157.1" 414static_routes="cloudinit1_${myiface}" 415EOF 416 atf_check -o file:network cat ${here}/etc/rc.conf.d/network 417 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing 418} 419 --- 15 unchanged lines hidden --- |