Compare commits
	
		
			No commits in common. "aa9a1fca434e93139b5f5226d58a9c7ecdb5d783" and "5438151f3df93579f7693472f58708cfac06caf4" have entirely different histories.
		
	
	
		
			aa9a1fca43
			...
			5438151f3d
		
	
		
					 9 changed files with 566 additions and 704 deletions
				
			
		| 
						 | 
					@ -14,22 +14,23 @@ VMs based on Qemu/KVM in school network.
 | 
				
			||||||
  Repository with ansible-playbook for seedbox install: https://codeberg.org/digitalsouveraeneschule/...
 | 
					  Repository with ansible-playbook for seedbox install: https://codeberg.org/digitalsouveraeneschule/...
 | 
				
			||||||
* `seedbox`-hostname must be resolvable via DNS
 | 
					* `seedbox`-hostname must be resolvable via DNS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Configuration / Variables
 | 
					## Activation / Default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### To enable VM support:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					vm_support: true
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Default: `vm_support: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Torrent Server
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					vm_torrent_srv: "myseedbox.linuxmuster.net"
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Default: `vm_torrent_srv: "seedbox.{{ domain }}"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  * **vm_support**
 | 
					 | 
				
			||||||
    This flag indicates whether to activate VM support.
 | 
					 | 
				
			||||||
    Type: *Boolean*
 | 
					 | 
				
			||||||
    Values:
 | 
					 | 
				
			||||||
    * `false` <-- (default)
 | 
					 | 
				
			||||||
    * `true`
 | 
					 | 
				
			||||||
  * **vm_torrent_serv**
 | 
					 | 
				
			||||||
    Name of the torrent server.
 | 
					 | 
				
			||||||
    Type: *String*
 | 
					 | 
				
			||||||
    Default: `vm_torrent_serv: "seedbox.{{ domain }}"`
 | 
					 | 
				
			||||||
  * **vm_uploadseed_pwd**
 | 
					 | 
				
			||||||
    Password for upload-seed. Used for image upload to torrent-server.
 | 
					 | 
				
			||||||
    Type: *String*
 | 
					 | 
				
			||||||
    Default: `secret = "token:topsecret"`
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Example
 | 
					## Example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,5 +41,5 @@ inventory.yml
 | 
				
			||||||
