forked from rc/classroom
		
	Compare commits
	
		
			75 commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						fac2e2f180 | ||
| 
							 | 
						24c5b6b2f4 | ||
| 
							 | 
						8b96036196 | ||
| 
							 | 
						7cea32ecba | ||
| 
							 | 
						9ca982641a | ||
| 60ad70a09f | |||
| e85524eb7c | |||
| 
							 | 
						662d47db56 | ||
| 
							 | 
						47171e65c6 | ||
| 
							 | 
						0eaf4a5d40 | ||
| 
							 | 
						7c4c3ac93e | ||
| 
							 | 
						889083aee0 | ||
| 
							 | 
						61e9e01978 | ||
| 
							 | 
						d39dd739ca | ||
| 
							 | 
						725737321d | ||
| 
							 | 
						c1ade197c3 | ||
| 
							 | 
						04c02ecbef | ||
| 
							 | 
						cccf0d86d1 | ||
| 
							 | 
						8ca99c1f3a | ||
| 02a44e9186 | |||
| 
							 | 
						7f57513b1c | ||
| 
							 | 
						f1c8801774 | ||
| 
							 | 
						eb4a2974ad | ||
| 
							 | 
						78e7df1fb1 | ||
| 
							 | 
						09138174d4 | ||
| 
							 | 
						0f8f8486f0 | ||
| 
							 | 
						3e7b20423e | ||
| 
							 | 
						4c69926932 | ||
| 
							 | 
						ca58fd58a1 | ||
| 
							 | 
						6a6dabe4f4 | ||
| 
							 | 
						5f34e04926 | ||
| 
							 | 
						84c21cd863 | ||
| 
							 | 
						99c9ae8848 | ||
| 
							 | 
						e4ba740edf | ||
| 
							 | 
						e0de1f5493 | ||
| 
							 | 
						ab1e0da566 | ||
| 
							 | 
						674ea7977c | ||
| 
							 | 
						14a0096779 | ||
| 
							 | 
						76dff08c65 | ||
| 
							 | 
						5db95e8709 | ||
| 
							 | 
						d03aa86378 | ||
| 
							 | 
						a0713cd89a | ||
| 
							 | 
						8b2bbbd240 | ||
| 
							 | 
						9d90dbffbe | ||
| 
							 | 
						15eb772ba0 | ||
| 
							 | 
						bdc4fa2fc5 | ||
| 
							 | 
						fc01fec18c | ||
| 
							 | 
						99a8aa06db | ||
| 
							 | 
						9e9d487d57 | ||
| 
							 | 
						529623497c | ||
| 
							 | 
						d985d8ff84 | ||
| 
							 | 
						07f4a73dae | ||
| 
							 | 
						7559b049a2 | ||
| 
							 | 
						4d3b5f20a7 | ||
| 
							 | 
						93b01e5d53 | ||
| 
							 | 
						0d1e32c626 | ||
| 
							 | 
						c15d6f1edf | ||
| 79293545d3 | |||
| 
							 | 
						c5754dece2 | ||
| 
							 | 
						957cd67eb7 | ||
| 
							 | 
						beb1dbb757 | ||
| 
							 | 
						707090192c | ||
| 
							 | 
						4175f483db | ||
| 
							 | 
						41b392ee1e | ||
| 
							 | 
						8136635a6f | ||
| 
							 | 
						782f385a29 | ||
| 
							 | 
						bcb4d836b2 | ||
| 
							 | 
						d0b2a77216 | ||
| 
							 | 
						eb1e6012bd | ||
| 
							 | 
						e1ac068953 | ||
| 
							 | 
						90421ef1d1 | ||
| 
							 | 
						15ea864ddc | ||
| 
							 | 
						5620a7ebfe | ||
| 
							 | 
						e2b92f7a31 | ||
| 
							 | 
						5954f4e3ba | 
					 146 changed files with 2058 additions and 268 deletions
				
			
		
							
								
								
									
										38
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										38
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,41 @@
 | 
			
		|||
# Using the ansible scripts
 | 
			
		||||
 | 
			
		||||
Ansible playbooks for deploying classroom computers. Run with something like:
 | 
			
		||||
 | 
			
		||||
    ansible-playbook --user <local admin> -k -K -i inventory.yml setup.py
 | 
			
		||||
 | 
			
		||||
or, for Apple computers:
 | 
			
		||||
    ansible-playbook --user <local admin> -k -K -i inventory.yml macsetup.py 
 | 
			
		||||
 | 
			
		||||
    ansible-playbook --user <local admin> -k -K -i inventory.yml macsetup.py
 | 
			
		||||
 | 
			
		||||
# How classroom computers are prepared at FRI
 | 
			
		||||
 | 
			
		||||
