Compare commits

...
Sign in to create a new pull request.

66 commits

Author SHA1 Message Date
Gašper Fele-Žorž
0eaf4a5d40 Replace Pelles-C with CLion 2025-10-02 16:35:06 +02:00
Gašper Fele-Žorž
7c4c3ac93e Add CLion 2025-10-02 16:34:43 +02:00
Gašper Fele-Žorž
889083aee0 Add .desktop files, update download links for JetBrains IDEs on Ubuntu 2025-10-02 16:34:13 +02:00
Gašper Fele-Žorž
61e9e01978 Fix dconf so it works on network-mounted homes 2025-10-02 12:20:53 +02:00
Gašper Fele-Žorž
d39dd739ca Fix chromium repo, remove snap 2025-10-02 12:20:10 +02:00
Gašper Fele-Žorž
725737321d Fix broken display settings 2025-10-01 23:58:09 +02:00
Gašper Fele-Žorž
c1ade197c3 Do not try to mount the home of lightdm; update blender, chromium non-snap repo, add wine64 2025-10-01 15:22:29 +02:00
Gašper Fele-Žorž
04c02ecbef Add hide users config for sddm 2025-09-30 13:39:57 +02:00
Gašper Fele-Žorž
cccf0d86d1 Add it-polz public key to authorized keys 2025-09-29 23:15:20 +02:00
Gašper Fele-Žorž
8ca99c1f3a Fix mount options to allow symlinks, pipes in CIFS-mounted homes 2025-09-29 22:41:11 +02:00
02a44e9186 prometheus-exporter: don’t install prometheus push gateway
This is not what it is for.
2025-09-26 09:53:22 +02:00
Gašper Fele-Žorž
7f57513b1c Fix SSH keys 2025-09-25 09:36:39 +02:00
Gašper Fele-Žorž
f1c8801774 Add prometheus exporter 2025-09-25 07:57:53 +02:00
Gašper Fele-Žorž
eb4a2974ad Add firefox policies for Linux, merge them with windows 2025-09-16 15:47:41 +02:00
Gašper Fele-Žorž
78e7df1fb1 Fix pulseview create link task name 2025-09-12 15:45:32 +02:00
Gašper Fele-Žorž
09138174d4 Fix swap on linux+btrfs 2025-09-12 15:43:10 +02:00
Gašper Fele-Žorž
0f8f8486f0 Add ml wrapper for smlnj 2025-09-12 15:42:30 +02:00
Gašper Fele-Žorž
3e7b20423e Fix cryptodome install 2025-09-12 15:41:59 +02:00
Gašper Fele-Žorž
4c69926932 Create PulseView shortcut 2025-09-12 15:35:34 +02:00
Gašper Fele-Žorž
ca58fd58a1 Add firewall rules for Vitis 2025-09-12 15:35:16 +02:00
Gašper Fele-Žorž
6a6dabe4f4 Add opam 2025-09-12 15:35:00 +02:00
Gašper Fele-Žorž
5f34e04926 Fix installation of extensions 2025-09-12 15:33:37 +02:00
Gašper Fele-Žorž
84c21cd863 Add dependencies for KRV 2025-09-12 15:31:55 +02:00
Gašper Fele-Žorž
99c9ae8848 Update dependencies for KRV 2025-09-12 15:30:07 +02:00
Gašper Fele-Žorž
e4ba740edf Add ml wrapper to SML 2025-09-12 15:15:05 +02:00
Gašper Fele-Žorž
e0de1f5493 Add vscode plugins for PPJ, FP 2025-09-12 13:55:22 +02:00
Gašper Fele-Žorž
ab1e0da566 Add join_ad playbook, define large_prog_dir 2025-09-11 13:20:49 +02:00
Gašper Fele-Žorž
674ea7977c Add various *top programs 2025-09-11 13:19:26 +02:00
Gašper Fele-Žorž
14a0096779 Fix Android Studio after testing 2025-09-11 13:18:33 +02:00
Gašper Fele-Žorž
76dff08c65 Change generic Windows key 2025-09-11 13:17:30 +02:00
Gašper Fele-Žorž
5db95e8709 Enable common homes between Windows and Ubuntu 2025-09-11 13:15:49 +02:00
Gašper Fele-Žorž
d03aa86378 Add python3-cryptography 2025-09-10 14:21:31 +02:00
Gašper Fele-Žorž
a0713cd89a Fix XAMPP after testing 2025-09-10 13:34:04 +02:00
Gašper Fele-Žorž
8b2bbbd240 Fix lightdm user display 2025-09-09 10:19:51 +02:00
Gašper Fele-Žorž
9d90dbffbe Allow students to log in without typing the whole domain 2025-09-09 10:00:29 +02:00
Gašper Fele-Žorž
15eb772ba0 Fix mount for C and D 2025-09-07 19:38:23 +02:00
Gašper Fele-Žorž
bdc4fa2fc5 Add ssh keys 2025-09-06 01:02:27 +02:00
Gašper Fele-Žorž
fc01fec18c Fix iverilog role; stil doesn't work 2025-09-05 00:11:16 +02:00
Gašper Fele-Žorž
99a8aa06db Fix / extend README 2025-09-05 00:08:53 +02:00
Gašper Fele-Žorž
9e9d487d57 Disable CUFinder 2025-09-05 00:06:24 +02:00
r.rozmann@jung-electronic.de
529623497c stm32mems-studio added (replaces unicleogui and algobuilder)
added to VIN recipe
2025-09-05 00:05:42 +02:00
RR
d985d8ff84 2025 corrections for ucilnicesmb storage.... 2025-09-05 00:05:39 +02:00
Gašper Fele-Žorž
07f4a73dae Fix name for adding Java bin dir to PATH 2025-09-02 11:37:40 +02:00
Gašper Fele-Žorž
7559b049a2 Fix README.md 2025-09-02 11:28:05 +02:00
Gašper Fele-Žorž
4d3b5f20a7 Fix README.md 2025-09-02 11:25:00 +02:00
Gašper Fele-Žorž
93b01e5d53 Fix / extend README 2025-09-02 11:22:49 +02:00
Gašper Fele-Žorž
0d1e32c626 Fix path according to Marko Poženel 2025-09-02 10:47:06 +02:00
Gašper Fele-Žorž
c15d6f1edf Fix requirements by Ratko Pilipović 2025-09-02 10:47:06 +02:00
79293545d3 Fix README formatting 2025-09-02 09:52:37 +02:00
Gašper Fele-Žorž
c5754dece2 Do not mount cifs volumes for local users; disable debug 2025-09-01 00:21:18 +02:00
Gašper Fele-Žorž
957cd67eb7 Add user homes on CIFS on Linux 2025-08-31 23:36:23 +02:00
Gašper Fele-Žorž
beb1dbb757 Fix Android install on Windows, install to large_prog_dir 2025-08-30 13:10:28 +02:00
Gašper Fele-Žorž
707090192c Fix indentation 2025-08-30 12:45:18 +02:00
Gašper Fele-Žorž
4175f483db Install PowerDesigner to large_prog_dir 2025-08-30 09:21:05 +02:00
Gašper Fele-Žorž
41b392ee1e Honor requests by Luka Fǔrst, apart from shared homes 2025-08-29 15:13:53 +02:00
Gašper Fele-Žorž
8136635a6f Add unattended install files 2025-08-21 00:14:07 +02:00
Gašper Fele-Žorž
782f385a29 Add snapper 2025-08-21 00:13:35 +02:00
Gašper Fele-Žorž
bcb4d836b2 Fix logisim unpack/install 2025-08-21 00:13:20 +02:00
Gašper Fele-Žorž
d0b2a77216 Add new dependencies and perhaps a maintainer for DPS 2025-08-19 18:03:28 +02:00
Gašper Fele-Žorž
eb1e6012bd Add requirements for Podatkovno Rudarjenje 2025-08-19 17:56:27 +02:00
r.rozmann@jung-electronic.de
e1ac068953 stm32mems-studio added (replaces unicleogui and algobuilder)
added to VIN recipe
2025-08-18 15:59:20 +02:00
rozman
90421ef1d1 Changes for 2025, except stm32 2025-08-18 15:59:14 +02:00
rozman
15ea864ddc Changes for 2025, except stm32 2025-08-18 15:56:09 +02:00
Gašper Fele-Žorž
5620a7ebfe Disable CUFinder 2025-08-18 15:51:54 +02:00
RR
e2b92f7a31 refreshing stm32 tools (Cubeide, programmer, monitor) 2025-08-18 15:51:54 +02:00
RR
5954f4e3ba Minor fixes for deprecated and new packages 2025-08-18 15:51:54 +02:00
131 changed files with 1864 additions and 266 deletions