all:
 | 
					all:
 | 
				
			||||||
  vars:
 | 
					  vars:
 | 
				
			||||||
    vm_support: true
 | 
					    vm_support: true
 | 
				
			||||||
    vm_torrent_serv: "myseedbox.linuxmuster.net" # default: seedbox.{{ domain }}
 | 
					    vm_torrent_srv: "myseedbox.linuxmuster.net" # default: seedbox.{{ domain }}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1161
									
								
								inventory.yml
									
										
									
									
									
								
							
							
						
						
									
										1161
									
								
								inventory.yml
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -45,6 +45,31 @@
 | 
				
			||||||
        value: true
 | 
					        value: true
 | 
				
			||||||
        vtype: boolean
 | 
					        vtype: boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vars_files: lmn-vault
 | 
				
			||||||
 | 
					  vars:
 | 
				
			||||||
 | 
					    domain: "{{ ansible_domain }}"
 | 
				
			||||||
 | 
					    apt_conf: "{{ vault_apt_conf }}"  ## Acquire::http::Proxy "http://aptcache.example.org:3142/";
 | 
				
			||||||
 | 
					    ntp_serv: "{{ vault_ntp_serv }}"  ## ntp.example.org
 | 
				
			||||||
 | 
					    nfs_server: "{{ vault_nfs_server }}"  ## nfs.example.org
 | 
				
			||||||
 | 
					    proxy: "{{ vault_proxy }}"        ## http://firewall.example.org:3128
 | 
				
			||||||
 | 
					    no_proxy: "{{ vault_no_proxy }}"  ## firewall.example.org,server.example.org,idam.example.org,dw.example.org
 | 
				
			||||||
 | 
					    printservers: "{{ vault_printservers }}" ## ['10.0.0.1', '10.0.0.15']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ## PAM mount nextcloud, remove or leave empty to skip:
 | 
				
			||||||
 | 
					    web_dav: "{{ vault_web_dav }}"    ## https://nc.example.org/remote.php/dav/files/%(USER)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ## Local mirror for mscorefonts. Remove or leave empty to use no mirror:
 | 
				
			||||||
 | 
					    mirror_msfonts: "{{ vault_mirror_msfonts }}" ## http://livebox.example.org/mscorefonts/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ## Local mirror for libdvdcss. Remove or leave empty to use no mirror:
 | 
				
			||||||
 | 
					    mirror_dvdcss: "{{ vault_mirror_dvdcss }}"   ## http://livebox.example.org/libdvdcss/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    uploadseed_pwd: "{{ vault_uploadseed_pwd }}"
 | 
				
			||||||
 | 
					    keys2deploy: "{{ vault_keys2deploy }}" ## ['ssh-ed25519 AAAAC…uYlnS0', 'ssh-ed25519 AAAA…KTM']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ## Use grub-mkpasswd-pbkdf2 to calculate the password hash:
 | 
				
			||||||
 | 
					    grub_pwd: "{{ vault_grub_pwd }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  roles:
 | 
					  roles:
 | 
				
			||||||
    - lmn_network
 | 
					    - lmn_network
 | 
				
			||||||
    - role: up2date_debian
 | 
					    - role: up2date_debian
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,6 @@ misc_avoid_suspend: true
 | 
				
			||||||
misc_pwroff: true
 | 
					misc_pwroff: true
 | 
				
			||||||
misc_pwroff_idle: true
 | 
					misc_pwroff_idle: true
 | 
				
			||||||
misc_pxe_first: false
 | 
					misc_pxe_first: false
 | 
				
			||||||
misc_reporter_serv: ""
 | 
					misc_reporter: false
 | 
				
			||||||
misc_clonescreen: false
 | 
					misc_clonescreen: false
 | 
				
			||||||
misc_clonescreen_mode: "1920x1080@60"
 | 
					misc_clonescreen_mode: "1920x1080@60"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -162,11 +162,10 @@
 | 
				
			||||||
# Install reporter
 | 
					# Install reporter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Copy reporter
 | 
					- name: Copy reporter
 | 
				
			||||||
  ansible.builtin.template:
 | 
					  ansible.builtin.copy:
 | 
				
			||||||
    src: reporter.j2
 | 
					    src: reporter
 | 
				
			||||||
    dest: /usr/local/sbin/
 | 
					    dest: /usr/local/sbin/
 | 
				
			||||||
    mode: '0755'
 | 
					    mode: '0755'
 | 
				
			||||||
  when: misc_reporter_serv | length > 0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Provide services and timers for reporter
 | 
					- name: Provide services and timers for reporter
 | 
				
			||||||
  ansible.builtin.copy:
 | 
					  ansible.builtin.copy:
 | 
				
			||||||
| 
						 | 
					@ -176,13 +175,13 @@
 | 
				
			||||||
  loop:
 | 
					  loop:
 | 
				
			||||||
    - reporter.service
 | 
					    - reporter.service
 | 
				
			||||||
    - reporter.timer
 | 
					    - reporter.timer
 | 
				
			||||||
  when: misc_reporter_serv | length > 0
 | 
					  when: misc_reporter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Enable reporter.timer
 | 
					- name: Enable reporter.timer
 | 
				
			||||||
  ansible.builtin.systemd:
 | 
					  ansible.builtin.systemd:
 | 
				
			||||||
    name: reporter.timer
 | 
					    name: reporter.timer
 | 
				
			||||||
    enabled: true
 | 
					    enabled: true
 | 
				
			||||||
  when: misc_reporter_serv | length > 0
 | 
					  when: misc_reporter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Prepare CloneScreen on Presenter PCs
 | 
					# Prepare CloneScreen on Presenter PCs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,33 +0,0 @@
 | 
				
			||||||
