This commit is contained in:
2025-11-04 23:10:43 +01:00
parent a38f0e1a5d
commit 79e096dd87
2 changed files with 157 additions and 16 deletions

View File

@@ -50,4 +50,62 @@ iptables -t nat -A POSTROUTING -o br-ext -p tcp -d 192.168.0.0/24 --dport 22
## Deploy
containerlab (via vscode) & go.
it takes about a minute for the setup to be ready (DHCP etc).
it takes a good minute (with 50 workstations) for the setup to be ready (DHCP etc).
to create a csv of the online-users, run
`echo "IP,host,username,pwd"; cat online-users.txt | awk -F' +' 'BEGIN{OFS=","} {$1=$1; print}'`
on linux-gateway.
## prep workshop
once the lab is deployed and the online-users.txt is built, generate the cards to print out:
### generate CSV
`(echo "IP,host,username,pwd"; cat online-users.txt | awk -F' +' 'BEGIN{OFS=","} {$1=$1; print}') > credentials.csv`
### csv2cards script
```
#!/usr/bin/env bash
# csv2cards.sh → html
CSV=${1:-credentials.csv}
OUT=${2:-cards.html}
# start the document
cat >"$OUT" <<'EOF'
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Credentials cards</title>
<style>
@page { size: A4 portrait; margin: 1cm; }
body { font-family: monospace; display: flex; flex-wrap: wrap; gap: 0.5cm; }
.card {
width: 9cm; /* fits 23 cards across A4 */
border: 1px solid #333;
padding: 0.3cm;
box-sizing: border-box;
page-break-inside: avoid;
}
.field { margin: 0.1cm 0; }
.label { font-weight: bold; }
</style>
</head>
<body>
EOF
# read CSV, skip header, emit a <div class="card"> per line
awk -F',' 'NR>1{
printf "<div class=\"card\">\n"
printf " <div class=\"field\"><span class=\"label\">IP:</span> %s</div>\n", $1
printf " <div class=\"field\"><span class=\"label\">Host:</span> %s</div>\n", $2
printf " <div class=\"field\"><span class=\"label\">User:</span> %s</div>\n", $3
printf " <div class=\"field\"><span class=\"label\">Pass:</span> %s</div>\n", $4
printf "</div>\n"
}' "$CSV" >>"$OUT"
# close the document
cat >>"$OUT" <<'EOF'
</body>
</html>
EOF
```
download html, print from browser. Should be automatically A4.