View file

@ -1,5 +1,39 @@
# 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
View 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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -7,3 +7,6 @@
dependencies:
- role: jupyter
- role: openssl
- role: cryptodome
- role: pwntools
- role: python3

View file

@ -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

View file

@ -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

View file

@ -6,3 +6,4 @@ dependencies:
- role: gedit
- role: mono
- role: vscode
- role: notepad++

View file

@ -2,4 +2,4 @@
# Tomaz.Dobravec@fri.uni-lj.si
# Windows, Pelles C
dependencies:
- role: pelles-c
- role: clion

View 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

View file

@ -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

View file

@ -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

View file

@ -14,4 +14,5 @@ dependencies:
- role: jdk
- role: jupyter
- role: pycharm
- role: cryptography
- role: flask

View 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"
>
<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>

View file

@ -1,25 +1,39 @@
- name: Enable create homedir on login
command: pam-auth-update --enable mkhomedir
become: true
- name: Install required packages
apt:
name:
- realmd
- sssd
- libpam-mount
- 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 +46,20 @@
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: Restart sssd
service:
name: sssd
state: restarted

View file

@ -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

View file

@ -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,7 @@ krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
full_name_format = %1$s@%3$s
fallback_homedir = /home/%u@%d
access_provider = ad
krb5_ccname_template = FILE:%d/krb5cc_%U