#!/usr/bin/bash
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Send stdout of some commands to monitoring server.
 | 
					 | 
				
			||||||
# Collect the reports with 'nc -u -k -l 1234' on 'sendto'.
 | 
					 | 
				
			||||||
# Use /bin/nc.openbsd, /bin/nc.traditional seems not to work.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
set -eu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sendto="{{ misc_reporter_serv }} 1234"
 | 
					 | 
				
			||||||
n=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmds=(
 | 
					 | 
				
			||||||
    'uname -a'
 | 
					 | 
				
			||||||
    'tail -1 /var/local/ansible-stamps'
 | 
					 | 
				
			||||||
    'ip route list default'
 | 
					 | 
				
			||||||
    'ip link show | \
 | 
					 | 
				
			||||||
       sed -nE -e "s/^[2-9]: (\S+): .+/\1/p" -e "s/.+ether ([0-9a-f:]+) .+/\1/p" | \
 | 
					 | 
				
			||||||
       paste - -'
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
#    'w'
 | 
					 | 
				
			||||||
#    'uptime'
 | 
					 | 
				
			||||||
#    'ls -d --full-time /home/ansible/.ansible/tmp/'
 | 
					 | 
				
			||||||
#    'ip addr show'
 | 
					 | 
				
			||||||
#    'apt list --upgradeable -o Apt::Cmd::Disable-Script-Warning=true'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
r="$HOSTNAME ------- $(date --rfc-3339=seconds) -------
 | 
					 | 
				
			||||||
$(for c in "${cmds[@]}" ; do
 | 
					 | 
				
			||||||
      n=$(( n + 1 ))
 | 
					 | 
				
			||||||
      echo -n "$n"
 | 
					 | 
				
			||||||
      eval "$c" | sed 's/^/\t/'
 | 
					 | 
				
			||||||
done | sed "s/^/$HOSTNAME /")
 | 
					 | 
				
			||||||
## -------------------------------------------------"
 | 
					 | 
				
			||||||
echo "$r" | nc -w 1 -u $sendto
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
vm_support: false
 | 
					vm_support: false
 | 
				
			||||||
vm_torrent_serv: "seedbox.{{ domain }}"
 | 
					vm_torrent_srv: "seedbox.{{ domain }}"
 | 
				
			||||||
vm_uploadseed_pwd: secret = "token:topsecret"
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -169,7 +169,7 @@
 | 
				
			||||||
    group: lmnsynci
 | 
					    group: lmnsynci
 | 
				
			||||||
    mode: '0640'
 | 
					    mode: '0640'
 | 
				
			||||||
    content: |
 | 
					    content: |
 | 
				
			||||||
      {{ vm_uploadseed_pwd }}
 | 
					      {{ uploadseed_pwd }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Prepare directory for aria2 dht.dat
 | 
					- name: Prepare directory for aria2 dht.dat
 | 
				
			||||||
  ansible.builtin.file:
 | 
					  ansible.builtin.file:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
# variables for LMN VM submodule
 | 
					# variables for LMN VM submodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SEEDBOX_HOST="{{ vm_torrent_serv }}"
 | 
					SEEDBOX_HOST="{{ vm_torrent_srv }}"
 | 
				
			||||||
SEEDBOX_PORT=6789
 | 
					SEEDBOX_PORT=6789
 | 
				
			||||||
SEEDBOX_RPC_PORT=6800
 | 
					SEEDBOX_RPC_PORT=6800
 | 
				
			||||||
SEEDBOX_PWFILE="/etc/lmn/uploadseed.conf"
 | 
					SEEDBOX_PWFILE="/etc/lmn/uploadseed.conf"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue