42 lines
1.4 KiB
Bash
42 lines
1.4 KiB
Bash
for p in /srv/projects /srv/site /root/projects.tar.gz; do
|
|
[ ! -e "$p" ] || refuse "$p already exists; move it away first"
|
|
done
|
|
pkg_installed rsync || state_set no-rsync 1
|
|
user_add alice
|
|
|
|
# What task 1 backs up.
|
|
mkdir -p /srv/projects/src /srv/projects/docs
|
|
echo 'Project plan: move the team to the new file server.' >/srv/projects/plan.txt
|
|
printf 'print("hello")\n' >/srv/projects/src/app.py
|
|
seq 1 500 | sed 's/^/Note /' >/srv/projects/docs/notes.md
|
|
(cd /srv && find projects -type f -exec sha256sum {} + | sort -k2) >"$LAB_STATE/projects.sha"
|
|
state_set projects-id "$(stat -c "%i %.9W" /srv/projects)"
|
|
|
|
# What task 2 mirrors.
|
|
mkdir -p /srv/site/images
|
|
echo '<h1>Our shop</h1>' >/srv/site/index.html
|
|
echo '<h1>About us</h1>' >/srv/site/about.html
|
|
head -c 2M /dev/urandom >/srv/site/images/banner.bin
|
|
state_set index-sha "$(sha256sum </srv/site/index.html)"
|
|
|
|
# The peer and its sshd.
|
|
peer_up
|
|
cat >/etc/systemd/system/le-lab-peer-sshd.service <<'X'
|
|
[Unit]
|
|
Description=Practice lab sshd on the peer
|
|
Requires=le-lab-peer.service
|
|
After=le-lab-peer.service network.target
|
|
|
|
[Service]
|
|
NetworkNamespacePath=/run/netns/lepeer
|
|
ExecStartPre=/bin/mkdir -p /run/sshd
|
|
ExecStart=/usr/sbin/sshd -D -o ListenAddress=10.99.0.2:22 -o PidFile=none
|
|
KillMode=process
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
X
|
|
systemctl daemon-reload
|
|
systemctl enable --now --quiet le-lab-peer-sshd.service
|