View 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'

View file

@ -0,0 +1,4 @@
- name: Install altair
apt:
name: python3-altair
state: latest

View file

@ -0,0 +1,2 @@
- name: Install altair
win_command: pip install altair

View file

@ -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"

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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:

View 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

View 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'

View 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

View 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"

View 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'

View file

@ -0,0 +1,4 @@
- name: Install Cocotb
pip:
executable: pipx
name: cocotb[bus]

View file

@ -0,0 +1,2 @@
- name: Install cocoTB
win_command: pip install cocotb[bus]

View file

@ -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

View 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'

View file

@ -0,0 +1,5 @@
- name: Install python-pycryptodome
apt:
name:
- python3-pycryptodome
state: latest

View file

@ -0,0 +1,2 @@
- name: Install python3-pycryptodome
win_command: pip install pycryptodome

View 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'

View file

@ -0,0 +1,5 @@
- name: Install python-cryptography
apt:
name:
- python3-cryptography
state: latest

View file

@ -0,0 +1,2 @@
- name: Install python3-cryptography
win_command: pip install cryptography

View 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'

View file

@ -0,0 +1,4 @@
- name: Install datasets
pip:
executable: pipx
name: datasets

View file

@ -0,0 +1,2 @@
- name: Install datasets
win_command: pip install datasets

View file

@ -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"

View 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'

View file

@ -0,0 +1,4 @@
- name: Install evaluate
pip:
executable: pipx
name: evaluate

View file

@ -0,0 +1,2 @@
- name: Install evaluate
win_command: pip install evaluate

View 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
}
}
}

View file

@ -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

View file

@ -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

View 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

View file

@ -0,0 +1,4 @@
[Users]
MinimumUid=999
MaximumUid=999
RememberLastUser=false

View file

@ -0,0 +1 @@
service-db:keyfile/user

View file

@ -9,3 +9,4 @@ dependencies:
- role: sumatrapdf
- role: vlc
- role: wget
- role: prometheus-exporter

View file

@ -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
- snapper
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,42 @@
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: 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: Copy authorized_keys
become: false
ansible.posix.authorized_key:
user: "{{ ansible_user }}"
key: "{{ lookup('file', 'authorized_keys') }}"
state: present
exclusive: true

View file

@ -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

View 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

View file

@ -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

View 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'

View file

@ -0,0 +1,4 @@
- name: Install Icarus
apt:
name: iverilog
state: latest

View file

@ -0,0 +1,5 @@
- name: Install Icarus Verilog
win_chocolatey:
name: iverilog
version: '11.0'
state: present

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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

View 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'

View file

@ -0,0 +1,4 @@
- name: Install mlxtend
pip:
executable: pipx
name: mlxtend

View file

@ -0,0 +1,2 @@
- name: Install pandas
win_command: pip install mlxtend

View 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'

View file

@ -0,0 +1,4 @@
- name: Install networkx
apt:
name: python3-networkx
state: latest

View file

@ -0,0 +1,2 @@
- name: Install networkx
win_command: pip install networkx

View 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'

View file

@ -0,0 +1,5 @@
- name: Install numpy
apt:
name:
- python3-numpy
state: latest

View file

@ -0,0 +1,2 @@
- name: Install numpy
win_command: pip install numpy

View file

@ -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

View file

@ -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:

View 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'

View file