The computers are prepared as follows:
 | 
			
		||||
  - Ask teachers to check their requirements.
 | 
			
		||||
  - Fix ansible scripts according to the requirements.
 | 
			
		||||
  - Set up a fresh Windows and Linux install on a VM, using files in unattended\_install.
 | 
			
		||||
  - Use ansible to deploy the software, fixing fresh bugs due to changes in the install processes along the way.
 | 
			
		||||
  - Fix root filesystem UUIDs to what they were last year so the network-booted menu still works.
 | 
			
		||||
  - Create partition table image and partition images using [FRI Backup](https://github.com/UL-FRI/ansible_classroom_deploy/tree/main/fri_backup).
 | 
			
		||||
  - Deploy the images on separate VMs - one for Linux, one for Windows.
 | 
			
		||||
  - Have teachers check their software in the VMs, report any problems.
 | 
			
		||||
  - Fix problems on the VMs.
 | 
			
		||||
  - Create partition images for Windows on one VM, for Linux on the other.
 | 
			
		||||
  - Deploy the images on a limited number of computers in the classrooms using FRI Backup.
 | 
			
		||||
  - Test the newly deployed computers, fix identified problems on the VMs.
 | 
			
		||||
  - Join the Linux VM into AD. One AD account is used for all computers.
 | 
			
		||||
  - Deploy the partition tables and partitions to the classrooms using [custom ansible scripts](https://github.com/UL-FRI/ansible_classroom_deploy/tree/main/polz_scripts) running FRI Backup and [UDPCast](https://www.udpcast.linux.lu/cmd.html).
 | 
			
		||||
  - Join Windows into AD.
 | 
			
		||||
 | 
			
		||||
# Immutable computers
 | 
			
		||||
 | 
			
		||||
Some pieces of modern software assume that a computer is only used by one user who has practically unlimited space in their home folder. Examples of such software are Android Studio, Visual Studio Code, Matlab, Windows Subsystem for Linux (WSUS) and others. Instead of trying to get the software to work, we might just give up and have everyone use the same account on each computer, then wipe all data after they log out / reboot.
 | 
			
		||||
 | 
			
		||||
## Windows
 | 
			
		||||
 | 
			
		||||
We intend to use [UWF](https://learn.microsoft.com/en-us/windows/configuration/wcd/wcd-unifiedwritefilter).
 | 
			
		||||
 | 
			
		||||
## Linux
 | 
			
		||||
 | 
			
		||||
We intend to use [snapper](https://wiki.archlinux.org/title/Snapper).
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										19
									
								
								join_ad.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								join_ad.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
- name: Gather facts / setup connection
 | 
			
		||||
  hosts: '*'
 | 
			
		||||
  gather_facts: false
 | 
			
		||||
  become: false
 | 
			
		||||
  vars_files:
 | 
			
		||||
    - vars/credentials.yml
 | 
			
		||||
  roles:
 | 
			
		||||
    - facts
 | 
			
		||||
 | 
			
		||||
- name: Join AD
 | 
			
		||||
  hosts: '*'
 | 
			
		||||
  become: true
 | 
			
		||||
  debugger: on_failed
 | 
			
		||||
  vars_files:
 | 
			
		||||
    - vars/credentials.yml
 | 
			
		||||
  vars:
 | 
			
		||||
    domain_name: "FRI1.UNI-LJ.SI"
 | 
			
		||||
  roles:
 | 
			
		||||
    - ad_joined
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
- hosts: ucilnice-prototip
 | 
			
		||||
- hosts: classroom
 | 
			
		||||
  become_method: sudo
 | 
			
		||||
  become: true
 | 
			
		||||
  vars:
 | 
			
		||||
    ansible_port: 1001
 | 
			
		||||
    # ansible_port: 1001
 | 
			
		||||
    ansible_ssh_extra_args: '-o ForwardX11=yes'
 | 
			
		||||
    # ansible_become_pass: '{{ lookup("env", "ANSIBLE_PASSWORD") }}'
 | 
			
		||||
    # ansible_password: '{{ lookup("env", "ANSIBLE_PASSWORD") }}'
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +12,8 @@
 | 
			
		|||
    - vars/credentials.yml
 | 
			
		||||
    - vars/software_keys.yml
 | 
			
		||||
  roles:
 | 
			
		||||
    # - orange
 | 
			
		||||
    # - nodejs
 | 
			
		||||
    # - qcadesigner-e
 | 
			
		||||
    - all_classes
 | 
			
		||||
    # - fri_base
 | 
			
		||||
    # - powerdesigner
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,8 @@
 | 
			
		|||
# Digitalno načrtovanje
 | 
			
		||||
# Nejc.Ilc@fri.uni-lj.si
 | 
			
		||||
# ratko.pilipovic@fri.uni-lj.si
 | 
			
		||||
# Windows, Vivado 2022.1
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: vivado
 | 
			
		||||
  - role: iverilog
 | 
			
		||||
  - role: cocotb
 | 
			
		||||
  - role: surfer-project
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,11 @@
 | 
			
		|||
# Digitalno procesiranje signalov
 | 
			
		||||
# Aleks.Huc@fri.uni-lj.si
 | 
			
		||||
# metod.celestina@dewesoft.si
 | 
			
		||||
# Windows, GNU/Linux, Matlab, wfdb, Octave, Audacity
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: matlab
 | 
			
		||||
  - role: wfdb
 | 
			
		||||
  - role: octave
 | 
			
		||||
  - role: audacity
 | 
			
		||||
  - role: numpy
 | 
			
		||||
  - role: matplotlib
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,3 +7,6 @@
 | 
			
		|||
dependencies:
 | 
			
		||||
  - role: jupyter
 | 
			
		||||
  - role: openssl
 | 
			
		||||
  - role: cryptodome
 | 
			
		||||
  - role: pwntools
 | 
			
		||||
  - role: python3
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,10 @@
 | 
			
		|||
# Načrtovanje digitalnih naprav
 | 
			
		||||
# Miran.Koprivec@fri.uni-lj.si, Miha.Moskon@fri.uni-lj.si
 | 
			
		||||
# Windows, Vivado 2022.1
 | 
			
		||||
# Načrtovanje digitalnih naprav
 | 
			
		||||
# Miha.Moskon@fri.uni-lj.si
 | 
			
		||||
# Miran.Koprivec@fri.uni-lj.si, Miha.Moskon@fri.uni-lj.si, ratko.pilipovic@fri.uni-lj.si
 | 
			
		||||
# Windows, Vivado 2022.1
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: putty
 | 
			
		||||
  - role: vivado
 | 
			
		||||
  - role: cp2102_driver
 | 
			
		||||
  - role: cocotb
 | 
			
		||||
  - role: iverilog
 | 
			
		||||
  - role: surfer-project
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
# Windows, Logisim, Logisim Evolution, RAVINOR, CubeIDE + Tools, VSCode + ST plugin, Putty
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: logisim
 | 
			
		||||
  - role: stm32cube
 | 
			
		||||
  # - role: stm32cube
 | 
			
		||||
  - role: vscode
 | 
			
		||||
  - role: putty
 | 
			
		||||
  - role: stm32duino
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,3 +6,4 @@ dependencies:
 | 
			
		|||
  - role: gedit
 | 
			
		||||
  - role: mono
 | 
			
		||||
  - role: vscode
 | 
			
		||||
  - role: notepad++
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,4 +2,4 @@
 | 
			
		|||
# Tomaz.Dobravec@fri.uni-lj.si
 | 
			
		||||
# Windows, Pelles C
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: pelles-c
 | 
			
		||||
  - role: clion
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								roles/PR-63765/meta/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								roles/PR-63765/meta/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
# Podatkovno rudarjenje
 | 
			
		||||
# rok.gomiscek@fri.uni-lj.si
 | 
			
		||||
# 
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: jupyter
 | 
			
		||||
  - role: pandas
 | 
			
		||||
  - role: matplotlib
 | 
			
		||||
  - role: plotly
 | 
			
		||||
  - role: seaborn
 | 
			
		||||
  - role: altair
 | 
			
		||||
  - role: scikit-learn
 | 
			
		||||
  - role: mlxtend
 | 
			
		||||
  - role: networkx
 | 
			
		||||
  - role: transformers
 | 
			
		||||
  - role: datasets
 | 
			
		||||
  - role: evaluate
 | 
			
		||||
  - role: torch # includes torchvision
 | 
			
		||||
  - role: streamlit
 | 
			
		||||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
# Ziga.Pusnik@fri.uni-lj.si, Robert.Rozman@fri.uni-lj.si
 | 
			
		||||
# Windows, CubeIDE + tools, STMDuino, VSCode, WinIdea 9.21 + GCC + QEMU, Visual2
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: stm32cube #   (CubeMonitor sem vzel samo exe)
 | 
			
		||||
  # - role: stm32cube #   (CubeMonitor sem vzel samo exe)
 | 
			
		||||
  - role: stm32duino
 | 
			
		||||
  - role: vscode
 | 
			
		||||
  - role: putty
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
# Robert.Rozman@fri.uni-lj.si
 | 
			
		||||
# Windows, CubeIDE + Tools, STMDuino, VSCode, LTSpice, PulseView,Putty, STM32 Algobuilder & Unicleo GUI
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: stm32cube
 | 
			
		||||
  #- role: stm32cube
 | 
			
		||||
  - role: stm32duino
 | 
			
		||||
  - role: vscode
 | 
			
		||||
  - role: ltspice
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,4 +14,5 @@ dependencies:
 | 
			
		|||
  - role: jdk
 | 
			
		||||
  - role: jupyter
 | 
			
		||||
  - role: pycharm
 | 
			
		||||
  - role: cryptography
 | 
			
		||||
  - role: flask 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								roles/ad_joined/files/kstart.service
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								roles/ad_joined/files/kstart.service
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
[Service]
 | 
			
		||||
Type=forking
 | 
			
		||||
ExecStart=/usr/bin/k5start -f /etc/krb5.keytab -U -k /tmp/krb5cc_0 -o root -b -K 60 -v -L
 | 
			
		||||
							
								
								
									
										38
									
								
								roles/ad_joined/files/pam_mount.conf.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								roles/ad_joined/files/pam_mount.conf.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
 | 
			
		||||
 | 
			
		||||
<pam_mount>
 | 
			
		||||
  <!-- Example using CIFS -->
 | 
			
		||||
  <debug enable="0" />
 | 
			
		||||
  <volume
 | 
			
		||||
      fstype="cifs"
 | 
			
		||||
      server="ucilnicesmb.fri1.uni-lj.si"
 | 
			
		||||
      path="profiles/%(DOMAIN_USER).%(DOMAIN_NAME)"
 | 
			
		||||
      mountpoint="~/"
 | 
			
		||||
      options="sec=krb5i,cruid=%(USERUID),nobrl,sfu,mfsymlinks,dir_mode=0700,file_mode=0700,cache=loose,nostrictsync"
 | 
			
		||||
  >
 | 
			
		||||
    <not>
 | 
			
		||||
      <or>
 | 
			
		||||
        <user>local_admin</user>
 | 
			
		||||
        <user>root</user>
 | 
			
		||||
        <user>lightdm</user>
 | 
			
		||||
        <sgrp>users</sgrp>
 | 
			
		||||
      </or>
 | 
			
		||||
    </not>
 | 
			
		||||
  </volume>
 | 
			
		||||
  <!-- <volume
 | 
			
		||||
      fstype="cifs"
 | 
			
		||||
      server="ucilnicesmb.fri1.uni-lj.si"
 | 
			
		||||
      path="profiles/%(DOMAIN_USER).V6"
 | 
			
		||||
      mountpoint="~/win_profile"
 | 
			
		||||
      options="sec=krb5i,cruid=%(USERUID)"
 | 
			
		||||
  >
 | 
			
		||||
    <not>
 | 
			
		||||
      <or>
 | 
			
		||||
        <user>local_admin</user>
 | 
			
		||||
        <user>root</user>
 | 
			
		||||
        <sgrp>users</sgrp>
 | 
			
		||||
      </or>
 | 
			
		||||
    </not>
 | 
			
		||||
  </volume> -->
 | 
			
		||||
</pam_mount>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,25 +1,40 @@
 | 
			
		|||
- name: Enable create homedir on login
 | 
			
		||||
  command: pam-auth-update --enable mkhomedir
 | 
			
		||||
  become: true
 | 
			
		||||
- name: Install required packages
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
      - realmd
 | 
			
		||||
      - sssd
 | 
			
		||||
      - libpam-mount
 | 
			
		||||
      - kstart
 | 
			
		||||
      - heimdal-clients
 | 
			
		||||
 | 
			
		||||
- name: Remove krb5-user
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
      krb5-user
 | 
			
		||||
    state: absent
 | 
			
		||||
 | 
			
		||||
- name: Set OU
 | 
			
		||||
  set_fact:
 | 
			
		||||
    ou_path: "OU={{locations[0]}},OU=Ucilnice"
 | 
			
		||||
 | 
			
		||||
- name: Show state
 | 
			
		||||
  debug:
 | 
			
		||||
    msg: "Host: {{inventory_hostname}}, OU: {{ou_path}}"
 | 
			
		||||
  # - import_tasks: ne_sysprep.yaml
 | 
			
		||||
 | 
			
		||||
- name: "Rename"
 | 
			
		||||
  # Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
 | 
			
		||||
  hostname:
 | 
			
		||||
    name: "{{inventory_hostname}}-linux"
 | 
			
		||||
  register: hostname_res
 | 
			
		||||
 | 
			
		||||
- name: Check whether we already joined
 | 
			
		||||
  command: /bin/bash -c "/usr/sbin/realm list"
 | 
			
		||||
  register: realm_list_results
 | 
			
		||||
  - name: Set OU
 | 
			
		||||
    set_fact:
 | 
			
		||||
      ou_path: "OU={{locations[0]}},OU=Ucilnice"
 | 
			
		||||
  - name: Show state
 | 
			
		||||
    debug:
 | 
			
		||||
      msg: "Host: {{inventory_hostname}}, OU: {{ou_path}}"
 | 
			
		||||
  # - import_tasks: ne_sysprep.yaml
 | 
			
		||||
  - name: "Rename"
 | 
			
		||||
    # Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
 | 
			
		||||
    hostname:
 | 
			
		||||
      name: "{{inventory_hostname}}"
 | 
			
		||||
    register: hostname_res
 | 
			
		||||
 | 
			
		||||
- name: Join using realmd
 | 
			
		||||
  expect:
 | 
			
		||||
    command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} FRI1.UNI-LJ.SI
 | 
			
		||||
    command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} {{domain_name}}
 | 
			
		||||
    responses:
 | 
			
		||||
      (?i)Password: "{{ad_join_password}}"
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
| 
						 | 
				
			
			@ -32,3 +47,39 @@
 | 
			
		|||
    owner: root
 | 
			
		||||
    mode: 0600
 | 
			
		||||
 | 
			
		||||
#- name: Configure libpam-mount
 | 
			
		||||
#  copy:
 | 
			
		||||
#    src: pam_mount.conf.xml
 | 
			
		||||
#    dest: /etc/security/pam_mount.conf.xml
 | 
			
		||||
 | 
			
		||||
#- name: Enable libpam-mount
 | 
			
		||||
#  command: pam-auth-update --enable libpam-mount
 | 
			
		||||
#  become: true
 | 
			
		||||
 | 
			
		||||
- name: Disable libpam-mkhomedir
 | 
			
		||||
  command: pam-auth-update --disable mkhomedir
 | 
			
		||||
  become: true
 | 
			
		||||
 | 
			
		||||
- name: Create kstart service
 | 
			
		||||
  copy:
 | 
			
		||||
    src: kstart.service
 | 
			
		||||
    dest: /etc/systemd/system/kstart.service
 | 
			
		||||
 | 
			
		||||
- name: Start kstart service to enable cifs mount
 | 
			
		||||
  copy:
 | 
			
		||||
    src: kstart.service
 | 
			
		||||
    dest: /etc/systemd/system/kstart.service
 | 
			
		||||
 | 
			
		||||
- name: Add mount - cifs_home
 | 
			
		||||
  mount:
 | 
			
		||||
    boot: true
 | 
			
		||||
    fstype: cifs
 | 
			
		||||
    src: "//ucilnicesmb.fri1.uni-lj.si/ucilnice_d"
 | 
			
		||||
    path: /mnt/cifs_home
 | 
			
		||||
    state: mounted
 | 
			
		||||
    opts: "cruid=0,username={{ inventory_hostname }}-linux@FRI1.UNI-LJ.SI,sec=krb5i,nobrl,sfu,nostrictsync,cache=loose,mfsymlinks,dir_mode=0700,file_mode=0700,fsc,multiuser,x-systemd.requires=kstart.service"
 | 
			
		||||
 | 
			
		||||
- name: Restart sssd
 | 
			
		||||
  service:
 | 
			
		||||
    name: sssd
 | 
			
		||||
    state: restarted
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +1,22 @@
 | 
			
		|||
- name: Set OU
 | 
			
		||||
  set_fact:
 | 
			
		||||
    ou_path: "OU={{locations[0]}},OU=Ucilnice,DC=fri1,DC=uni-lj,DC=si"
 | 
			
		||||
 | 
			
		||||
- name: "Rename"
 | 
			
		||||
  # Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
 | 
			
		||||
  win_hostname:
 | 
			
		||||
    name: "{{inventory_hostname}}"
 | 
			
		||||
  register: hostname_res
 | 
			
		||||
 | 
			
		||||
- name: "Reboot after hostname change"
 | 
			
		||||
  win_reboot:
 | 
			
		||||
  when: hostname_res.reboot_required
 | 
			
		||||
 | 
			
		||||
- name: Stop Windows Update Service
 | 
			
		||||
  win_service: 
 | 
			
		||||
    name: wuauserv
 | 
			
		||||
    state: stopped
 | 
			
		||||
 | 
			
		||||
- name: Clear WSUS ID from registry
 | 
			
		||||
  win_regedit: 
 | 
			
		||||
    path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
 | 
			
		||||
| 
						 | 
				
			
			@ -24,25 +28,40 @@
 | 
			
		|||
    - AccountDomainSid
 | 
			
		||||
    - SusClientId
 | 
			
		||||
    - SusClientIDValidation
 | 
			
		||||
 | 
			
		||||
- name: Start Windows Update Service
 | 
			
		||||
  win_service: 
 | 
			
		||||
    name: wuauserv
 | 
			
		||||
    state: started
 | 
			
		||||
 | 
			
		||||
- name: "Join domain"
 | 
			
		||||
  win_domain_membership:
 | 
			
		||||
    domain_admin_user: "{{adjoin_user}}"
 | 
			
		||||
    domain_admin_password: "{{adjoin_password}}"
 | 
			
		||||
    domain_admin_user: "{{ad_join_user}}"
 | 
			
		||||
    domain_admin_password: "{{ad_join_password}}"
 | 
			
		||||
    dns_domain_name: "{{domain_name}}"
 | 
			
		||||
    domain_ou_path: "{{ou_path}}"
 | 
			
		||||
    hostname: "{{inventory_hostname}}"
 | 
			
		||||
    state: domain
 | 
			
		||||
  register: domain_state
 | 
			
		||||
 | 
			
		||||
- name: Reset WSUS authorization
 | 
			
		||||
  win_command: wuauclt.exe /resetauthorization /detectnow
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
 | 
			
		||||
- name: Update windows
 | 
			
		||||
  win_command: wuauclt.exe /updatenow
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
 | 
			
		||||
- name: Fix broken display settings - start CDPSvc
 | 
			
		||||
  win_regedit: 
 | 
			
		||||
    path: "{{item}}"
 | 
			
		||||
    name: "Start"
 | 
			
		||||
    type: dword
 | 
			
		||||
    data: 0x00000002
 | 
			
		||||
  with_items:
 | 
			
		||||
    - HKLM\SYSTEM\CurrentControlSet\Services\CDPSvc
 | 
			
		||||
    - HKLM\SYSTEM\CurrentControlSet\Services\CDPUserSvc
 | 
			
		||||
 | 
			
		||||
- name: Reboot
 | 
			
		||||
  win_command: "shutdown /r"
 | 
			
		||||
  when: domain_state.reboot_required
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								roles/ad_joined/templates/apparmor_cifs_homes
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/ad_joined/templates/apparmor_cifs_homes
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
@{HOMEDIRS}+=/home/profiles/
 | 
			
		||||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ config_file_version = 2
 | 
			
		|||
domains = fri1.uni-lj.si
 | 
			
		||||
enable_files_domain = False
 | 
			
		||||
services = nss, pam
 | 
			
		||||
default_domain_suffix = student.uni-lj.si
 | 
			
		||||
 | 
			
		||||
[nss]
 | 
			
		||||
filtered_groups = root
 | 
			
		||||
| 
						 | 
				
			
			@ -27,5 +28,12 @@ krb5_store_password_if_offline = True
 | 
			
		|||
default_shell = /bin/bash
 | 
			
		||||
ldap_id_mapping = True
 | 
			
		||||
use_fully_qualified_names = True
 | 
			
		||||
fallback_homedir = /home/%u@%d
 | 
			
		||||
full_name_format = %1$s@%3$s
 | 
			
		||||
# fallback_homedir = /home/%u@%d
 | 
			
		||||
fallback_homedir = /home/profiles/%u.%F
 | 
			
		||||
subdomain_homedir = /home/profiles/%u.%F
 | 
			
		||||
access_provider = ad
 | 
			
		||||
krb5_ccname_template = FILE:%d/krb5cc_%U
 | 
			
		||||
krb5_lifetime           =  86400
 | 
			
		||||
krb5_renewable_lifetime = 604800
 | 
			
		||||
krb5_renew_interval     =   7200
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/altair/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/altair/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/altair/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/altair/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install altair
 | 
			
		||||
  apt:
 | 
			
		||||
    name: python3-altair
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/altair/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/altair/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install altair
 | 
			
		||||
  win_command: pip install altair
 | 
			
		||||
| 
						 | 
				
			
			@ -1,27 +1,80 @@
 | 
			
		|||
- name: Set Android Studio version
 | 
			
		||||
  set_fact:
 | 
			
		||||
    sdk_path: C:\android-sdk
 | 
			
		||||
    studio_version: "2025.1.2.11"
 | 
			
		||||
    tools_version: "latest"
 | 
			
		||||
    studio_path: "{{ large_prog_dir }}\\android-studio"
 | 
			
		||||
    sdk_path: "{{ large_prog_dir }}\\android-sdk"
 | 
			
		||||
    studio_version: "2025.1.2.13"
 | 
			
		||||
    tools_version: "13114758_latest"
 | 
			
		||||
 | 
			
		||||
- name: Set Android command-line tools path
 | 
			
		||||
  set_fact:
 | 
			
		||||
    tools_path: "{{ studio_path }}\\cmdline-tools\\latest"
 | 
			
		||||
 | 
			
		||||
- name: Check Android Studio
 | 
			
		||||
  win_stat:
 | 
			
		||||
    path: "{{ studio_path }}\\bin\\studio64.exe"
 | 
			
		||||
  register: studio
 | 
			
		||||
 | 
			
		||||
- when: not studio.stat.exists
 | 
			
		||||
  block:
 | 
			
		||||
    - name: Download Android Studio
 | 
			
		||||
      win_get_url:
 | 
			
		||||
        url: "https://redirector.gvt1.com/edgedl/android/studio/ide-zips/{{ studio_version }}/android-studio-{{ studio_version }}-windows.zip"
 | 
			
		||||
        dest: "{{ large_prog_dir }}\\"
 | 
			
		||||
 | 
			
		||||
    - name: Extract Android Studio
 | 
			
		||||
      win_unzip:
 | 
			
		||||
        src: "{{ large_prog_dir }}\\android-studio-{{ studio_version }}-windows.zip"
 | 
			
		||||
        dest: "{{ large_prog_dir }}\\"
 | 
			
		||||
        delete_archive: yes
 | 
			
		||||
 | 
			
		||||
- name: Check Android Studio tools
 | 
			
		||||
  win_stat:
 | 
			
		||||
    path: "{{ sdk_path }}\\platform-tools\\adb.exe"
 | 
			
		||||
    path: "{{ tools_path }}\\bin\\sdkmanager.bat"
 | 
			
		||||
  register: tools
 | 
			
		||||
 | 
			
		||||
- when: not tools.stat.exists
 | 
			
		||||
  block:
 | 
			
		||||
    - name: Download Android Studio tools
 | 
			
		||||
      win_get_url:
 | 
			
		||||
        # url: "https://dl.google.com/android/repository/commandlinetools-win-{{ tools_version }}.zip"
 | 
			
		||||
        url: "https://dl.google.com/android/repository/platform-tools-{{ tools_version }}-windows.zip"
 | 
			
		||||
        dest: C:\
 | 
			
		||||
        url: "https://dl.google.com/android/repository/commandlinetools-win-{{ tools_version }}.zip"
 | 
			
		||||
        # url: "https://dl.google.com/android/repository/platform-tools-{{ tools_version }}-windows.zip"
 | 
			
		||||
        dest: "{{ studio_path }}"
 | 
			
		||||
 | 
			
		||||
    - name: Extract Android Studio tools
 | 
			
		||||
      win_unzip:
 | 
			
		||||
        src: "C:\\platform-tools-{{ tools_version }}-windows.zip"
 | 
			
		||||
        dest: "{{ sdk_path }}\\"
 | 
			
		||||
        # src: "{{ large_prog_dir }}\\platform-tools-{{ tools_version }}-windows.zip"
 | 
			
		||||
        src: "{{ studio_path}}\\commandlinetools-win-{{ tools_version }}.zip"
 | 
			
		||||
        dest: "{{ studio_path }}\\cmdline-tools\\"
 | 
			
		||||
        delete_archive: yes
 | 
			
		||||
    - name: Move cmdline-tools to expected location
 | 
			
		||||
      ansible.windows.win_powershell:
 | 
			
		||||
        script: move "{{ studio_path }}\\cmdline-tools\\cmdline-tools" "{{ tools_path }}"
 | 
			
		||||
 | 
			
		||||
- name: Create Android Studio data directory
 | 
			
		||||
  win_file:
 | 
			
		||||
    path: "{{ large_prog_dir }}\\.android"
 | 
			
		||||
    state: directory
 | 
			
		||||
 | 
			
		||||
- name: Create Android Studio SDK directory
 | 
			
		||||
  win_file:
 | 
			
		||||
    path: "{{ sdk_path }}"
 | 
			
		||||
    state: directory
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- name: Create Android Studio shortcut
 | 
			
		||||
  win_shortcut:
 | 
			
		||||
    dest: "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Android Studio\\Android Studio.lnk"
 | 
			
		||||
    src: "{{ studio_path }}\\bin\\studio64.exe"
 | 
			
		||||
 | 
			
		||||
- name: Set Android Studio environment variables
 | 
			
		||||
  win_environment:
 | 
			
		||||
    level: machine
 | 
			
		||||
    variables:
 | 
			
		||||
      ANDROID_HOME: "{{ studio_path }}"
 | 
			
		||||
      ANDROID_SDK_ROOT: "{{ sdk_path }}"
 | 
			
		||||
      ANDROID_PREFS_ROOT: "{{ large_prog_dir }}\\"
 | 
			
		||||
      GRADLE_USER_HOME: "{{ large_prog_dir }}\\.gradle"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# - name: Accept Android SDK licenses
 | 
			
		||||
#   win_shell: sh -c "yes | /c/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager.bat --licenses"
 | 
			
		||||
| 
						 | 
				
			
			@ -29,35 +82,21 @@
 | 
			
		|||
- name: Include Android SDK packages
 | 
			
		||||
  include_vars: androidsdk_packages.yml
 | 
			
		||||
 | 
			
		||||
#- name: Install Android SDK
 | 
			
		||||
#  win_shell: |
 | 
			
		||||
#    {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "{{ item }}"
 | 
			
		||||
#  loop: "{{ AndroidSDK_packages }}"
 | 
			
		||||
- name: Install Android SDK packages
 | 
			
		||||
  win_shell: |
 | 
			
		||||
    {{ tools_path }}\bin\sdkmanager.bat --install "{{ item }}"
 | 
			
		||||
  loop: "{{ AndroidSDK_packages }}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "{{ AndroidSDK_packages | join(' ') }}"
 | 
			
		||||
# {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "build-tools;33.0.0" "cmdline-tools;latest" "emulator" "ndk-bundle" "ndk;25.1.8937393" "platform-tools" "platforms;android-33" "sources;android-33" "system-images;android-33;google_apis;arm64-v8a" "system-images;android-33;google_apis;x86_64"
 | 
			
		||||
 | 
			
		||||
- name: Install Android Studio
 | 
			
		||||
  win_package:
 | 
			
		||||
    path: "https://redirector.gvt1.com/edgedl/android/studio/install/{{ studio_version }}/android-studio-{{ studio_version }}-windows.exe"
 | 
			
		||||
    arguments: /S /AllUsers
 | 
			
		||||
    expected_return_code: [0, 1223, 3010]
 | 
			
		||||
    creates_path: "%ProgramFiles%\\Android\\Android Studio\\bin\\studio64.exe"
 | 
			
		||||
 | 
			
		||||
- name: Create Android Studio data directory
 | 
			
		||||
  win_file:
 | 
			
		||||
    path: D:\.android
 | 
			
		||||
    state: directory
 | 
			
		||||
 | 
			
		||||
- name: Set Android Studio environment variables
 | 
			
		||||
  win_environment:
 | 
			
		||||
    level: machine
 | 
			
		||||
    variables:
 | 
			
		||||
      ANDROID_HOME: "{{ sdk_path }}"
 | 
			
		||||
      ANDROID_PREFS_ROOT: D:\
 | 
			
		||||
      GRADLE_USER_HOME: D:\.gradle
 | 
			
		||||
 | 
			
		||||
#- name: Install Android Studio
 | 
			
		||||
#  win_package:
 | 
			
		||||
#    path: "https://redirector.gvt1.com/edgedl/android/studio/install/{{ studio_version }}/android-studio-{{ studio_version }}-windows.exe"
 | 
			
		||||
#    arguments: /S /AllUsers
 | 
			
		||||
#    expected_return_code: [0, 1223, 3010]
 | 
			
		||||
#    creates_path: "%ProgramFiles%\\Android\\Android Studio\\bin\\studio64.exe"
 | 
			
		||||
#- name: Check HAXM install status
 | 
			
		||||
#  win_stat:
 | 
			
		||||
#    path: "%ProgramFiles%\\Intel\\HAXM"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,8 +8,9 @@
 | 
			
		|||
- name: Install Arduino-cli
 | 
			
		||||
  win_package:
 | 
			
		||||
    # path: https://downloads.arduino.cc/arduino-ide/arduino-ide_2.0.0_Windows_64bit.exe
 | 
			
		||||
    path: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.zip
 | 
			
		||||
    arguments: /S /AllUsers
 | 
			
		||||
    path: https://github.com/arduino/arduino-cli/releases/download/v1.3.0/arduino-cli_1.3.0_Windows_64bit.msi
 | 
			
		||||
    # path: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.zip
 | 
			
		||||
    # arguments: /S /AllUsers
 | 
			
		||||
    # creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										9
									
								
								roles/autoupdate/files/frib_autoupdate.service
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								roles/autoupdate/files/frib_autoupdate.service
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
[Unit]
 | 
			
		||||
Description=Update btrfs filesystems
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
User=root
 | 
			
		||||
Group=root
 | 
			
		||||
Type=oneshot
 | 
			
		||||
ExecStart=/home/partimag/fri_live_upgrade/frib_update.py
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								roles/autoupdate/files/frib_autoupdate.timer
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								roles/autoupdate/files/frib_autoupdate.timer
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
[Unit]
 | 
			
		||||
Description=Frib Autoupdate Timer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[Timer]
 | 
			
		||||
OnBootSec=5m
 | 
			
		||||
OnUnitActiveSec=30m
 | 
			
		||||
Persistent=true
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=timers.target
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								roles/autoupdate/files/rsync_ucilnicesmb_d.service
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								roles/autoupdate/files/rsync_ucilnicesmb_d.service
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
[Unit]
 | 
			
		||||
Description=rsync D:
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
User=root
 | 
			
		||||
Group=root
 | 
			
		||||
Type=oneshot
 | 
			
		||||
ExecStart=/bin/bash /mnt/ucilnice_d/skupno/porini_na_d.sh
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								roles/autoupdate/files/rsync_ucilnicesmb_d.timer
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								roles/autoupdate/files/rsync_ucilnicesmb_d.timer
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
[Unit]
 | 
			
		||||
Description=Rsync D: timer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[Timer]
 | 
			
		||||
OnBootSec=5m
 | 
			
		||||
OnUnitActiveSec=30m
 | 
			
		||||
Persistent=true
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=timers.target
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/autoupdate/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/autoupdate/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										39
									
								
								roles/autoupdate/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								roles/autoupdate/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
- name: Create frib_autoupdate systemd unit
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    src: frib_autoupdate.service
 | 
			
		||||
    dest: /etc/systemd/system/
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
 | 
			
		||||
- name: Create frib_autoupdate timer
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    src: frib_autoupdate.timer
 | 
			
		||||
    dest: /etc/systemd/system/
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
  
 | 
			
		||||
- name: Enable frib_autoupdate timer 
 | 
			
		||||
  ansible.builtin.systemd_service:
 | 
			
		||||
    name: frib_autoupdate.timer
 | 
			
		||||
    state: started
 | 
			
		||||
    enabled: true
 | 
			
		||||
 | 
			
		||||
- name: Create rsync_ucilnicesmb_d systemd unit
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    src: rsync_ucilnicesmb_d.service
 | 
			
		||||
    dest: /etc/systemd/system/
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
 | 
			
		||||
- name: Create rsync_ucilnicesmb_d timer
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    src: rsync_ucilnicesmb_d.timer
 | 
			
		||||
    dest: /etc/systemd/system/
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
  
 | 
			
		||||
- name: Enable rsync_ucilnicesmb_d timer 
 | 
			
		||||
  ansible.builtin.systemd_service:
 | 
			
		||||
    name: rsync_ucilnicesmb_d.timer
 | 
			
		||||
    state: started
 | 
			
		||||
    enabled: true
 | 
			
		||||
							
								
								
									
										1
									
								
								roles/autoupdate/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/autoupdate/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,32 @@
 | 
			
		|||
- name: Install blender
 | 
			
		||||
  apt:
 | 
			
		||||
    name: blender
 | 
			
		||||
    state: latest
 | 
			
		||||
#- name: Add blender PPA
 | 
			
		||||
#  command: add-apt-repository -y ppa:savoury1/blender
 | 
			
		||||
 | 
			
		||||
#- name: Add blender PPA
 | 
			
		||||
#  apt_repository:
 | 
			
		||||
#    repo: ppa:savoury1/blender
 | 
			
		||||
#    state: present
 | 
			
		||||
#    update_cache: True
 | 
			
		||||
 | 
			
		||||
#- name: Install blender
 | 
			
		||||
#  apt:
 | 
			
		||||
#    name: blender
 | 
			
		||||
#    state: latest
 | 
			
		||||
- name: Download and unpack blender
 | 
			
		||||
  unarchive:
 | 
			
		||||
    src: https://download.blender.org/release/Blender4.5/blender-4.5.3-linux-x64.tar.xz
 | 
			
		||||
    dest: /usr/local/lib/
 | 
			
		||||
    remote_src: yes
 | 
			
		||||
    creates: /usr/local/lib/blender-4.5.3-linux-x64/blender-launcher
 | 
			
		||||
 | 
			
		||||
- name: Create blender symlink
 | 
			
		||||
  file:
 | 
			
		||||
    src: /usr/local/lib/blender-4.5.3-linux-x64/blender-launcher
 | 
			
		||||
    dest: /usr/local/bin/blender
 | 
			
		||||
    state: link
 | 
			
		||||
 | 
			
		||||
- name: Copy blender .desktop file
 | 
			
		||||
  copy:
 | 
			
		||||
    src: "/usr/local/lib/blender-4.5.3-linux-x64/blender.desktop"
 | 
			
		||||
    dest: "/usr/local/share/applications"
 | 
			
		||||
    remote_src: yes
 | 
			
		||||
  
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,3 @@
 | 
			
		|||
- name: Install Blender
 | 
			
		||||
  win_package:
 | 
			
		||||
    path: https://ftp.nluug.nl/pub/graphics/blender/release/Blender3.3/blender-3.3.0-windows-x64.msi
 | 
			
		||||
    path: https://ftp.nluug.nl/pub/graphics/blender/release/Blender4.5/blender-4.5.3-windows-x64.msi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,10 @@
 | 
			
		|||
  #  state: present
 | 
			
		||||
  #  update_cache: True
 | 
			
		||||
  #  validate_certs: False
 | 
			
		||||
- name: Remove Chromium snap
 | 
			
		||||
  community.general.snap:
 | 
			
		||||
    name: chromium
 | 
			
		||||
    state: absent
 | 
			
		||||
 | 
			
		||||
- name: Install Chromium instead of Chrome
 | 
			
		||||
  apt:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										11
									
								
								roles/clion/files/clion.desktop
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								roles/clion/files/clion.desktop
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
[Desktop Entry]
 | 
			
		||||
Name=CLion
 | 
			
		||||
GenericName=CLion
 | 
			
		||||
Comment=JetBrains CLion IDE
 | 
			
		||||
MimeType=text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-moc;text/x-c;text/x-c++;
 | 
			
		||||
Exec=/opt/CLion/bin/clion.sh
 | 
			
		||||
Icon=clion
 | 
			
		||||
Terminal=false
 | 
			
		||||
Type=Application
 | 
			
		||||
Categories=Education;Development;ComputerScience;
 | 
			
		||||
StartupNotify=true
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/clion/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/clion/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										32
									
								
								roles/clion/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								roles/clion/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
- name: Install CLion
 | 
			
		||||
  block:
 | 
			
		||||
  - name: Create destination for JetBrains CLion
 | 
			
		||||
    file:
 | 
			
		||||
      path: /opt/CLion
 | 
			
		||||
      state: directory
 | 
			
		||||
  - name: Download and unpack JetBrains CLion
 | 
			
		||||
    unarchive:
 | 
			
		||||
      src: https://data.services.jetbrains.com/products/download?code=CL&platform=linux
 | 
			
		||||
      dest: /opt/CLion
 | 
			
		||||
      extra_opts: --strip-components=1
 | 
			
		||||
      creates: /opt/CLion/build.txt
 | 
			
		||||
      remote_src: yes
 | 
			
		||||
 | 
			
		||||
- name: Install icon
 | 
			
		||||
  block:
 | 
			
		||||
    - file:
 | 
			
		||||
        path: /usr/local/share/icons
 | 
			
		||||
        state: directory
 | 
			
		||||
    - copy:
 | 
			
		||||
        src: /opt/CLion/bin/clion.svg
 | 
			
		||||
        remote_src: true
 | 
			
		||||
        dest: /usr/local/share/icons/clion.svg
 | 
			
		||||
 | 
			
		||||
- name: Create .desktop file
 | 
			
		||||
  block:
 | 
			
		||||
    - file:
 | 
			
		||||
        path: /usr/local/share/applications
 | 
			
		||||
        state: directory
 | 
			
		||||
    - copy:
 | 
			
		||||
        dest: /usr/local/share/applications/clion.desktop
 | 
			
		||||
        src: clion.desktop
 | 
			
		||||
							
								
								
									
										7
									
								
								roles/clion/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								roles/clion/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
 | 
			
		||||
# TODO fix / test this
 | 
			
		||||
- name: Install Clion
 | 
			
		||||
  win_package:
 | 
			
		||||
    path: "https://data.services.jetbrains.com/products/download?code=CL&platform=windows"
 | 
			
		||||
    arguments: /S
 | 
			
		||||
    creates_path: "%ProgramFiles(x86)%\\JetBrains\\IntelliJ IDEA Community Edition {{ target_version }}\\bin\\idea64.exe"
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/cocotb/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/cocotb/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/cocotb/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/cocotb/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install Cocotb
 | 
			
		||||
  pip:
 | 
			
		||||
    executable: pipx
 | 
			
		||||
    name: cocotb[bus]
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/cocotb/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/cocotb/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install cocoTB
 | 
			
		||||
  win_command: pip install cocotb[bus]
 | 
			
		||||
| 
						 | 
				
			
			@ -2,3 +2,5 @@
 | 
			
		|||
  win_chocolatey:
 | 
			
		||||
    ignore_checksums: true
 | 
			
		||||
    name: cp210x-vcp-drivers-win10
 | 
			
		||||
  #TODO remove ignore_errors once the package is repaired/updated
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/cryptodome/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/cryptodome/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										5
									
								
								roles/cryptodome/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/cryptodome/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
- name: Install python-pycryptodome
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
      - python3-pycryptodome
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/cryptodome/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/cryptodome/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install python3-pycryptodome
 | 
			
		||||
  win_command: pip install pycryptodome
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/cryptography/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/cryptography/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										5
									
								
								roles/cryptography/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/cryptography/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
- name: Install python-cryptography
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
      - python3-cryptography
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/cryptography/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/cryptography/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install python3-cryptography
 | 
			
		||||
  win_command: pip install cryptography
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/datasets/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/datasets/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/datasets/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/datasets/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install datasets
 | 
			
		||||
  pip:
 | 
			
		||||
    executable: pipx
 | 
			
		||||
    name: datasets
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/datasets/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/datasets/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install datasets
 | 
			
		||||
  win_command: pip install datasets
 | 
			
		||||
| 
						 | 
				
			
			@ -12,4 +12,4 @@
 | 
			
		|||
  win_lineinfile:
 | 
			
		||||
    path: "%ProgramFiles%\\Eclipse {{ target_version }}\\eclipse\\eclipse.ini"
 | 
			
		||||
    regexp: "osgi.instance.area.default"
 | 
			
		||||
    line: "-Dosgi.instance.area.default=H:/Documents/eclipse-workspace"
 | 
			
		||||
    line: "-Dosgi.instance.area.default=D:/Documents/eclipse-workspace"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/evaluate/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/evaluate/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/evaluate/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/evaluate/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install evaluate
 | 
			
		||||
  pip:
 | 
			
		||||
    executable: pipx
 | 
			
		||||
    name: evaluate
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/evaluate/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/evaluate/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install evaluate
 | 
			
		||||
  win_command: pip install evaluate
 | 
			
		||||
							
								
								
									
										17
									
								
								roles/firefox/files/policies.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								roles/firefox/files/policies.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
{
 | 
			
		||||
  "policies": {
 | 
			
		||||
    "OverrideFirstRunPage": "https://ucilnica.fri.uni-lj.si",
 | 
			
		||||
    "OverridePostUpdatePage": "https://ucilnica.fri.uni-lj.si",
 | 
			
		||||
    "DisableAppUpdate": true,
 | 
			
		||||
    "DisableSystemAddonUpdate": true,
 | 
			
		||||
    "DisableTelemetry": true,
 | 
			
		||||
    "UserMessaging": {
 | 
			
		||||
      "WhatsNew": false,
 | 
			
		||||
      "ExtensionRecommendations": false,
 | 
			
		||||
      "FeatureRecommendations": false,
 | 
			
		||||
      "UrlbarInterventions": false,
 | 
			
		||||
      "SkipOnboarding": true,
 | 
			
		||||
      "MoreFromMozilla": false
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -31,3 +31,13 @@
 | 
			
		|||
      - firefox
 | 
			
		||||
    state: latest
 | 
			
		||||
    allow_downgrade: True
 | 
			
		||||
 | 
			
		||||
- name: Create Firefox policies directory
 | 
			
		||||
  file:
 | 
			
		||||
    path: /etc/firefox/policies
 | 
			
		||||
    state: directory
 | 
			
		||||
 | 
			
		||||
- name: Set Firefox policies
 | 
			
		||||
  copy:
 | 
			
		||||
    dest: /etc/firefox/policies/policies.json
 | 
			
		||||
    src: policies.json
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,19 +8,4 @@
 | 
			
		|||
- name: Set Firefox policies
 | 
			
		||||
  copy:
 | 
			
		||||
    dest: C:\Program Files\Mozilla Firefox\distribution\policies.json
 | 
			
		||||
    content: |
 | 
			
		||||
      {
 | 
			
		||||
        "policies": {
 | 
			
		||||
          "DisableAppUpdate": true,
 | 
			
		||||
          "DisableSystemAddonUpdate": true,
 | 
			
		||||
          "DisableTelemetry": true,
 | 
			
		||||
          "UserMessaging": {
 | 
			
		||||
            "WhatsNew": false,
 | 
			
		||||
            "ExtensionRecommendations": false,
 | 
			
		||||
            "FeatureRecommendations": false,
 | 
			
		||||
            "UrlbarInterventions": false,
 | 
			
		||||
            "SkipOnboarding": true,
 | 
			
		||||
            "MoreFromMozilla": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    src: policies.json
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								roles/fri_base/files/authorized_keys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/fri_base/files/authorized_keys
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM2Tn8+rH+fkFkBycxYrJ7TzhXQhuf3U+w23JFlZoRiX polz@povzpetnik"
 | 
			
		||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDRpoWIH5u2g12IM39WNRzLsPksfSjfL/82fPnuZwZ7H polz@it-polz"
 | 
			
		||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCq7NrrDD53pe9Zpn/dRSPxWQLDIZ9INS0kz/ps/9fGsM8/H/J7jr/ecj0j0jfYig6QdV8G7VnpLWjcuJ65ul3u2rnQSN78Ms/hxlAhmyahQtBA2q2D2zqI2PDWsKAySWmfFg+2W5fYmE1+F9GEB0OWNOuClmfo2A1c8Ve76qSiehHgjYo0G1CQrXkmE00GBLqyqkbyyStLa9DUfaDwrbOu4tJChHo4jDGuLH5QCYcN+RRXjwPQKgk0L2yfu1479L0XqhbEo+KHoIZH501fkoE+gUKVyLERvkhKSiCgPhJmAgRN1bRsiyTwvQzoED4q1RwFmG0AKg0U5bHnAAOd77uyuIYmcFiaRGHROQ9ZbyB9tJ07QrFlzRkderDd5Z18mO7LtgDjFZ2B2DlRY6zxMiUqJyDRnHjDF3+3DTlHIUCC3aEtoYS8MPyRL1b8XenIqswXkM+vkYFeKh2ynjNu3C6VqDCXZFvIi6f1X0ojZXRrDmbiON8Y74HjxP0z6TB1U30= polz@ucilnicenfs-2020
 | 
			
		||||
 | 
			
		||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDRpoWIH5u2g12IM39WNRzLsPksfSjfL/82fPnuZwZ7H polz@it-polz
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/fri_base/files/hide_users.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/fri_base/files/hide_users.conf
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
[Users]
 | 
			
		||||
MinimumUid=999
 | 
			
		||||
MaximumUid=999
 | 
			
		||||
RememberLastUser=false
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/fri_base/files/kscreenlockerrc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/fri_base/files/kscreenlockerrc
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
[Daemon]
 | 
			
		||||
Autolock=false
 | 
			
		||||
LockOnResume=false
 | 
			
		||||
Timeout=0
 | 
			
		||||
							
								
								
									
										6
									
								
								roles/fri_base/files/powerdevilrc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								roles/fri_base/files/powerdevilrc
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
[AC][RunScript]
 | 
			
		||||
IdleTimeoutCommand=qdbus org.kde.Shutdown /Shutdown logout
 | 
			
		||||
RunScriptIdleTimeoutSec=7200
 | 
			
		||||
 | 
			
		||||
[AC][SuspendAndShutdown]
 | 
			
		||||
PowerButtonAction=8
 | 
			
		||||
							
								
								
									
										1
									
								
								roles/fri_base/files/user.dconf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/fri_base/files/user.dconf
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
service-db:keyfile/user
 | 
			
		||||
| 
						 | 
				
			
			@ -9,3 +9,4 @@ dependencies:
 | 
			
		|||
  - role: sumatrapdf
 | 
			
		||||
  - role: vlc
 | 
			
		||||
  - role: wget
 | 
			
		||||
  - role: prometheus-exporter
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,55 @@
 | 
			
		|||
- name: Enable multiarch
 | 
			
		||||
  command: dpkg --add-architecture i386
 | 
			
		||||
 | 
			
		||||
- name: Create swap btrfs subvolume
 | 
			
		||||
  command: btrfs subvolume create /swap
 | 
			
		||||
  ignore_errors: True
 | 
			
		||||
 | 
			
		||||
- name: Create swap directory if it does not exist
 | 
			
		||||
  file:
 | 
			
		||||
    path: /swap
 | 
			
		||||
    state: directory
 | 
			
		||||
 | 
			
		||||
- name: Create btrfs swap
 | 
			
		||||
  command: btrfs filesystem mkswapfile --size 4g /swap/swap.img
 | 
			
		||||
  ignore_errors: True
 | 
			
		||||
 | 
			
		||||
- name: Create swap image if it does not exist
 | 
			
		||||
  shell: fallocate -l 4G /swap/swap.img && mkswap /swap/swap.img
 | 
			
		||||
  args:
 | 
			
		||||
    creates: /swap/swap.img
 | 
			
		||||
  ignore_errors: True
 | 
			
		||||
 | 
			
		||||
- name: Change swap file permissions
 | 
			
		||||
  file: path="/swap/swap.img"
 | 
			
		||||
        owner=root
 | 
			
		||||
        group=root
 | 
			
		||||
        mode=0600
 | 
			
		||||
 | 
			
		||||
- name: Write swap entry in fstab
 | 
			
		||||
  mount: name=none
 | 
			
		||||
         src=/swap/swap.img
 | 
			
		||||
         fstype=swap
 | 
			
		||||
         opts=sw
 | 
			
		||||
         passno=0
 | 
			
		||||
         dump=0
 | 
			
		||||
         state=present
 | 
			
		||||
 | 
			
		||||
- name: Activate swap
 | 
			
		||||
  command: "swapon /swap/swap.img"
 | 
			
		||||
  ignore_errors: True
 | 
			
		||||
 | 
			
		||||
- name: Make sure default swap entry does not exist
 | 
			
		||||
  mount:
 | 
			
		||||
    path: none
 | 
			
		||||
    src: /swap.img
 | 
			
		||||
    fstype: swap
 | 
			
		||||
    state: absent
 | 
			
		||||
 | 
			
		||||
- name: Make sure default swap is not used
 | 
			
		||||
  command: swapoff /swap/swap.img
 | 
			
		||||
  ignore_errors: True
 | 
			
		||||
 | 
			
		||||
- name: Install generally useful packages
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
| 
						 | 
				
			
			@ -13,7 +62,6 @@
 | 
			
		|||
      - kwrite
 | 
			
		||||
      - kate
 | 
			
		||||
      - krita
 | 
			
		||||
      - blender
 | 
			
		||||
      - inkscape
 | 
			
		||||
      - pcmanfm-qt
 | 
			
		||||
      - qutebrowser
 | 
			
		||||
| 
						 | 
				
			
			@ -24,9 +72,13 @@
 | 
			
		|||
      - qemu-utils
 | 
			
		||||
      - virt-manager
 | 
			
		||||
      - wine
 | 
			
		||||
      - wine64
 | 
			
		||||
      - wine32:i386
 | 
			
		||||
      - wine-binfmt
 | 
			
		||||
      - dosbox
 | 
			
		||||
      - htop
 | 
			
		||||
      - btop
 | 
			
		||||
      - iotop
 | 
			
		||||
      # - webext-ublock-origin-chromium
 | 
			
		||||
      # - webext-ublock-origin-firefox
 | 
			
		||||
      - nethack-console
 | 
			
		||||
| 
						 | 
				
			
			@ -49,8 +101,11 @@
 | 
			
		|||
      - neovim-qt
 | 
			
		||||
      - binwalk
 | 
			
		||||
      - iotop
 | 
			
		||||
      - evince
 | 
			
		||||
      - okular
 | 
			
		||||
      - htop
 | 
			
		||||
      - jdupes
 | 
			
		||||
      - nvidia-driver-580-open
 | 
			
		||||
    state: latest
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -59,8 +114,33 @@
 | 
			
		|||
    name:
 | 
			
		||||
      - xfce4-screensaver
 | 
			
		||||
      - xscreensaver
 | 
			
		||||
      - thunderbird
 | 
			
		||||
      - kmail
 | 
			
		||||
    state: absent
 | 
			
		||||
 | 
			
		||||
- name: Set volumes for snapper
 | 
			
		||||
  set_fact:
 | 
			
		||||
    snapper_volumes:  
 | 
			
		||||
      - { confname: 'root', subvolume: '/'}
 | 
			
		||||
      - { confname: 'opt', subvolume: '/opt'}
 | 
			
		||||
 | 
			
		||||
- name: Create snapper configs
 | 
			
		||||
  command: snapper -c {{item.confname}} create-config {{item.subvolume}}
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  loop: "{{snapper_volumes}}"
 | 
			
		||||
 | 
			
		||||
- name: Overwrite snapper configs
 | 
			
		||||
  template:
 | 
			
		||||
    src: snapper
 | 
			
		||||
    dest: /etc/snapper/configs/{{item.confname}}
 | 
			
		||||
  loop: "{{ snapper_volumes }}"
 | 
			
		||||
 | 
			
		||||
- name: Disable APT snapshots for snapper
 | 
			
		||||
  lineinfile:
 | 
			
		||||
    path: /etc/default/snapper
 | 
			
		||||
    regexp: '^DISABLE_APT_SNAPSHOT='
 | 
			
		||||
    line: 'DISABLE_APT_SNAPSHOT="yes"'
 | 
			
		||||
 | 
			
		||||
- name: Set up additional groups for students
 | 
			
		||||
  vars:
 | 
			
		||||
    additional_groups:
 | 
			
		||||
| 
						 | 
				
			
			@ -100,7 +180,7 @@
 | 
			
		|||
  mount:
 | 
			
		||||
    boot: true
 | 
			
		||||
    fstype: ntfs-3g
 | 
			
		||||
    src: UUID=A09E30889E30594C
 | 
			
		||||
    src: "PARTLABEL=Basic\\040data\\040partition"
 | 
			
		||||
    path: /mnt/C
 | 
			
		||||
    state: mounted
 | 
			
		||||
    opts: defaults,nofail
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +189,7 @@
 | 
			
		|||
  mount:
 | 
			
		||||
    boot: true
 | 
			
		||||
    fstype: ntfs-3g
 | 
			
		||||
    src: "LABEL=D:"
 | 
			
		||||
    src: "PARTLABEL=D:"
 | 
			
		||||
    path: /mnt/D
 | 
			
		||||
    state: mounted
 | 
			
		||||
    opts: defaults,nofail
 | 
			
		||||
| 
						 | 
				
			
			@ -144,3 +224,58 @@
 | 
			
		|||
  copy:
 | 
			
		||||
    dest: /etc/udev/rules.d/
 | 
			
		||||
    src: 99-wakeonlan.rules
 | 
			
		||||
 | 
			
		||||
- name: Put dconf files in XDG_RUNTIME_DIR so dconf works on network-mounted homes
 | 
			
		||||
  block:
 | 
			
		||||
  - file:
 | 
			
		||||
      path: /etc/dconf/profile
 | 
			
		||||
      state: directory
 | 
			
		||||
  - copy:
 | 
			
		||||
      dest: /etc/dconf/profile/user
 | 
			
		||||
      src: user.dconf
 | 
			
		||||
 | 
			
		||||
- name: Turn off KDE screen locking
 | 
			
		||||
  copy:
 | 
			
		||||
    dest: /etc/xdg
 | 
			
		||||
    src: kscreenlockerrc
 | 
			
		||||
 | 
			
		||||
- name: Log off KDE after 120m
 | 
			
		||||
  copy:
 | 
			
		||||
    dest: /etc/xdg
 | 
			
		||||
    src: powerdevilrc
 | 
			
		||||
 | 
			
		||||
- name: Shorten PS1 prompt
 | 
			
		||||
  replace:
 | 
			
		||||
    path: "{{ item }}"
 | 
			
		||||
    regexp: 'PS1=(.*)\\u@\\h'
 | 
			
		||||
    replace: PS1=\1${USER%@*}
 | 
			
		||||
  loop:
 | 
			
		||||
    - /etc/skel/.bashrc
 | 
			
		||||
    - /etc/profile
 | 
			
		||||
    - /etc/bash.bashrc
 | 
			
		||||
 | 
			
		||||
- name: Hide users in lightdm
 | 
			
		||||
  lineinfile:
 | 
			
		||||
    path: /etc/lightdm/lightdm.conf
 | 
			
		||||
    regexp: "#?greeter-hide-users="
 | 
			
		||||
    line: greeter-hide-users=true
 | 
			
		||||
 | 
			
		||||
- name: Hide users in sddm
 | 
			
		||||
  copy:
 | 
			
		||||
    dest: /etc/sddm.conf.d/
 | 
			
		||||
    src: hide_users.conf
 | 
			
		||||
 | 
			
		||||
- name: Prevent sddm from enumerating all users
 | 
			
		||||
  lineinfile:
 | 
			
		||||
    path: /usr/share/sddm/themes/breeze/metadata.desktop
 | 
			
		||||
    insertafter: EOF
 | 
			
		||||
    state: present
 | 
			
		||||
    line: needsFullUserModel=false
 | 
			
		||||
 | 
			
		||||
- name: Copy authorized_keys
 | 
			
		||||
  become: false
 | 
			
		||||
  ansible.posix.authorized_key:
 | 
			
		||||
    user: "{{ ansible_user }}"
 | 
			
		||||
    key: "{{ lookup('file', 'authorized_keys') }}"
 | 
			
		||||
    state: present
 | 
			
		||||
    exclusive: true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,5 +36,15 @@
 | 
			
		|||
    allow_clobber: true
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
- name: Copy admin ssh keys to authorized_keys
 | 
			
		||||
  win_copy:
 | 
			
		||||
    src: authorized_keys
 | 
			
		||||
    dest: "%USERPROFILE%\\.ssh"
 | 
			
		||||
 | 
			
		||||
- name: Copy admin keys to administrators_authorized_keys
 | 
			
		||||
  win_copy:
 | 
			
		||||
    src: authorized_keys
 | 
			
		||||
    dest: C:\ProgramData\ssh\administrators_authorized_keys
 | 
			
		||||
 | 
			
		||||
# TODO: turn on GPO to allow guest SMB logins
 | 
			
		||||
# TODO: open firewall for Samba
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										11
									
								
								roles/idea/files/idea.desktop
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								roles/idea/files/idea.desktop
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
[Desktop Entry]
 | 
			
		||||
Name=IDEA
 | 
			
		||||
GenericName=IDEA
 | 
			
		||||
Comment=JetBrains IDEA
 | 
			
		||||
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
 | 
			
		||||
Exec=/opt/IDEA/bin/idea.sh
 | 
			
		||||
Icon=idea
 | 
			
		||||
Terminal=false
 | 
			
		||||
Type=Application
 | 
			
		||||
Categories=Development;ComputerScience;
 | 
			
		||||
StartupNotify=true
 | 
			
		||||
| 
						 | 
				
			
			@ -6,7 +6,27 @@
 | 
			
		|||
      state: directory
 | 
			
		||||
  - name: Download and unpack JetBrains IDEA
 | 
			
		||||
    unarchive:
 | 
			
		||||
      src: https://download.jetbrains.com/idea/ideaIC-2023.2.1.tar.gz
 | 
			
		||||
      src: https://data.services.jetbrains.com/products/download?code=IIU&platform=linux
 | 
			
		||||
      dest: /opt/IDEA
 | 
			
		||||
      creates: /opt/IDEA/idea-IC-232.9559.62/build.txt
 | 
			
		||||
      extra_opts: --strip-components=1
 | 
			
		||||
      creates: /opt/IDEA/build.txt
 | 
			
		||||
      remote_src: yes
 | 
			
		||||
 | 
			
		||||
- name: Install icon
 | 
			
		||||
  block:
 | 
			
		||||
    - file:
 | 
			
		||||
        path: /usr/local/share/icons
 | 
			
		||||
        state: directory
 | 
			
		||||
    - copy:
 | 
			
		||||
        src: /opt/IDEA/bin/idea.svg
 | 
			
		||||
        remote_src: true
 | 
			
		||||
        dest: /usr/local/share/icons/idea.svg
 | 
			
		||||
 | 
			
		||||
- name: Create .desktop file
 | 
			
		||||
  block:
 | 
			
		||||
    - file:
 | 
			
		||||
        path: /usr/local/share/applications
 | 
			
		||||
        state: directory
 | 
			
		||||
    - copy:
 | 
			
		||||
        dest: /usr/local/share/applications/idea.desktop
 | 
			
		||||
        src: idea.desktop
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/iverilog/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/iverilog/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/iverilog/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/iverilog/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install Icarus
 | 
			
		||||
  apt:
 | 
			
		||||
    name: iverilog
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										5
									
								
								roles/iverilog/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/iverilog/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
- name: Install Icarus Verilog
 | 
			
		||||
  win_chocolatey:
 | 
			
		||||
    name: iverilog
 | 
			
		||||
    version: '11.0'
 | 
			
		||||
    state: present 
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,11 @@
 | 
			
		|||
- name: Install OpenJDK 21
 | 
			
		||||
- name: Install latest OpenJDK (25)
 | 
			
		||||
  apt:
 | 
			
		||||
    name: openjdk-21-jdk
 | 
			
		||||
    name: openjdk-25-jdk
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Install latest Java docs
 | 
			
		||||
  apt:
 | 
			
		||||
    name: openjdk-25-doc
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Install OpenJDK 17
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,13 @@
 | 
			
		|||
    state: present
 | 
			
		||||
    scope: machine
 | 
			
		||||
 | 
			
		||||
- name: Add Java bin dir to PATH
 | 
			
		||||
  win_path:
 | 
			
		||||
    name: PATH
 | 
			
		||||
    elements: "{{ reg['raw_value'] }}\\bin"
 | 
			
		||||
    state: present
 | 
			
		||||
    scope: machine
 | 
			
		||||
 | 
			
		||||
- name: Disable Java updates
 | 
			
		||||
  win_regedit:
 | 
			
		||||
    path: HKLM:\SOFTWARE\WOW6432Node\JavaSoft\Java Update\Policy
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,15 +2,25 @@
 | 
			
		|||
  apt:
 | 
			
		||||
    name: jupyter
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Install Jupyter Console
 | 
			
		||||
  apt:
 | 
			
		||||
    name: jupyter-console
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Install Jupyter QT Console
 | 
			
		||||
  apt:
 | 
			
		||||
    name: jupyter-qtconsole
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Install Jupyter Notebook
 | 
			
		||||
  apt:
 | 
			
		||||
    name: jupyter-notebook
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Install Jupyter Lab
 | 
			
		||||
  apt:
 | 
			
		||||
    name: jupyterlab
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,10 @@
 | 
			
		|||
      dest: /opt/logisim
 | 
			
		||||
      remote_src: yes
 | 
			
		||||
      creates: /opt/logisim/META-INF/MANIFEST.MF
 | 
			
		||||
  - name: Create destination for Logisim - Evolution
 | 
			
		||||
    file:
 | 
			
		||||
      path: /opt/logisim-evolution
 | 
			
		||||
      state: directory
 | 
			
		||||
  - name: Download and unpack Logisim - Evolution
 | 
			
		||||
    unarchive:
 | 
			
		||||
      src: https://github.com/logisim-evolution/logisim-evolution/releases/download/v3.9.0/logisim-evolution-3.9.0-all.jar
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
  set_fact:
 | 
			
		||||
    target_version: "R2025a_Update_1"
 | 
			
		||||
    license_path: \\ucilnicesmb.fri1.uni-lj.si\ucilnice_d\install\matlab\network.lic
 | 
			
		||||
    dest_dir: C:\matlab
 | 
			
		||||
    dest_dir: "{{ large_prog_dir }}\\matlab"
 | 
			
		||||
 | 
			
		||||
- name: Set ISO path
 | 
			
		||||
  set_fact:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,11 @@
 | 
			
		|||
- name: Install maptplotlib
 | 
			
		||||
- name: Install matplotlib
 | 
			
		||||
  apt:
 | 
			
		||||
    name: matplotlib
 | 
			
		||||
    state: latest
 | 
			
		||||
    name:
 | 
			
		||||
      - python3-matplotlib
 | 
			
		||||
      - python3-matplotlib-inline
 | 
			
		||||
      - python3-matplotlib-venn
 | 
			
		||||
      - python3-mpl-animators
 | 
			
		||||
      - python3-mpl-scatter-density
 | 
			
		||||
      - python3-mplcursors
 | 
			
		||||
      - python3-mplexporter
 | 
			
		||||
    state: latest
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/mlxtend/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/mlxtend/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/mlxtend/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/mlxtend/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install mlxtend
 | 
			
		||||
  pip:
 | 
			
		||||
    executable: pipx
 | 
			
		||||
    name: mlxtend
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/mlxtend/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/mlxtend/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install pandas
 | 
			
		||||
  win_command: pip install mlxtend
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/networkx/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/networkx/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/networkx/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/networkx/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install networkx
 | 
			
		||||
  apt:
 | 
			
		||||
    name: python3-networkx
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/networkx/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/networkx/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install networkx
 | 
			
		||||
  win_command: pip install networkx
 | 
			
		||||
							
								
								
									
										11
									
								
								roles/notepad++/files/notepad++.desktop
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								roles/notepad++/files/notepad++.desktop
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
[Desktop Entry]
 | 
			
		||||
Name=Notepad++
 | 
			
		||||
GenericName=Notepad++
 | 
			
		||||
Comment=A simple IDE
 | 
			
		||||
Exec=wine "/opt/notepad++/notepad++.exe"
 | 
			
		||||
Icon=notepad++
 | 
			
		||||
Terminal=false
 | 
			
		||||
Type=Application
 | 
			
		||||
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
 | 
			
		||||
Categories=Education;Development;ComputerScience;
 | 
			
		||||
StartupNotify=true
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								roles/notepad++/files/notepad++.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/notepad++/files/notepad++.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 70 KiB  | 
| 
						 | 
				
			
			@ -19,6 +19,24 @@
 | 
			
		|||
 | 
			
		||||
- name: Download and unpack Notepad++
 | 
			
		||||
  unarchive:
 | 
			
		||||
    src: https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.5.7/npp.8.5.7.portable.x64.zip
 | 
			
		||||
    src: https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.8.5/npp.8.8.5.portable.x64.zip
 | 
			
		||||
    dest: /opt/notepad++
 | 
			
		||||
    remote_src: yes
 | 
			
		||||
 | 
			
		||||
- name: Install icon
 | 
			
		||||
  block:
 | 
			
		||||
    - file:
 | 
			
		||||
        path: /usr/local/share/icons
 | 
			
		||||
        state: directory
 | 
			
		||||
    - copy:
 | 
			
		||||
        src: notepad++.png
 | 
			
		||||
        dest: /usr/local/share/icons/notepad++.png
 | 
			
		||||
 | 
			
		||||
- name: Create .desktop file
 | 
			
		||||
  block:
 | 
			
		||||
    - file:
 | 
			
		||||
        path: /usr/local/share/applications
 | 
			
		||||
        state: directory
 | 
			
		||||
    - copy:
 | 
			
		||||
        dest: /usr/local/share/applications/notepad++.desktop
 | 
			
		||||
        src: notepad++.desktop
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/numpy/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/numpy/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										5
									
								
								roles/numpy/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/numpy/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
- name: Install numpy
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
      - python3-numpy
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/numpy/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/numpy/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install numpy
 | 
			
		||||
  win_command: pip install numpy
 | 
			
		||||
| 
						 | 
				
			
			@ -2,3 +2,14 @@
 | 
			
		|||
  apt:
 | 
			
		||||
    name: ocaml
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Install opam
 | 
			
		||||
  apt:
 | 
			
		||||
    name: opam
 | 
			
		||||
    state: latest
 | 
			
		||||
 | 
			
		||||
- name: Init opam home
 | 
			
		||||
  command: opam init --reinit --root=/opt/opam --dot-profile=/etc/profile.d/opam.sh --comp=4.14.2 -a
 | 
			
		||||
 | 
			
		||||
- name: Install required opam packages
 | 
			
		||||
  shell: source /etc/profile.d/opam.sh; eval $(opam env --root=/opt/opam --set-root --switch=4.14.2); opam install --yes ocaml-lsp-server odoc ocamlformat utop dune menhir
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
- name: Set OMNet++ version
 | 
			
		||||
  set_fact:
 | 
			
		||||
    target_version: "6.2.0"
 | 
			
		||||
    target_dir: "C:\\OMNeT++"
 | 
			
		||||
    target_dir: "{{large_prog_dir}}\\OMNeT++"
 | 
			
		||||
 | 
			
		||||
- name: Check OMNet++ install status
 | 
			
		||||
  win_stat:
 | 
			
		||||
| 
						 | 
				
			
			@ -15,17 +15,23 @@
 | 
			
		|||
    - name: Download OMNet++
 | 
			
		||||
      win_get_url:
 | 
			
		||||
        url: "https://github.com/omnetpp/omnetpp/releases/download/omnetpp-{{ target_version }}/omnetpp-{{ target_version }}-windows-x86_64.7z"
 | 
			
		||||
        dest: C:\
 | 
			
		||||
        dest: "{{ large_prog_dir }}"
 | 
			
		||||
      register: download
 | 
			
		||||
 | 
			
		||||
    - name: Unzip OMNet++
 | 
			
		||||
      win_unzip:
 | 
			
		||||
        src: "{{ download.dest }}"
 | 
			
		||||
        dest: C:\
 | 
			
		||||
        dest: "{{ large_prog_dir }}"
 | 
			
		||||
        delete_archive: yes
 | 
			
		||||
 | 
			
		||||
    - name: Move OMNet++ to final location
 | 
			
		||||
      win_command: cmd.exe /c move "C:\omnetpp-{{ target_version }}" "{{ target_dir }}"
 | 
			
		||||
      ansible.windows.win_powershell: 
 | 
			
		||||
        script: move "{{ large_prog_dir }}\omnetpp-{{ target_version }}" "{{ target_dir }}"
 | 
			
		||||
      # win_robocopy: 
 | 
			
		||||
      #  src: "{{ large_prog_dir }}\\omnetpp-{{ target_version }}"
 | 
			
		||||
      #  dest: "{{ target_dir }}"
 | 
			
		||||
      #  flags: "/move"
 | 
			
		||||
      # win_command: cmd.exe /c move "c:\omnetpp-{{ target_version }}" "{{ target_dir }}"
 | 
			
		||||
 | 
			
		||||
    - name: Create OMNet++ compile script
 | 
			
		||||
      win_copy:
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +46,7 @@
 | 
			
		|||
        line: call "%HOME%\\tools\\win32.x86_64\\msys2_shell.cmd" -mingw64 -c "./configure && make -j4" & exit
 | 
			
		||||
 | 
			
		||||
    - name: Compile OMNet++
 | 
			
		||||
      win_command: cmd.exe /c "{{ target_dir }}\\mingwenv-install.cmd"
 | 
			
		||||
      win_command: cmd.exe /c "{{ target_dir }}\mingwenv-install.cmd"
 | 
			
		||||
 | 
			
		||||
    - name: Copy OMNet++ shortcut
 | 
			
		||||
      win_copy:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/plotly/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/plotly/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/plotly/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/plotly/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Install plotly
 | 
			
		||||
  apt:
 | 
			
		||||
    name: python3-plotly
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/plotly/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/plotly/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
- name: Install plotly
 | 
			
		||||
  win_command: pip install plotly
 | 
			
		||||
| 
						 | 
				
			
			@ -1,9 +1,13 @@
 | 
			
		|||
# The installer does not work from powershell in silent mode.
 | 
			
		||||
#
 | 
			
		||||
- name: Prepare PowerDesigner setup.iss
 | 
			
		||||
  template:
 | 
			
		||||
    src: setup.iss
 | 
			
		||||
    dest: c:\powerdesigner_setup.iss
 | 
			
		||||
 | 
			
		||||
- name: Install PowerDesigner
 | 
			
		||||
  win_shell: |
 | 
			
		||||
    {{ installers }}\PowerDesigner_12.5\cd1\setup\setup.exe /s /f1"{{ installers }}\PowerDesigner_12.5\setup.iss" /f2"C:\powerdesigner_log.iss"
 | 
			
		||||
 | 
			
		||||
    {{ installers }}\PowerDesigner_12.5\cd1\setup\setup.exe /s /f1"c:\powerdesigner_setup.iss" /f2"C:\powerdesigner_log.iss"
 | 
			
		||||
  args:
 | 
			
		||||
    executable: cmd
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,37 +3,37 @@ Version=v7.00
 | 
			
		|||
File=Response File
 | 
			
		||||
[File Transfer]
 | 
			
		||||
OverwrittenReadOnly=NoToAll
 | 
			
		||||
[{{ powerdesigner_key }}-DlgOrder]
 | 
			
		||||
Dlg0={{ powerdesigner_key }}-SdWelcome-0
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-DlgOrder]
 | 
			
		||||
Dlg0={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0
 | 
			
		||||
Count=10
 | 
			
		||||
Dlg1={{ powerdesigner_key }}-SybSelectInstallMode-0
 | 
			
		||||
Dlg2={{ powerdesigner_key }}-SybFlexLM-0
 | 
			
		||||
Dlg3={{ powerdesigner_key }}-SybSelectPackage-0
 | 
			
		||||
Dlg4={{ powerdesigner_key }}-Sybase License-0
 | 
			
		||||
Dlg5={{ powerdesigner_key }}-SdAskDestPath-0
 | 
			
		||||
Dlg6={{ powerdesigner_key }}-SdComponentTree-0
 | 
			
		||||
Dlg7={{ powerdesigner_key }}-Graphic Select Folder-0
 | 
			
		||||
Dlg8={{ powerdesigner_key }}-SdStartCopy-0
 | 
			
		||||
Dlg9={{ powerdesigner_key }}-SdFinish-0
 | 
			
		||||
[{{ powerdesigner_key }}-SdWelcome-0]
 | 
			
		||||
Dlg1={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0
 | 
			
		||||
Dlg2={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0
 | 
			
		||||
Dlg3={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0
 | 
			
		||||
Dlg4={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0
 | 
			
		||||
Dlg5={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0
 | 
			
		||||
Dlg6={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0
 | 
			
		||||
Dlg7={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0
 | 
			
		||||
Dlg8={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0
 | 
			
		||||
Dlg9={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0]
 | 
			
		||||
Result=1
 | 
			
		||||
[{{ powerdesigner_key }}-SybSelectInstallMode-0]
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0]
 | 
			
		||||
Mode=3
 | 
			
		||||
Result=1
 | 
			
		||||
[{{ powerdesigner_key }}-SybFlexLM-0]
 | 
			
		||||
LicenseServer=todo.fri1.uni-lj.si
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0]
 | 
			
		||||
LicenseServer=todo.fri.uni-lj.si
 | 
			
		||||
PortNumber=27000
 | 
			
		||||
Result=1
 | 
			
		||||
[{{ powerdesigner_key }}-SybSelectPackage-0]
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0]
 | 
			
		||||
Package=Studio Enterprise
 | 
			
		||||
Result=1
 | 
			
		||||
[{{ powerdesigner_key }}-Sybase License-0]
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0]
 | 
			
		||||
Sybase_License=accept
 | 
			
		||||
[{{ powerdesigner_key }}-SdAskDestPath-0]
 | 
			
		||||
szDir=C:\Program Files (x86)\Sybase\PowerDesigner 12
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0]
 | 
			
		||||
szDir={{ large_prog_dir }}\PowerDesigner 12
 | 
			
		||||
Result=1
 | 
			
		||||
[{{ powerdesigner_key }}-SdComponentTree-0]
 | 
			
		||||
szDir=C:\Program Files (x86)\Sybase\PowerDesigner 12
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0]
 | 
			
		||||
szDir={{ large_prog_dir }}\PowerDesigner 12
 | 
			
		||||
CR\FRM-type=string
 | 
			
		||||
CR\FRM-count=2
 | 
			
		||||
CR\FRM-0=CR\FRM\FRM_Xem
 | 
			
		||||
| 
						 | 
				
			
			@ -108,11 +108,6 @@ PDM-1=PDM\PDM_Examples
 | 
			
		|||
PDM-2=PDM\PDM_Report
 | 
			
		||||
PDM-3=PDM\PDM_Tools
 | 
			
		||||
PDM-4=PDM\PDM_Addins
 | 
			
		||||
RQM-type=string
 | 
			
		||||
RQM-count=3
 | 
			
		||||
RQM-0=RQM\RQM_License
 | 
			
		||||
RQM-1=RQM\RQM_Examples
 | 
			
		||||
RQM-2=RQM\RQM_Report
 | 
			
		||||
XSM-type=string
 | 
			
		||||
XSM-count=4
 | 
			
		||||
XSM-0=XSM\XSM_License
 | 
			
		||||
| 
						 | 
				
			
			@ -135,6 +130,19 @@ PDF-5=PDF\PDF_PDM
 | 
			
		|||
PDF-6=PDF\PDF_RQM
 | 
			
		||||
PDF-7=PDF\PDF_XSM
 | 
			
		||||
PDF-8=PDF\PDF_RPY
 | 
			
		||||
VIDEO-type=string
 | 
			
		||||
VIDEO-count=11
 | 
			
		||||
VIDEO-0=VIDEO\Video_int
 | 
			
		||||
VIDEO-1=VIDEO\Video_Gen
 | 
			
		||||
VIDEO-2=VIDEO\Video_BPM
 | 
			
		||||
VIDEO-3=VIDEO\Video_CDM
 | 
			
		||||
VIDEO-4=VIDEO\Video_ILM
 | 
			
		||||
VIDEO-5=VIDEO\Video_OOM
 | 
			
		||||
VIDEO-6=VIDEO\Video_PDM
 | 
			
		||||
VIDEO-7=VIDEO\Video_RQM
 | 
			
		||||
VIDEO-8=VIDEO\Video_xsm
 | 
			
		||||
VIDEO-9=VIDEO\Video_RPY
 | 
			
		||||
VIDEO-10=VIDEO\Video_htm
 | 
			
		||||
Component-type=string
 | 
			
		||||
Component-count=10
 | 
			
		||||
Component-0=CR
 | 
			
		||||
| 
						 | 
				
			
			@ -143,15 +151,15 @@ Component-2=CDM
 | 
			
		|||
Component-3=ILM
 | 
			
		||||
Component-4=OOM
 | 
			
		||||
Component-5=PDM
 | 
			
		||||
Component-6=RQM
 | 
			
		||||
Component-7=XSM
 | 
			
		||||
Component-8=RPY
 | 
			
		||||
Component-9=PDF
 | 
			
		||||
Component-6=XSM
 | 
			
		||||
Component-7=RPY
 | 
			
		||||
Component-8=PDF
 | 
			
		||||
Component-9=VIDEO
 | 
			
		||||
Result=1
 | 
			
		||||
[{{ powerdesigner_key }}-Graphic Select Folder-0]
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0]
 | 
			
		||||
szFolder=Sybase\PowerDesigner 12
 | 
			
		||||
Result=1
 | 
			
		||||
[{{ powerdesigner_key }}-SdStartCopy-0]
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0]
 | 
			
		||||
Keep_Settings=0
 | 
			
		||||
Result=1
 | 
			
		||||
[Application]
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +167,7 @@ Name=Sybase PowerDesigner 12.5
 | 
			
		|||
Version=12.5.2169
 | 
			
		||||
Company=Sybase
 | 
			
		||||
Lang=0009
 | 
			
		||||
[{{ powerdesigner_key }}-SdFinish-0]
 | 
			
		||||
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0]
 | 
			
		||||
Result=1
 | 
			
		||||
bOpt1=0
 | 
			
		||||
bOpt2=0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles/prometheus-exporter/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/prometheus-exporter/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- import_tasks: main_win.yml
 | 
			
		||||
  when: ansible_os_family == 'Windows'
 | 
			
		||||
- import_tasks: main_lin.yml
 | 
			
		||||
  when: ansible_os_family == 'Debian'
 | 
			
		||||
							
								
								
									
										5
									
								
								roles/prometheus-exporter/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/prometheus-exporter/tasks/main_lin.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
- name: Install prometheus-exporter
 | 
			
		||||
  apt:
 | 
			
		||||
    name:
 | 
			
		||||
      - prometheus-node-exporter
 | 
			
		||||
    state: latest
 | 
			
		||||
							
								
								
									
										13
									
								
								roles/prometheus-exporter/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								roles/prometheus-exporter/tasks/main_win.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
- name: Install prometheus exporter
 | 
			
		||||
  win_chocolatey:
 | 
			
		||||
    name: prometheus-windows-exporter.install
 | 
			
		||||
    package_params: "/ListenPort:9100"
 | 
			
		||||
 | 
			
		||||
- name: Allow access to metrics
 | 
			
		||||
  win_firewall_rule:
 | 
			
		||||
    name: "Allow access to Prometheus metrics"
 | 
			
		||||
    enabled: true
 | 
			
		||||
    action: allow
 | 
			
		||||
    direction: in
 | 
			
		||||
    protocol: tcp
 | 
			
		||||
    localport: 9100
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue