on hv1 <<'NODE' two_image || { echo "ÉCHOUÉ: image compatible two"; exit 0; } KEY=$(vm_key) check "VPC vp-s1" vpc_create vp-s1 10.210.0.0/16 check "subnet sn-s1a" subnet_create sn-s1a vp-s1 2101 10.210.1.1 10.210.1.0/24 check "subnet sn-s1b" subnet_create sn-s1b vp-s1 2102 10.210.2.1 10.210.2.0/24 check "backend two : socket de contrôle de sn-s1a" test -S /run/two/dhcp/vp-s1_br-s1a.sock check "backend two : socket de contrôle de sn-s1b" test -S /run/two/dhcp/vp-s1_br-s1b.sock check "VM s1-a1, démarrée seule" vm_create s1-a1 sn-s1a 10.210.1.10 "${KEY}" check "VM s1-a1 joignable" vm_wait vp-s1 10.210.1.10 check "VM s1-b1, démarrée seule" vm_create s1-b1 sn-s1b 10.210.2.10 "${KEY}" check "VM s1-b1 joignable" vm_wait vp-s1 10.210.2.10 vm_create s1-a2 sn-s1a 10.210.1.11 "${KEY}" > /tmp/s1-a2.log 2>&1 & A=$! vm_create s1-b2 sn-s1b 10.210.2.11 "${KEY}" > /tmp/s1-b2.log 2>&1 & B=$! wait "${A}"; RA=$? wait "${B}"; RB=$? check "VM s1-a2, démarrée en même temps que s1-b2" test "${RA}" -eq 0 check "VM s1-b2, démarrée en même temps que s1-a2" test "${RB}" -eq 0 for vm in 10.210.1.10:10.210.1.1 10.210.1.11:10.210.1.1 10.210.2.10:10.210.2.1 10.210.2.11:10.210.2.1; do ip=${vm%%:*}; gw=${vm#*:} check "${ip} joignable" vm_wait vp-s1 "${ip}" check "${ip} : adresse de son propre subnet" has_addr vp-s1 "${ip}" check "${ip} : bail DHCP tenu par systemd-networkd" vm_ssh vp-s1 "${ip}" 'ls /run/systemd/netif/leases/ | grep -q .' check "${ip} : route par défaut via ${gw}" route_via vp-s1 "${ip}" default "${gw}" check "${ip} : route vers la VPC via ${gw}" route_via vp-s1 "${ip}" 10.210.0.0/16 "${gw}" check "${ip} : route /32 vers les métadonnées via ${gw}" route_via vp-s1 "${ip}" 169.254.169.254 "${gw}" done mac () { vm_ssh vp-s1 "${1}" 'cat /sys/class/net/ens3/address'; } A_MACS=$(printf '%s\n' "$(mac 10.210.1.10)" "$(mac 10.210.1.11)" | sort | tr '\n' ' ' | sed 's/ $//') B_MACS=$(printf '%s\n' "$(mac 10.210.2.10)" "$(mac 10.210.2.11)" | sort | tr '\n' ' ' | sed 's/ $//') info "MAC de sn-s1a : ${A_MACS} ; de sn-s1b : ${B_MACS}" check "probe sn-s1a : uniquement les MAC de sn-s1a" test "$(dhcp_hosts vp-s1_br-s1a)" = "${A_MACS}" check "probe sn-s1b : uniquement les MAC de sn-s1b" test "$(dhcp_hosts vp-s1_br-s1b)" = "${B_MACS}" NODE