@ -0,0 +1,4 @@
- name: Install plotly
apt:
name: python3-plotly
state: latest

View file

@ -0,0 +1,2 @@
- name: Install plotly
win_command: pip install plotly

View file

@ -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

View file

@ -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

View 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'

View file

@ -0,0 +1,5 @@
- name: Install prometheus-exporter
apt:
name:
- prometheus-node-exporter
state: latest

View file

@ -0,0 +1,3 @@
- name: Install prometheus exporter
win_chocolatey:
name: prometheus-windows-exporter.install

View file

@ -10,6 +10,10 @@
path: "{{ download.dest }}"
arguments: /S /Verysilent /AllUsers
- name: Create PulseView Shortcut
win_shortcut:
src: "C:\\Program Files (x86)\\sigrok\\PulseView\\pulseview.exe"
dest: "C:\\Users\\Public\\Desktop\\PulseView.lnk"
#- name: Remove temporary files
# win_file:
# path: "{{ download.dest }}"

View 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'

View file

@ -0,0 +1,5 @@
- name: Install python-pwntools
apt:
name:
- python3-pwntools
state: latest

View file

@ -0,0 +1,2 @@
- name: Install python3-pwntools
win_command: pip install pwntools

View file

@ -0,0 +1,11 @@
[Desktop Entry]
Name=PyCharm
GenericName=PyCharm
Comment=JetBrains PyCharm IDE
MimeType=text/x-python;
Exec=/opt/PyCharm/bin/pycharm.sh
Icon=pycharm
Terminal=false
Type=Application
Categories=Development;ComputerScience;
StartupNotify=true

View file

@ -6,7 +6,27 @@
state: directory
- name: Download and unpack JetBrains PyCharm
unarchive:
src: https://download.jetbrains.com/python/pycharm-community-2023.2.1.tar.gz
src: https://data.services.jetbrains.com/products/download?code=PCP&platform=linux
dest: /opt/PyCharm
creates: /opt/PyCharm/pycharm-community-2023.2.1/build.txt
extra_opts: --strip-components=1
creates: /opt/PyCharm/build.txt
remote_src: yes
- name: Install icon
block:
- file:
path: /usr/local/share/icons
state: directory
- copy:
src: /opt/PyCharm/bin/pycharm.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/pycharm.desktop
src: pycharm.desktop

View file

@ -8,4 +8,4 @@
state: upgrade
version: "{{ target_version }}"
# TODO set default project directory to H:\something
# TODO set default project directory to {{large_prog_dir}}\something

View file

@ -10,3 +10,7 @@
- ipython3
state: latest
- name: Install generally useful libraries
apt:
name:
- python3-tqdm

View 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'

View file

@ -0,0 +1,6 @@
- name: Install scikit
apt:
name:
- python3-sklearn
- python3-sklearn-pandas
state: latest

View file

@ -0,0 +1,2 @@
- name: Install scikit
win_command: pip install scikit-learn

View 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'

View file

@ -0,0 +1,4 @@
- name: Install seaborn
apt:
name: python3-seaborn
state: latest

View file

@ -0,0 +1,2 @@
- name: Install seaborn
win_command: pip install seaborn

View file

@ -5,7 +5,7 @@
- name: Set SiFive Studio install location
set_fact:
download_filedest: C:\FreedomStudio-4.18.0.2021-04-1-x86_64-w64-mingw32.zip
download_filedest: "{{ large_prog_dir }}\\FreedomStudio-4.18.0.2021-04-1-x86_64-w64-mingw32.zip"
- name: Download SiFive
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/bulic_fri1_uni-lj_si/EdiSnJpoClJLtc3AtcAtEQ4BI76_PeDvL-ZmhxG4OEyvig?e=xBRYcb&download=1" -O "{{ download_filedest }}"
args:
@ -14,12 +14,12 @@
- name: Unzip SiFive Studio
win_unzip:
src: "{{ download_filedest }}"
dest: C:\SiFive\
creates: C:\SiFive\plugins
dest: "{{ large_prog_dir }}\\SiFive\\"
creates: "{{ large_prog_dir }}\\SiFive\\plugins"
delete_archive: yes
- name: Create desktop shortcut
win_shortcut:
description: "SiFive Freedom Studio"
src: C:\SiFive\FreedomStudio.exe
src: "{{ large_prog_dir }}\\SiFive\\FreedomStudio.exe"
dest: '%public%\Desktop\SiFive.lnk'

Some files were not shown because too many files have changed in this diff Show more