lmn-client/edubox.yml
2023-02-07 19:18:57 +01:00

72 lines
2.2 KiB
YAML

---
## This playbook deploys a series of minimal systemd-nspawn containers
## for educational use on a host, for example to learn ansible!
## All containers use an apt cache on the host system and forward port
## 22 (ssh), 80 (http) and 443 (https) to ports >= 10000, 10100 and 10200
## respectively. A user 'ansi' in the 'sudo' group is prepared,
## either with empty password or an initial password to be set below.
##
## Modifications of the initial containers are kept in an overlay
## directory next to the container images in '/var/lib/machines/'.
## This allows to visit and compare the work of students on the host.
## To manage the containers after installation, run the playbook with
## one of the the following tags:
##
## --tags=start start all containers
## --tags=stop stop all containers
## --tags=restart stop, then start all containers
## --tags=reset reset all containers to the initial image
## --tags=purge purge all containers
## --tags=setup purge all containers and setup again
##
- name: apply configuration to the edubox
hosts: all # eduboxes
remote_user: ansible
become: true
vars:
contname: cont
## User name for the user in the container:
contuser: ansi
## Password for the user 'ansible' in the container,
## leave empty to log in without password:
contpwd: ""
## Adjust the number of containers here:
containers: "{{ range(0, 9 + 1) | list }}"
## Additional packages to be installed in the container:
cont_packages_extra:
- bind9-dnsutils
- file
- locales
- xz-utils
- lsof
- wget
- bind9-host
- libc-l10n
- traceroute
- bzip2
- netcat-traditional
- telnet
pre_tasks:
- name: install apt-cacher-ng
apt:
name: apt-cacher-ng
state: latest # noqa package-latest
- name: enable apt-cacher-ng
lineinfile:
path: /etc/apt/apt.conf.d/30proxy
line: 'Acquire::http::Proxy "http://localhost:3142/";'
create: true
- name: enable and start systemd-networkd on the host
systemd:
name: systemd-networkd
state: started
enabled: true
roles:
- up2date_debian
- educontainer
- networkdresolved