72 lines
2.2 KiB
YAML
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
|
|
- systemd-networkd-resolved
|