Compare commits

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

52 commits

Author SHA1 Message Date
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
Gašper Fele-Žorž
2c22dcceaf Fix main.yml for stm32mems-studio 2025-08-16 00:13:27 +02:00
Gašper Fele-Žorž
e845b92ce0 Bump versions, fix installers 2025-08-15 23:04:26 +02:00
Gašper Fele-Žorž
fc56d17bb6 Update requirements for KRV, RA 2025-08-15 23:00:35 +02:00
Gašper Fele-Žorž
2d3fea452f Add role for flask 2025-08-15 22:59:23 +02:00
r.rozmann@jung-electronic.de
0b79607ee6 Minor: historic FRI-SMS support comment added (preserve role file) 2025-08-15 22:47:27 +02:00
r.rozmann@jung-electronic.de
368a302c89 stm32mems-studio added (replaces unicleogui and algobuilder)
added to VIN recipe
2025-08-15 22:47:27 +02:00
r.rozmann@jung-electronic.de
aa6730ab7a WinIdea new version 2025-08-15 22:47:27 +02:00
r.rozmann@jung-electronic.de
7d33bcdcf4 Logisim Linux evolution install added 2025-08-15 22:47:27 +02:00
r.rozmann@jung-electronic.de
67fad39788 Minor: 2024->2025 2025-08-15 22:47:27 +02:00
Gašper Fele-Žorž
45c8586c95 Install PowerDesigner. Give up on supporting spaces in installer directory names. 2025-08-14 16:02:38 +02:00
Gašper Fele-Žorž
675378ba8a Improve os detection 2025-08-13 23:54:56 +02:00
Gašper Fele-Žorž
9a2e67b2e1 Change become method to sudo for Linux, runas for Windows 2025-08-13 16:46:33 +02:00
Gašper Fele-Žorž
f5456a7f57 Change RTC to UTC 2025-08-13 16:38:12 +02:00
Gašper Fele-Žorž
d0ac08e8ba Join setup.yml for Windows and Linux 2025-08-13 16:23:28 +02:00
2fe3a758d5 Merge pull request 'AAHRP-63263: update meta/main.yml dependencies' (#4) from octavian.machidon/classroom:aahrp-63263-meta-update into master
Reviewed-on: rc/classroom#4
Reviewed-by: polz <Gasper.FeleZorz@fri.uni-lj.si>
2025-08-13 10:44:26 +00:00
aafe896a98 Merge pull request 'master' (#3) from jurijm/classroom:master into master
Reviewed-on: rc/classroom#3
Reviewed-by: polz <Gasper.FeleZorz@fri.uni-lj.si>
2025-08-13 10:43:49 +00:00
b5ac93a417 Merge pull request 'Add SPO-63264' (#2) from add-spo-63264 into master
Reviewed-on: rc/classroom#2
Reviewed-by: polz <Gasper.FeleZorz@fri.uni-lj.si>
2025-08-13 10:42:53 +00:00
polz
a45faf868f Added IS-63266 2025-08-13 12:39:48 +02:00
7b000c1b26 Update roles/AAHRP-63263/meta/main.yml 2025-08-13 09:53:18 +00:00
f76056ebee Add OS-63217 2025-08-13 09:25:49 +00:00
257afdde51 Add APS1-63711 2025-08-13 09:24:35 +00:00
90f905c3cc Add SPO-63264 2025-08-13 07:22:09 +02:00
119 changed files with 1853 additions and 350 deletions

View file

@ -1,8 +1,39 @@
# Using the ansible scripts
Ansible playbooks for deploying classroom computers. Run with something like: Ansible playbooks for deploying classroom computers. Run with something like:
ansible-playbook --user <local admin> -k -K -i inventory.yml setup.py
ansible-playbook --user <AD admin> --ask-pass \ or, for Apple computers:
--become-user=<local admin> ansible-playbook --user <local admin> -k -K -i inventory.yml macsetup.py
--inventory hosts winsetup.yml
# 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).
ansible-playbook --user <local admin> --ask-pass \
--inventory hosts linsetup.yml

View file

@ -1,8 +1,8 @@
- hosts: ucilnice-prototip - hosts: classroom
become_method: sudo become_method: sudo
become: true become: true
vars: vars:
ansible_port: 1001 # ansible_port: 1001
ansible_ssh_extra_args: '-o ForwardX11=yes' ansible_ssh_extra_args: '-o ForwardX11=yes'
# ansible_become_pass: '{{ lookup("env", "ANSIBLE_PASSWORD") }}' # ansible_become_pass: '{{ lookup("env", "ANSIBLE_PASSWORD") }}'
# ansible_password: '{{ lookup("env", "ANSIBLE_PASSWORD") }}' # ansible_password: '{{ lookup("env", "ANSIBLE_PASSWORD") }}'
@ -12,7 +12,8 @@
- vars/credentials.yml - vars/credentials.yml
- vars/software_keys.yml - vars/software_keys.yml
roles: roles:
# - orange # - nodejs
# - qcadesigner-e
- all_classes - all_classes
# - fri_base # - fri_base
# - powerdesigner # - powerdesigner

View file

@ -1,7 +1,6 @@
# Analiza algoritmov in hevristično reševanje problemov # Analiza algoritmov in hevristično reševanje problemov
# matej.piculin@fri.uni-lj.si # octavian.machidon@fri.uni-lj.si
# Windows, Java JDK, Eclipse, R, RStudio # Windows, Java JDK, Eclipse, R, RStudio
dependencies: dependencies:
- role: rstudio - role: python3
- role: eclipse - role: pycharm
- role: jdk

View file

@ -0,0 +1,7 @@
# Algoritmi in podatkovne strukture 1
# jurij.mihelic@fri.uni-lj.si
# JDK, vscode, gedit
dependencies:
- role: jdk
- role: vscode
- role: gedit

View file

@ -1,5 +1,8 @@
# Digitalno načrtovanje # Digitalno načrtovanje
# Nejc.Ilc@fri.uni-lj.si # ratko.pilipovic@fri.uni-lj.si
# Windows, Vivado 2022.1 # Windows, Vivado 2022.1
dependencies: dependencies:
- role: vivado - role: vivado
- role: iverilog
- role: cocotb
- role: surfer-project

View file

@ -1,8 +1,11 @@
# Digitalno procesiranje signalov # Digitalno procesiranje signalov
# Aleks.Huc@fri.uni-lj.si # Aleks.Huc@fri.uni-lj.si
# metod.celestina@dewesoft.si
# Windows, GNU/Linux, Matlab, wfdb, Octave, Audacity # Windows, GNU/Linux, Matlab, wfdb, Octave, Audacity
dependencies: dependencies:
- role: matlab - role: matlab
- role: wfdb - role: wfdb
- role: octave - role: octave
- role: audacity - role: audacity
- role: numpy
- role: matplotlib

View file

@ -0,0 +1,7 @@
# Inteligentni sistemi
# tadej.skvorc@fri.uni-lj.si
#
dependencies:
- role: python3
- role: jupyter
- role: vscode

View file

@ -5,5 +5,5 @@
# SageMath se se prevede za Ubutnu 24.04: https://github.com/sagemath/sage/issues/38051#issuecomment-2123452861 # SageMath se se prevede za Ubutnu 24.04: https://github.com/sagemath/sage/issues/38051#issuecomment-2123452861
# - include_tasks: sagemath.yml # - include_tasks: sagemath.yml
dependencies: dependencies:
- role: jupyter.yml - role: jupyter
- role: openssl.yml - role: openssl

View file

@ -1,10 +1,10 @@
# Načrtovanje digitalnih naprav # Načrtovanje digitalnih naprav
# Miran.Koprivec@fri.uni-lj.si, 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
# Načrtovanje digitalnih naprav
# Miha.Moskon@fri.uni-lj.si
# Windows, Vivado 2022.1 # Windows, Vivado 2022.1
dependencies: dependencies:
- role: putty - role: putty
- role: vivado - role: vivado
- role: cp2102_driver - 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 # Windows, Logisim, Logisim Evolution, RAVINOR, CubeIDE + Tools, VSCode + ST plugin, Putty
dependencies: dependencies:
- role: logisim - role: logisim
- role: stm32cube # - role: stm32cube
- role: vscode - role: vscode
- role: putty - role: putty
- role: stm32duino - role: stm32duino

9
roles/OS-63217/main.yaml Normal file
View file

@ -0,0 +1,9 @@
# Operacijski sistemi
# jurij.mihelic@fri.uni-lj.si
# C, JDK, vscode, gedit
dependencies:
- role: c_development
- role: jdk
- role: vscode
- role: gedit
- role: virtualbox

View file

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

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 # Ziga.Pusnik@fri.uni-lj.si, Robert.Rozman@fri.uni-lj.si
# Windows, CubeIDE + tools, STMDuino, VSCode, WinIdea 9.21 + GCC + QEMU, Visual2 # Windows, CubeIDE + tools, STMDuino, VSCode, WinIdea 9.21 + GCC + QEMU, Visual2
dependencies: dependencies:
- role: stm32cube (CubeMonitor sem vzel samo exe) # - role: stm32cube # (CubeMonitor sem vzel samo exe)
- role: stm32duino - role: stm32duino
- role: vscode - role: vscode
- role: putty - role: putty
@ -10,6 +10,7 @@ dependencies:
- role: gcc-arm - role: gcc-arm
- role: git - role: git
- role: visual2 - role: visual2
# - role: winidea-frisms
#TODO Writable d:\RAVINOR directory #TODO Writable d:\RAVINOR directory

View file

@ -0,0 +1,5 @@
# Sistemska programska oprema
# tomaz.dobravec@fri.uni-lj.si
# Windows, GNU/Linux, Java
dependencies:
- role: jdk

View file

@ -2,13 +2,14 @@
# Robert.Rozman@fri.uni-lj.si # Robert.Rozman@fri.uni-lj.si
# Windows, CubeIDE + Tools, STMDuino, VSCode, LTSpice, PulseView,Putty, STM32 Algobuilder & Unicleo GUI # Windows, CubeIDE + Tools, STMDuino, VSCode, LTSpice, PulseView,Putty, STM32 Algobuilder & Unicleo GUI
dependencies: dependencies:
- role: stm32cube #- role: stm32cube
- role: stm32duino - role: stm32duino
- role: vscode - role: vscode
- role: ltspice - role: ltspice
- role: pulseview - role: pulseview
- role: putty - role: putty
- role: stm32algobuilder #(ni še exe. Datoteke - ne dobim iz ST portala) - role: stm32mems-studio # replaces algobuilder and unicleogui
- role: stm32unicleogui # - role: stm32algobuilder #(ni še exe. Datoteke - ne dobim iz ST portala)
# - role: stm32unicleogui
#TODO Writable d:\RAVINOR directory #TODO Writable d:\RAVINOR directory

View file

@ -0,0 +1,37 @@
<?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="%(USER)"
mountpoint="~/"
options="sec=krb5i,cruid=%(USERUID)"
>
<not>
<or>
<user>local_admin</user>
<user>root</user>
<sgrp>sudo</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>sudo</sgrp>
</or>
</not>
</volume>
</pam_mount>

View file

@ -1,25 +1,39 @@
- name: Enable create homedir on login - name: Install required packages
command: pam-auth-update --enable mkhomedir apt:
become: true 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 - name: Check whether we already joined
command: /bin/bash -c "/usr/sbin/realm list" command: /bin/bash -c "/usr/sbin/realm list"
register: realm_list_results 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 - name: Join using realmd
expect: 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: responses:
(?i)Password: "{{ad_join_password}}" (?i)Password: "{{ad_join_password}}"
ignore_errors: yes ignore_errors: yes
@ -32,3 +46,20 @@
owner: root owner: root
mode: 0600 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 - name: Set OU
set_fact: set_fact:
ou_path: "OU={{locations[0]}},OU=Ucilnice,DC=fri1,DC=uni-lj,DC=si" ou_path: "OU={{locations[0]}},OU=Ucilnice,DC=fri1,DC=uni-lj,DC=si"
- name: "Rename" - name: "Rename"
# Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom # Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
win_hostname: win_hostname:
name: "{{inventory_hostname}}" name: "{{inventory_hostname}}"
register: hostname_res register: hostname_res
- name: "Reboot after hostname change" - name: "Reboot after hostname change"
win_reboot: win_reboot:
when: hostname_res.reboot_required when: hostname_res.reboot_required
- name: Stop Windows Update Service - name: Stop Windows Update Service
win_service: win_service:
name: wuauserv name: wuauserv
state: stopped state: stopped
- name: Clear WSUS ID from registry - name: Clear WSUS ID from registry
win_regedit: win_regedit:
path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
@ -24,25 +28,30 @@
- AccountDomainSid - AccountDomainSid
- SusClientId - SusClientId
- SusClientIDValidation - SusClientIDValidation
- name: Start Windows Update Service - name: Start Windows Update Service
win_service: win_service:
name: wuauserv name: wuauserv
state: started state: started
- name: "Join domain" - name: "Join domain"
win_domain_membership: win_domain_membership:
domain_admin_user: "{{adjoin_user}}" domain_admin_user: "{{ad_join_user}}"
domain_admin_password: "{{adjoin_password}}" domain_admin_password: "{{ad_join_password}}"
dns_domain_name: "{{domain_name}}" dns_domain_name: "{{domain_name}}"
domain_ou_path: "{{ou_path}}" domain_ou_path: "{{ou_path}}"
hostname: "{{inventory_hostname}}" hostname: "{{inventory_hostname}}"
state: domain state: domain
register: domain_state register: domain_state
- name: Reset WSUS authorization - name: Reset WSUS authorization
win_command: wuauclt.exe /resetauthorization /detectnow win_command: wuauclt.exe /resetauthorization /detectnow
ignore_errors: yes ignore_errors: yes
- name: Update windows - name: Update windows
win_command: wuauclt.exe /updatenow win_command: wuauclt.exe /updatenow
ignore_errors: yes ignore_errors: yes
- name: Reboot - name: Reboot
win_command: "shutdown /r" win_command: "shutdown /r"
when: domain_state.reboot_required when: domain_state.reboot_required

View file

@ -29,3 +29,4 @@ ldap_id_mapping = True
use_fully_qualified_names = True use_fully_qualified_names = True
fallback_homedir = /home/%u@%d fallback_homedir = /home/%u@%d
access_provider = ad access_provider = ad
krb5_ccname_template = FILE:%d/krb5cc_%U

View file

@ -2,6 +2,7 @@ dependencies:
- role: fri_base - role: fri_base
- role: AAHRP-63263 - role: AAHRP-63263
- role: APS1-63279 - role: APS1-63279
- role: APS1-63711
- role: ARP1-63545C - role: ARP1-63545C
- role: BMO-63259 - role: BMO-63259
- role: DF-63530 - role: DF-63530
@ -11,6 +12,7 @@ dependencies:
- role: EP-63249 - role: EP-63249
- role: FP-63507 - role: FP-63507
- role: GO-63715 - role: GO-63715
- role: IS-63266
- role: IS-63714 - role: IS-63714
- role: IVZ-63521 - role: IVZ-63521
- role: KCR-63550 - role: KCR-63550
@ -24,17 +26,22 @@ dependencies:
- role: NRG-63553 - role: NRG-63553
- role: OBSS-63514 - role: OBSS-63514
- role: ODV-63204 - role: ODV-63204
- role: OIS-63215
- role: OO-63271 - role: OO-63271
- role: OPB-63208
- role: OR-63717 - role: OR-63717
- role: ORS-63218 - role: ORS-63218
- role: OS-63217
- role: OS-63709 - role: OS-63709
- role: OS-63741 - role: OS-63741
- role: OUI-63214 - role: OUI-63214
- role: P1-63277
- role: P1-63702
- role: P2-63278 - role: P2-63278
- role: P2-63706 - role: P2-63706
- role: PA-63737 - role: PA-63737
- role: PB2-63713
- role: PB-63707 - role: PB-63707
- role: PB2-63713
- role: PJC-63769 - role: PJC-63769
- role: PPJ-63220 - role: PPJ-63220
- role: PS-63261 - role: PS-63261
@ -48,6 +55,7 @@ dependencies:
- role: RPOI-90066 - role: RPOI-90066
- role: RZP-63523 - role: RZP-63523
- role: SP-63255 - role: SP-63255
- role: SPO-63264
- role: ST-63727 - role: ST-63727
- role: SU-63519 - role: SU-63519
- role: TINR-63740 - role: TINR-63740

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

@ -2,9 +2,8 @@ AndroidSDK_packages:
- add-ons;addon-google_apis-google-24 - add-ons;addon-google_apis-google-24
- add-ons;addon-google_apis-google-24 - add-ons;addon-google_apis-google-24
- build-tools;34.0.0-rc3 - build-tools;34.0.0-rc3
- build-tools;35.0.0 - build-tools;36.0.0
- cmake;3.22.1 - cmake;4.0.3
#- cmake;latest
- cmdline-tools;latest - cmdline-tools;latest
- emulator - emulator
- extras;android;m2repository - extras;android;m2repository
@ -22,15 +21,15 @@ AndroidSDK_packages:
# - patcher;v4 # - patcher;v4
- platform-tools - platform-tools
- platforms;android-34 - platforms;android-34
- platforms;android-35 - platforms;android-36
- platforms;android-32 - platforms;android-32
- platforms;android-UpsideDownCakePrivacySandbox # - platforms;android-UpsideDownCakePrivacySandbox
- skiaparser;3 - skiaparser;3
- sources;android-35 - sources;android-36
- sources;android-34 - sources;android-34
- system-images;android-35;google_apis;x86_64 - system-images;android-36;google_apis;x86_64
- system-images;android-34;google_apis;x86_64 - system-images;android-34;google_apis;x86_64
- system-images;android-32;google_apis;x86_64 - system-images;android-32;google_apis;x86_64
- system-images;android-35;google_apis_playstore;x86_64 - system-images;android-36;google_apis_playstore;x86_64
- system-images;android-34;google_apis_playstore;x86_64 - system-images;android-34;google_apis_playstore;x86_64
- system-images;android-UpsideDownCakePrivacySandbox;google_apis_playstore;x86_64 # - system-images;android-UpsideDownCakePrivacySandbox;google_apis_playstore;x86_64

View file

@ -1,63 +1,90 @@
- name: Set Android Studio version - name: Set Android Studio version
set_fact: set_fact:
sdk_path: C:\android-sdk studio_path: "{{ large_prog_dir }}\\android-studio"
studio_version: "2025.1.2.11" studio_version: "2025.1.2.13"
tools_version: "latest" 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 - name: Check Android Studio tools
win_stat: win_stat:
path: "{{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager.bat" path: "{{ tools_path }}\\bin\\sdkmanager.bat"
register: tools register: tools
- when: not tools.stat.exists - when: not tools.stat.exists
block: block:
- name: Download Android Studio tools - name: Download Android Studio tools
win_get_url: win_get_url:
# url: "https://dl.google.com/android/repository/commandlinetools-win-{{ tools_version }}.zip" 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" # url: "https://dl.google.com/android/repository/platform-tools-{{ tools_version }}-windows.zip"
dest: C:\ dest: "{{ studio_path }}"
- name: Extract Android Studio tools - name: Extract Android Studio tools
win_unzip: win_unzip:
src: "C:\\commandlinetools-win-{{ tools_version }}.zip" # src: "{{ large_prog_dir }}\\platform-tools-{{ tools_version }}-windows.zip"
dest: "{{ sdk_path }}\\cmdline-tools" src: "{{ studio_path}}\\commandlinetools-win-{{ tools_version }}.zip"
dest: "{{ studio_path }}\\cmdline-tools\\"
delete_archive: yes delete_archive: yes
- name: Move cmdline-tools to expected location
- name: Accept Android SDK licenses ansible.windows.win_powershell:
win_shell: sh -c "yes | /c/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager.bat --licenses" script: move "{{ studio_path }}\\cmdline-tools\\cmdline-tools" "{{ tools_path }}"
- 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 }}"
# {{ 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 - name: Create Android Studio data directory
win_file: win_file:
path: D:\.android path: "{{ large_prog_dir }}\\.android"
state: directory state: directory
- name: Set Android Studio environment variables - name: Set Android Studio environment variables
win_environment: win_environment:
level: machine level: machine
variables: variables:
ANDROID_HOME: "{{ sdk_path }}" ANDROID_HOME: "{{ studio_path }}"
ANDROID_PREFS_ROOT: D:\ ANDROID_SDK_ROOT: "{{ studio_path }}"
GRADLE_USER_HOME: D:\.gradle 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"
- name: Include Android SDK packages
include_vars: androidsdk_packages.yml
- 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: Check HAXM install status #- name: Check HAXM install status
# win_stat: # win_stat:
# path: "%ProgramFiles%\\Intel\\HAXM" # path: "%ProgramFiles%\\Intel\\HAXM"

View file

@ -8,8 +8,9 @@
- name: Install Arduino-cli - name: Install Arduino-cli
win_package: win_package:
# path: https://downloads.arduino.cc/arduino-ide/arduino-ide_2.0.0_Windows_64bit.exe # 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 path: https://github.com/arduino/arduino-cli/releases/download/v1.3.0/arduino-cli_1.3.0_Windows_64bit.msi
arguments: /S /AllUsers # path: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.zip
# arguments: /S /AllUsers
# creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe" # creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe"

View file

@ -1,9 +1,13 @@
- name: Add Chromium not-a-snap repository - name: Add Chromium not-a-snap repository
apt_repository: apt:
repo: ppa:xtradeb/apps deb: https://launchpad.net/~xtradeb/+archive/ubuntu/apps/+files/xtradeb-apt-source_0.4_all.deb
state: present state: present
update_cache: True
validate_certs: False #apt_repository:
# repo: ppa:xtradeb/apps
# state: present
# update_cache: True
# validate_certs: False
- name: Install Chromium instead of Chrome - name: Install Chromium instead of Chrome
apt: apt:

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: win_chocolatey:
ignore_checksums: true ignore_checksums: true
name: cp210x-vcp-drivers-win10 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,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: win_lineinfile:
path: "%ProgramFiles%\\Eclipse {{ target_version }}\\eclipse\\eclipse.ini" path: "%ProgramFiles%\\Eclipse {{ target_version }}\\eclipse\\eclipse.ini"
regexp: "osgi.instance.area.default" 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,26 @@
- name: Send valid bash or ps command with different results
raw: |
echo \#\#
register: raw_result
- name: Set shell type
set_fact:
ansible_shell_type: "{% if raw_result['stdout'][-4] == '#' %}sh{% else %}powershell{%endif%}"
- name: Set connection parameters and paths for Windows
become: false
set_fact:
ansible_become_method: runas
ansible_become_flags: ""
ansible_become_user: "{{ windows_user }}"
logon_type: interactive
installers: \\ucilnicesmb.fri1.uni-lj.si\ucilnice_d\install
when: ansible_shell_type == "powershell"
- name: Set connection parameters and paths for Ubuntu
set_fact:
ansible_become_method: sudo
ansible_become_flags: ""
ansible_ssh_extra_args: '-o ForwardX11=yes'
installers: /mnt/ucilnice_d/install
when: ansible_shell_type == "sh"

View file

@ -1,5 +1,21 @@
- name: Add Firefox not-a-snap repository - name: Add Firefox not-a-snap repository
block: block:
- name: add Mozilla apt key
ansible.builtin.get_url:
url: https://packages.mozilla.org/apt/repo-signing-key.gpg
dest: /etc/apt/keyrings/packages.mozilla.org.asc
- name: add Mozilla apt source
ansible.builtin.apt_repository:
repo: "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main"
state: present
#- name: Add Firefox PPA
# apt_repository:
# repo: ppa:mozillateam/ppa
# state: present
# update_cache: True
# validate_certs: False
- name: Pin Firefox PPA package priority - name: Pin Firefox PPA package priority
template: template:
src: mozilla-firefox-apt-preferences src: mozilla-firefox-apt-preferences
@ -8,12 +24,6 @@
template: template:
src: mozilla-firefox-unattended-upgrades src: mozilla-firefox-unattended-upgrades
dest: /etc/apt/apt.conf.d/51unattended-upgrades-firefox dest: /etc/apt/apt.conf.d/51unattended-upgrades-firefox
- name: Add Firefox PPA
apt_repository:
repo: ppa:mozillateam/ppa
state: present
update_cache: True
validate_certs: False
- name: Install Firefox - name: Install Firefox
apt: apt:

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,7 @@
- name: Install flask
apt:
name:
- python3-flask
- python-flask-doc
state: latest

View file

@ -0,0 +1,4 @@
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

View file

@ -27,8 +27,9 @@
- wine32:i386 - wine32:i386
- wine-binfmt - wine-binfmt
- dosbox - dosbox
- webext-ublock-origin-chromium - snapper
- webext-ublock-origin-firefox # - webext-ublock-origin-chromium
# - webext-ublock-origin-firefox
- nethack-console - nethack-console
- zsh - zsh
- tmux - tmux
@ -49,6 +50,8 @@
- neovim-qt - neovim-qt
- binwalk - binwalk
- iotop - iotop
- evince
- okular
- htop - htop
- jdupes - jdupes
state: latest state: latest
@ -132,8 +135,8 @@
state: mounted state: mounted
opts: guest,soft,nofail opts: guest,soft,nofail
- name: Set time to local RTC # - name: Set time to local RTC
shell: "timedatectl set-local-rtc 1 --adjust-system-clock" # shell: "timedatectl set-local-rtc 1 --adjust-system-clock"
- name: Install ethtool - name: Install ethtool
apt: apt:
@ -144,3 +147,18 @@
copy: copy:
dest: /etc/udev/rules.d/ dest: /etc/udev/rules.d/
src: 99-wakeonlan.rules src: 99-wakeonlan.rules
- 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: Copy authorized_keys
copy:
src: authorized_keys
dest: ~/.ssh/authorized_keys

View file

@ -1,18 +1,34 @@
- name: Set RTC to UTC
win_regedit:
path: HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
name: RealTimeIsUniversal
data: 1
type: dword
- name: Set timezone - name: Set timezone
win_timezone: win_timezone:
timezone: Central Europe Standard Time timezone: Central Europe Standard Time
- name: Show file extensions in Explorer - name: Show file extensions in Explorer
win_regedit: win_regedit:
path: HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced path: HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
name: HideFileExt name: HideFileExt
data: 0 data: 0
type: dword type: dword
- name: Allow SMB insecure guest access - name: Allow SMB insecure guest access
win_regedit: win_regedit:
path: HKLM:\Software\Policies\Microsoft\Windows\LanmanWorkstation path: HKLM:\Software\Policies\Microsoft\Windows\LanmanWorkstation
name: AllowInsecureGuestAuth name: AllowInsecureGuestAuth
data: 1 data: 1
type: dword type: dword
- name: Enable Unified Write Filter
win_optional_feature:
include_parent: true
name: Client-UnifiedWriteFilter
state: present
- name: Install PSCX - name: Install PSCX
community.windows.win_psmodule: community.windows.win_psmodule:
name: Pscx name: Pscx
@ -20,5 +36,15 @@
allow_clobber: true allow_clobber: true
state: present 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: turn on GPO to allow guest SMB logins
# TODO: open firewall for Samba # TODO: open firewall for Samba

View file

@ -1,9 +1,23 @@
- name: Add GNS3 repository - name: Add GNS3 repository
apt_repository: block:
repo: ppa:gns3/ppa - name: add GNS3 apt key
state: present ansible.builtin.get_url:
update_cache: True url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xb83aaabffbd82d21b543c8ea86c22c2ec6a24d7f
validate_certs: False dest: /etc/apt/keyrings/gns3-ppa.asc
- name: add GNS3 apt deb source
ansible.builtin.apt_repository:
repo: "deb [signed-by=/etc/apt/keyrings/gns3-ppa.asc] https://ppa.launchpadcontent.net/gns3/ppa/ubuntu {{ ansible_distribution_release }} main "
state: present
- name: add GNS3 apt deb-src source
ansible.builtin.apt_repository:
repo: "deb-src [signed-by=/etc/apt/keyrings/gns3-ppa.asc] https://ppa.launchpadcontent.net/gns3/ppa/ubuntu {{ ansible_distribution_release }} main "
state: present
# apt_repository:
# repo: ppa:gns3/ppa
# state: present
# update_cache: True
# validate_certs: False
- name: Install gns3 server - name: Install gns3 server
ansible.builtin.apt: ansible.builtin.apt:
name: gns3-server name: gns3-server

View file

@ -1,10 +1,20 @@
- name: Add Inkscape repository - name: Add Inkscape repository
apt_repository: block:
repo: ppa:inkscape.dev/stable - name: add Inkscape trunk apt key
state: present ansible.builtin.get_url:
update_cache: True url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1F46021FF9A0C56504CE42CD06E315A37AAEF27A
validate_certs: False dest: /etc/apt/keyrings/inkscape-trunk-ppa.asc
- name: add Inkscape trunk apt deb source
ansible.builtin.apt_repository:
repo: "deb [signed-by=/etc/apt/keyrings/inkscape-trunk-ppa.asc] https://ppa.launchpadcontent.net/reviczky/inkscape-1.4/ubuntu {{ ansible_distribution_release }} main "
state: present
# apt_repository:
# repo: ppa:inkscape.dev/stable
# state: present
# update_cache: True
# validate_certs: False
- name: Install Inkscape - name: Install Inkscape
apt: apt:
name: inkscape name: inkscape-trunk
state: latest 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 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: apt:
name: openjdk-21-jdk name: openjdk-25-jdk
state: latest
- name: Install latest Java docs
apt:
name: openjdk-25-doc
state: latest state: latest
- name: Install OpenJDK 17 - name: Install OpenJDK 17
@ -31,11 +36,7 @@
- libc6-x32 - libc6-x32
state: latest state: latest
- name: Install Oracle JDK 22 - name: Install Oracle JDK 24
apt: apt:
deb: "https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.deb" deb: "https://download.oracle.com/java/24/latest/jdk-24_linux-x64_bin.deb"
- name: Install Java docs
apt:
deb: "https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.deb"

View file

@ -1,6 +1,6 @@
- name: Install Oracle JDK - name: Install Oracle JDK
win_package: win_package:
path: https://download.oracle.com/java/22/latest/jdk-22_windows-x64_bin.msi path: https://download.oracle.com/java/24/latest/jdk-24_windows-x64_bin.msi
arguments: INSTALLLEVEL=3 arguments: INSTALLLEVEL=3
- name: Find Java version - name: Find Java version
@ -28,6 +28,13 @@
state: present state: present
scope: machine 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 - name: Disable Java updates
win_regedit: win_regedit:
path: HKLM:\SOFTWARE\WOW6432Node\JavaSoft\Java Update\Policy path: HKLM:\SOFTWARE\WOW6432Node\JavaSoft\Java Update\Policy

View file

@ -11,3 +11,13 @@
dest: /opt/logisim dest: /opt/logisim
remote_src: yes remote_src: yes
creates: /opt/logisim/META-INF/MANIFEST.MF 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
dest: /opt/logisim-evolution
remote_src: yes
creates: /opt/logisim-evolution/META-INF/MANIFEST.MF

View file

@ -1,6 +1,6 @@
- name: Set Matlab version and destination - name: Set Matlab version and destination
set_fact: set_fact:
target_version: "R2024a_Update_5" target_version: "R2025a_Update_1"
install_dir: "/mnt/ucilnice_d/install/matlab/" install_dir: "/mnt/ucilnice_d/install/matlab/"
license_path: "/mnt/ucilnice_d/install/matlab/network.lic" license_path: "/mnt/ucilnice_d/install/matlab/network.lic"
dest_dir: /opt/matlab dest_dir: /opt/matlab
@ -23,7 +23,7 @@
- name: Install Matlab - name: Install Matlab
command: command:
cmd: /tmp/matlab_iso/install -inputFile "/tmp/matlab_installer_input.txt" cmd: /tmp/matlab_iso/install -inputFile "/tmp/matlab_installer_input.txt"
# creates: "{{ dest_dir }}/VersionInfo.xml" creates: "{{ dest_dir }}/licenses/license_info.xml"
#- name: Unmount Matlab ISO #- name: Unmount Matlab ISO
# win_disk_image: # win_disk_image:
# image_path: "{{ installers }}\\matlab\\matlab-{{ target_version }}_windows.iso" # image_path: "{{ installers }}\\matlab\\matlab-{{ target_version }}_windows.iso"

View file

@ -2,7 +2,7 @@
set_fact: set_fact:
target_version: "R2025a_Update_1" target_version: "R2025a_Update_1"
license_path: \\ucilnicesmb.fri1.uni-lj.si\ucilnice_d\install\matlab\network.lic license_path: \\ucilnicesmb.fri1.uni-lj.si\ucilnice_d\install\matlab\network.lic
dest_dir: D:\matlab dest_dir: "{{ large_prog_dir }}\\matlab"
- name: Set ISO path - name: Set ISO path
set_fact: set_fact:
@ -17,21 +17,27 @@
- name: Prepare installer_input.txt - name: Prepare installer_input.txt
template: template:
src: installer_input.txt src: installer_input.txt
dest: d:\matlab_installer_input.txt dest: c:\matlab_installer_input.txt
- name: Install Matlab - name: Install Matlab
win_package: win_package:
path: "{{ disk_image.mount_paths[0] }}\\setup.exe" path: "{{ disk_image.mount_paths[0] }}\\setup.exe"
arguments: -inputFile "d:\\matlab_installer_input.txt" arguments: -inputFile "c:\\matlab_installer_input.txt"
- name: Unmount Matlab ISO - name: Unmount Matlab ISO
win_disk_image: win_disk_image:
image_path: "{{ iso_path }}" image_path: "{{ iso_path }}"
state: absent state: absent
ignore_errors: true
# TODO MATLAB throws license error -83 when run - name: Create licenses directory
- name: Install Matlab license win_file:
win_copy: dest: "{{ dest_dir }}\\licenses"
dest: "{{ dest_dir }}\\licenses\\network.lic" state: directory
src: "{{ installers }}\\matlab\\network.lic"
remote_src: yes # MATLAB will no longer be used with concurrent licenses - let them license their own!
#- name: Install Matlab license
# win_copy:
# dest: "{{ dest_dir }}\\licenses\\network.lic"
# src: "{{ installers }}\\matlab\\network.lic"
# remote_src: yes

View file

@ -13,7 +13,8 @@ agreeToLicense=yes
## Users must log in to their MathWorks Account when MATLAB starts. ## Users must log in to their MathWorks Account when MATLAB starts.
## ##
## NOTE: This flag is valid in silent installations only. ## NOTE: This flag is valid in silent installations only.
enableLNU=no # enableLNU=no
enableLNU=yes
improveMATLAB=no improveMATLAB=no

View file

@ -1,4 +1,11 @@
- name: Install maptplotlib - name: Install matplotlib
apt: apt:
name: matplotlib name:
state: latest - 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

@ -1,8 +1,104 @@
- name: Download mysql workbench - name: Create mysql workbench build directory
file:
path: /tmp/mysql-workbench
state: directory
- name: Download mysql workbench source
get_url: get_url:
url: https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb url: https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-8.0.43-src.tar.gz
dest: /tmp/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb dest: /tmp/mysql-workbench/mysql-workbench.tgz
http_agent: "Wget/1.21.3" http_agent: "Wget/1.21.3"
- name: Install mysql workbench register: mysql_download
- name: Install mysql workbench build dependencies
apt: apt:
deb: /tmp/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb package:
- build-essential
- cmake
- cmake-data
- autoconf
- automake
- pkg-config
- libtool
- libzip-dev
- libxml2-dev
- libsigc++-2.0-dev
- libglade2-dev
- libglu1-mesa-dev
- libgl1-mesa-dev
- mesa-common-dev
- libmysqlclient-dev
- libmysqlcppconn-dev
- uuid-dev
- libpixman-1-dev
- libpcre3-dev
- libpango1.0-dev
- libcairo2-dev
- python3-dev
- libboost-dev
- default-mysql-client
- libsqlite3-dev
- swig4.1
- libvsqlitepp-dev
- libgdal-dev
- libgtk-3-dev
- libgtkmm-3.0-dev
- libssl-dev
- libsecret-1-dev
- libproj-dev
- libssh-dev
- rapidjson-dev
- unixodbc-dev
- unixodbc
- name: Create /usr/local/share/java
file:
path: /usr/local/share/java
state: directory
- name: Download antlr jar
get_url:
url: https://www.antlr.org/download/antlr-4.13.2-complete.jar
dest: /usr/local/share/java/antlr-4.13.2-complete.jar
- name: Create antlr4 build dir
file:
path: /tmp/antlr4/build
state: directory
- name: Checkout antlr4 (cpp runtime)
git:
repo: https://github.com/antlr/antlr4/
dest: /tmp/antlr4/antlr4
- name: Build antlr4 cpp runtime
shell:
cmd: "cd /tmp/antlr4/build; cmake ../antlr4/runtime/Cpp; make; make install"
- name: Extract MySQL Workbench source
unarchive:
src: "{{ mysql_download.dest }}"
remote_src: true
dest: /tmp/mysql-workbench
- name: Create build dir
file:
path: /tmp/mysql-workbench/build
state: directory
- name: Build Mysql Workbench
shell:
cmd: "cd /tmp/mysql-workbench/build; cmake -DUSE_UNIXODBC=True -DODBC_LIBRARIES=-lodbc -DANTLR_JAR_PATH=/usr/local/share/java -DSWIG_EXECUTABLE=/usr/bin/swig4.1 -DSWIG_DIR=/usr/share/swig4.1 ../mysql-workbench-*-src; make; make install"
#- name: Download mysql workbench
# get_url:
# url: https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb
# dest: /tmp/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb
# http_agent: "Wget/1.21.3"
#- name: Install mysql workbench
# apt:
# deb: /tmp/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb

View file

@ -2,8 +2,22 @@
set_fact: set_fact:
target_version: "26" target_version: "26"
#- name: Install Netbeans from Chocolatey
# win_chocolatey:
# name: NetBeans
# state: upgrade
# https://downloads.apache.org/netbeans/netbeans/26/netbeans-26-bin.zip
- name: Download Netbeans
win_get_url:
url: "https://github.com/Friends-of-Apache-NetBeans/netbeans-installers/releases/download/v{{ target_version }}-build1/Apache-NetBeans-{{ target_version }}.exe"
dest: "c:\\Apache-NetBeans-{{ target_version }}.exe"
- name: Install Netbeans - name: Install Netbeans
win_package: win_package:
path: "https://dlcdn.apache.org/netbeans/netbeans-installers/{{ target_version }}/Apache-NetBeans-{{ target_version }}-bin-windows-x64.exe" path: "c:\\Apache-NetBeans-{{ target_version }}.exe"
arguments: --silent # path: "https://github.com/Friends-of-Apache-NetBeans/netbeans-installers/releases/download/v{{ target_version }}-build1/Apache-NetBeans-{{ target_version }}.exe"
creates_path: "%ProgramFiles%\\NetBeans-{{ target_version }}\\netbeans\\bin\\netbeans.exe" # path: "https://dlcdn.apache.org/netbeans/netbeans-installers/{{ target_version }}/Apache-NetBeans-{{ target_version }}-bin-windows-x64.exe"
arguments: "\"/DIR={{ ansible_env['ProgramFiles'] }}\\NetBeans-{{ target_version }}\" /SUPPRESSMSGBOXES /VERYSILENT /SP-"
creates_path: "%ProgramFiles%\\NetBeans-{{ target_version }}\\bin\\netbeans.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 networkx
apt:
name: python3-networkx
state: latest

View file

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

View file

@ -1,7 +1,7 @@
- name: Add NodeJS repo key - name: Add NodeJS repo key
apt_key: get_url:
url: https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key url: https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key
keyring: /etc/apt/keyrings/nodesource.gpg dest: /etc/apt/keyrings/nodesource.asc
#- name: Add NodeJS repo url #- name: Add NodeJS repo url
# apt_repository: # apt_repository:
@ -9,10 +9,5 @@
- name: Add NodeJS LTS repo url - name: Add NodeJS LTS repo url
apt_repository: apt_repository:
repo: "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" repo: "deb [signed-by=/etc/apt/keyrings/nodesource.asc] https://deb.nodesource.com/node_22.x nodistro main"
- name: Install NodeJS
apt:
name: nodejs
state: latest

View file

@ -2,6 +2,7 @@
win_chocolatey: win_chocolatey:
name: nodejs name: nodejs
- name: Install NodeJS-LTS # Install fails if multiple versions are installed
win_chocolatey: # - name: Install NodeJS-LTS
name: nodejs-lts # win_chocolatey:
# name: nodejs-lts

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

@ -1,7 +1,9 @@
# TODO: omnetpp na Windows sedaj zahteva WSL. Premisli, kaj storiti glede tega
- name: Set OMNet++ version - name: Set OMNet++ version
set_fact: set_fact:
target_version: "6.2.0" target_version: "6.2.0"
target_dir: "C:\\OMNeT++" target_dir: "{{large_prog_dir}}\\OMNeT++"
- name: Check OMNet++ install status - name: Check OMNet++ install status
win_stat: win_stat:
@ -12,18 +14,24 @@
block: block:
- name: Download OMNet++ - name: Download OMNet++
win_get_url: win_get_url:
url: "https://github.com/omnetpp/omnetpp/releases/download/omnetpp-{{ target_version }}/omnetpp-{{ target_version }}-windows-x86_64.zip" 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 register: download
- name: Unzip OMNet++ - name: Unzip OMNet++
win_unzip: win_unzip:
src: "{{ download.dest }}" src: "{{ download.dest }}"
dest: C:\ dest: "{{ large_prog_dir }}"
delete_archive: yes delete_archive: yes
- name: Move OMNet++ to final location - 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 - name: Create OMNet++ compile script
win_copy: win_copy:
@ -38,7 +46,7 @@
line: call "%HOME%\\tools\\win32.x86_64\\msys2_shell.cmd" -mingw64 -c "./configure && make -j4" & exit line: call "%HOME%\\tools\\win32.x86_64\\msys2_shell.cmd" -mingw64 -c "./configure && make -j4" & exit
- name: Compile OMNet++ - 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 - name: Copy OMNet++ shortcut
win_copy: 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,4 +1,16 @@
# 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 - name: Install PowerDesigner
win_package: win_shell: |
path: "{{ installers }}\\PowerDesigner 12.5\\cd1\\setup\\setup.exe" {{ installers }}\PowerDesigner_12.5\cd1\setup\setup.exe /s /f1"c:\powerdesigner_setup.iss" /f2"C:\powerdesigner_log.iss"
arguments: "/s /f1\"{{ installers }}\\PowerDesigner 12.5\\setup.iss\" /f2\"C:\\powerdesigner_log.iss\"" args:
executable: cmd
# path: "{{ installers }}\\PowerDesigner 12.5\\cd1\\setup\\setup.exe"
# arguments: "/hide_progress /hide_splash /hide_usd /s /f1\"{{ installers }}\\PowerDesigner 12.5\\setup.iss\" /f2\"C:\\powerdesigner_log.iss\""

View file

@ -3,37 +3,37 @@ Version=v7.00
File=Response File File=Response File
[File Transfer] [File Transfer]
OverwrittenReadOnly=NoToAll OverwrittenReadOnly=NoToAll
[{{ powerdesigner_key }}-DlgOrder] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-DlgOrder]
Dlg0={{ powerdesigner_key }}-SdWelcome-0 Dlg0={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0
Count=10 Count=10
Dlg1={{ powerdesigner_key }}-SybSelectInstallMode-0 Dlg1={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0
Dlg2={{ powerdesigner_key }}-SybFlexLM-0 Dlg2={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0
Dlg3={{ powerdesigner_key }}-SybSelectPackage-0 Dlg3={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0
Dlg4={{ powerdesigner_key }}-Sybase License-0 Dlg4={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0
Dlg5={{ powerdesigner_key }}-SdAskDestPath-0 Dlg5={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0
Dlg6={{ powerdesigner_key }}-SdComponentTree-0 Dlg6={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0
Dlg7={{ powerdesigner_key }}-Graphic Select Folder-0 Dlg7={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0
Dlg8={{ powerdesigner_key }}-SdStartCopy-0 Dlg8={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0
Dlg9={{ powerdesigner_key }}-SdFinish-0 Dlg9={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0
[{{ powerdesigner_key }}-SdWelcome-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0]
Result=1 Result=1
[{{ powerdesigner_key }}-SybSelectInstallMode-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0]
Mode=3 Mode=3
Result=1 Result=1
[{{ powerdesigner_key }}-SybFlexLM-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0]
LicenseServer=todo.fri1.uni-lj.si LicenseServer=todo.fri.uni-lj.si
PortNumber=27000 PortNumber=27000
Result=1 Result=1
[{{ powerdesigner_key }}-SybSelectPackage-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0]
Package=Studio Enterprise Package=Studio Enterprise
Result=1 Result=1
[{{ powerdesigner_key }}-Sybase License-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0]
Sybase_License=accept Sybase_License=accept
[{{ powerdesigner_key }}-SdAskDestPath-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0]
szDir=C:\Program Files (x86)\Sybase\PowerDesigner 12 szDir={{ large_prog_dir }}\PowerDesigner 12
Result=1 Result=1
[{{ powerdesigner_key }}-SdComponentTree-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0]
szDir=C:\Program Files (x86)\Sybase\PowerDesigner 12 szDir={{ large_prog_dir }}\PowerDesigner 12
CR\FRM-type=string CR\FRM-type=string
CR\FRM-count=2 CR\FRM-count=2
CR\FRM-0=CR\FRM\FRM_Xem CR\FRM-0=CR\FRM\FRM_Xem
@ -108,11 +108,6 @@ PDM-1=PDM\PDM_Examples
PDM-2=PDM\PDM_Report PDM-2=PDM\PDM_Report
PDM-3=PDM\PDM_Tools PDM-3=PDM\PDM_Tools
PDM-4=PDM\PDM_Addins 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-type=string
XSM-count=4 XSM-count=4
XSM-0=XSM\XSM_License XSM-0=XSM\XSM_License
@ -135,6 +130,19 @@ PDF-5=PDF\PDF_PDM
PDF-6=PDF\PDF_RQM PDF-6=PDF\PDF_RQM
PDF-7=PDF\PDF_XSM PDF-7=PDF\PDF_XSM
PDF-8=PDF\PDF_RPY 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-type=string
Component-count=10 Component-count=10
Component-0=CR Component-0=CR
@ -143,15 +151,15 @@ Component-2=CDM
Component-3=ILM Component-3=ILM
Component-4=OOM Component-4=OOM
Component-5=PDM Component-5=PDM
Component-6=RQM Component-6=XSM
Component-7=XSM Component-7=RPY
Component-8=RPY Component-8=PDF
Component-9=PDF Component-9=VIDEO
Result=1 Result=1
[{{ powerdesigner_key }}-Graphic Select Folder-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0]
szFolder=Sybase\PowerDesigner 12 szFolder=Sybase\PowerDesigner 12
Result=1 Result=1
[{{ powerdesigner_key }}-SdStartCopy-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0]
Keep_Settings=0 Keep_Settings=0
Result=1 Result=1
[Application] [Application]
@ -159,7 +167,7 @@ Name=Sybase PowerDesigner 12.5
Version=12.5.2169 Version=12.5.2169
Company=Sybase Company=Sybase
Lang=0009 Lang=0009
[{{ powerdesigner_key }}-SdFinish-0] [{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0]
Result=1 Result=1
bOpt1=0 bOpt1=0
bOpt2=0 bOpt2=0

View file

@ -1,7 +1,7 @@
- name: Set Processing version - name: Set Processing version
set_fact: set_fact:
target_version: 4.4.4 target_version: 4.4.6
target_build: 1304 target_build: 1306
- name: Check Processing install status - name: Check Processing install status
win_stat: win_stat:
@ -22,20 +22,21 @@
state: directory state: directory
- name: Download Processing - name: Download Processing
win_get_url: win_get_url:
dest: 'C:\Program Files\Processing\processing.zip' dest: 'C:\Program Files\processing.zip'
url: https://github.com/processing/processing4/releases/download/processing-{{ target_build }}-{{ target_version }}/processing-{{ target_version }}-windows-x64.zip url: https://github.com/processing/processing4/releases/download/processing-{{ target_build }}-{{ target_version }}/processing-{{ target_version }}-windows-x64-portable.zip
- name: Unzip Processing - name: Unzip Processing
win_unzip: win_unzip:
dest: 'C:\Program Files\Processing' src: 'C:\Program Files\processing.zip'
src: 'C:\Program Files\Processing\processing.zip' dest: 'C:\Program Files\'
- name: Install Processing creates: 'C:\Program Files\Processing\Processing.exe'
win_copy: #- name: Install Processing
dest: C:\Program Files\Processing\ # win_copy:
src: 'C:\Program Files\Processing\processing-{{ target_version }}\' # dest: C:\Program Files\Processing\
remote_src: yes # src: 'C:\Program Files\Processing\processing-{{ target_version }}\'
# remote_src: yes
- name: Disable telemetry - name: Disable telemetry
win_lineinfile: win_lineinfile:
path: C:\Program Files\Processing\lib\defaults.txt path: C:\Program Files\Processing\app\resources\lib\defaults.txt
regexp: 'update.check' regexp: 'update.check'
line: 'update.check = false' line: 'update.check = false'
- name: Create Processing shortcut - name: Create Processing shortcut
@ -44,8 +45,8 @@
dest: "C:\\Users\\Public\\Desktop\\Processing.lnk" dest: "C:\\Users\\Public\\Desktop\\Processing.lnk"
- name: Remove temporary files - name: Remove temporary files
win_file: win_file:
path: C:\Program Files\Processing\{{ item }} # path: C:\Program Files\Processing\{{ item }}
path: C:\Program Files\processing.zip
state: absent state: absent
loop: loop:
- processing.zip - processing.zip
- processing-{{ target_version }}

View file

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

View file

@ -5,6 +5,8 @@
- name: Install ipython - name: Install ipython
apt: apt:
name: python3-ipython name:
- python3-ipython
- ipython3
state: latest state: latest

View file

@ -15,7 +15,7 @@
- name: Clone QCADesigner-E repo - name: Clone QCADesigner-E repo
# #
ansible.builtin.git: ansible.builtin.git:
repo: https://github.com/FSillT/QCADesigner-E repo: https://github.com/polz113/QCADesigner-E
force: yes force: yes
dest: /opt/QCADesigner-E dest: /opt/QCADesigner-E
- name: Build QCADesigner-E - name: Build QCADesigner-E

View file

@ -1,13 +1,14 @@
- name: Add R repository #- name: Add R repository
block: # block:
- name: R repo - apt key # - name: R repo - apt key
ansible.builtin.get_url: # ansible.builtin.get_url:
url: https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc # url: https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc
dest: /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc # dest: /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
- name: R repo - url # - name: R repo - url
ansible.builtin.apt_repository: # ansible.builtin.apt_repository:
repo: "deb https://cloud.r-project.org/bin/linux/ubuntu {{ansible_distribution_release}}-cran40/" # repo: "deb https://cloud.r-project.org/bin/linux/ubuntu {{ansible_distribution_release}}-cran40/"
state: present # state: present
# ignore_errors: true
- name: Install R - name: Install R
ansible.builtin.apt: ansible.builtin.apt:
name: r-base name: r-base

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 - name: Set SiFive Studio install location
set_fact: 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 - 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 }}" 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: args:
@ -14,12 +14,12 @@
- name: Unzip SiFive Studio - name: Unzip SiFive Studio
win_unzip: win_unzip:
src: "{{ download_filedest }}" src: "{{ download_filedest }}"
dest: C:\SiFive\ dest: "{{ large_prog_dir }}\\SiFive\\"
creates: C:\SiFive\plugins creates: "{{ large_prog_dir }}\\SiFive\\plugins"
delete_archive: yes delete_archive: yes
- name: Create desktop shortcut - name: Create desktop shortcut
win_shortcut: win_shortcut:
description: "SiFive Freedom Studio" description: "SiFive Freedom Studio"
src: C:\SiFive\FreedomStudio.exe src: "{{ large_prog_dir }}\\SiFive\\FreedomStudio.exe"
dest: '%public%\Desktop\SiFive.lnk' dest: '%public%\Desktop\SiFive.lnk'

View file

@ -1,31 +1,34 @@
# TODO check install status # Deprecated - replace by mems-studio
- name: Do not install AlgoBuilder
debug:
msg: "Do not install AlgoBuilder on Windows - deprecated"
# TODO: Exe file is missing - Problem on ST site # TODO: Exe file is missing - Problem on ST site
- name: Check AlgoBuilder install status # - name: Check AlgoBuilder install status
win_stat: # win_stat:
path: C:\Program Files (x86)\Thonny\thonny.exe # path: C:\Program Files (x86)\Thonny\thonny.exe
register: file # register: file
- when: not file.stat.exists # - when: not file.stat.exists
block: # block:
- name: Download AlgoBuilder # - name: Download AlgoBuilder
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EdBQJN3I6fVFj7qgs6SjRp4BZ0QbWIV26NUlLv_4d9JsDQ?e=hA4Cbl&download=1" -O C:\AlgoBuilderSuite.exe # win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EdBQJN3I6fVFj7qgs6SjRp4BZ0QbWIV26NUlLv_4d9JsDQ?e=hA4Cbl&download=1" -O C:\AlgoBuilderSuite.exe
args: # args:
creates: C:\AlgoBuilderSuite.exe # creates: C:\AlgoBuilderSuite.exe
#win_get_url: # #win_get_url:
# follow_redirects: all # # follow_redirects: all
# http_agent: Wget/1.21.3 # # http_agent: Wget/1.21.3
# url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EdBQJN3I6fVFj7qgs6SjRp4BZ0QbWIV26NUlLv_4d9JsDQ?e=hA4Cbl?download=1 # # url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EdBQJN3I6fVFj7qgs6SjRp4BZ0QbWIV26NUlLv_4d9JsDQ?e=hA4Cbl?download=1
# dest: C:\AlgoBuilderSuite.exe # # dest: C:\AlgoBuilderSuite.exe
#register: download # #register: download
- name: Install AlgoBuilder # - name: Install AlgoBuilder
win_package: # win_package:
path: C:\AlgoBuilderSuite.exe # path: C:\AlgoBuilderSuite.exe
# path: "{{ download.dest }}" # # path: "{{ download.dest }}"
arguments: /Verysilent /AllUsers # arguments: /Verysilent /AllUsers
- name: Remove temporary files # - name: Remove temporary files
win_file: # win_file:
path: C:\AlgoBuilderSuite.exe # path: C:\AlgoBuilderSuite.exe
# path: "{{ download.dest }}" # # path: "{{ download.dest }}"
state: absent # state: absent

View file

@ -8,13 +8,14 @@
# register: download # register: download
- name: Set filename - name: Set filename
set_fact: set_fact:
dest_fname: /tmp/st-stm32cubeide_1.16.0_21983_20240628_1741_amd64.sh dest_fname: /tmp/st-stm32cubeide_1.19.0_25607_20250703_0907_amd64.sh
- name: Download stm32 - name: Download stm32
command: command:
cmd: wget 'https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EUrIkoWbod5OilNHLnReBvYBMK7mlwI-R1Qeqhb-ux7hjg?e=HGloHF&download=1' -O {{ dest_fname }} # cmd: wget 'https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/ERLZDFSgbO1Hm6TT9CLhyUIBZS-4anic7RWtvQliqN-thA?e=KZq4VJ' -O {{ dest_fname }}
cmd: wget {{ installers }}\RAVINOR\2025\st-stm32cubeide_1.19.0_25607_20250703_0907_amd64.sh -O {{ dest_fname }}
creates: "{{ dest_fname }} " creates: "{{ dest_fname }} "
# url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EUrIkoWbod5OilNHLnReBvYBMK7mlwI-R1Qeqhb-ux7hjg?e=HGloHF?download=1 # url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/ERLZDFSgbO1Hm6TT9CLhyUIBZS-4anic7RWtvQliqN-thA?e=KZq4VJ
- name: Change script permissions - name: Change script permissions
file: file:

View file

@ -7,18 +7,18 @@
block: block:
- name: Set download filenames - name: Set download filenames
set_fact: set_fact:
cubemx_download_file: C:\CubeMX.exe # cubemx_download_file: C:\CubeMX.exe not needed separately
cubeprogrammer_download_file: C:\CubeProgrammer.exe cubeprogrammer_download_file: C:\CubeProgrammer.exe
cubemonitor_download_file: C:\CubeMonitor.exe cubemonitor_download_file: C:\CubeMonitor.exe
cufinder_download_file: C:\CUFinder.exe cufinder_download_file: C:\CUFinder.exe
cubeide_download_file: C:\st-stm32cubeide_1.16.0_21983_20240628_1741_x86_64.exe cubeide_download_file: C:\st-stm32cubeide_1.19.0_25607_20250703_0907_x86_64.exe
- name: Download CubeMX # - name: Download CubeMX
# # win_get_url: # # # win_get_url:
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EZhqHxJoAfdEjdlMu0uGWGcBOqrT0vTVv2_nhynWZ3fOwQ?e=ilAlzP&download=1" -O "{{ cubemx_download_file }}" # win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EZhqHxJoAfdEjdlMu0uGWGcBOqrT0vTVv2_nhynWZ3fOwQ?e=ilAlzP&download=1" -O "{{ cubemx_download_file }}"
# #dest: C:\CubeMX.exe # # #dest: C:\CubeMX.exe
# #register: cubemx_download # # #register: cubemx_download
args: # args:
creates: "{{ cubemx_download_file }}" # creates: "{{ cubemx_download_file }}"
#- name: Install CubeMX #- name: Install CubeMX
# win_package: # win_package:
@ -26,7 +26,8 @@
# arguments: /S # arguments: /S
- name: Download CubeProgrammer - name: Download CubeProgrammer
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EXHsKDjM6hVAuEGwEWcMyBEB6bHd3HuOP38D7Wjt41vjTw?e=7jatnu&download=1" -O "{{ cubeprogrammer_download_file }}" win_command: wget "{{ installers }}\RAVINOR\2025\SetupSTM32CubeProgrammer_win64.exe" -O "{{ cubeprogrammer_download_file }}"
#win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EXHsKDjM6hVAuEGwEWcMyBEBgx7D9i_M3QAkhpe9RR9zPQ?e=VcUvvu" -O "{{ cubeprogrammer_download_file }}"
#win_get_url: #win_get_url:
# dest: C:\CubeProgrammer.exe # dest: C:\CubeProgrammer.exe
#register: cubeprogrammer_download #register: cubeprogrammer_download
@ -39,10 +40,11 @@
arguments: /S arguments: /S
- name: Download CubeMonitor - name: Download CubeMonitor
# TODO 2024: only zip distributions exists in zip file # TODO 2025: only zip distributions exists in zip file
# TODO 2024: URL: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/ERUUr7knYFNNuv5rViOb-PgB596EvC3ev4P_Aa_MjRL57Q?e=tZssk4 # TODO 2025: URL: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EcU8MQwONYZKuk22puks-IgBd1qLM94DH3AA_CEclIgTZg?e=jRcA3v
# TODO 2024: Have extracted setup exe - not sure if this is enough! # TODO 2025: Have extracted setup exe - not sure if this is enough!
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EQnm_b359Q5IpmfCUuDG-PABH10q94ixaLx4_CMrYKoNtQ?e=rKp3cV&download=1" -O "{{ cubemonitor_download_file }}" # win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EbVvZi3q7QRNqwocCSgMvGgB-eYM2mtb-IidD1UTaMgtbw?e=QDxd29" -O "{{ cubemonitor_download_file }}"
win_command: wget "{{ installers }}\RAVINOR\2025\setupSTM32CubeMonitor_1.10.0.exe" -O "{{ cubemonitor_download_file }}"
#win_get_url: #win_get_url:
# dest: C:\CubeMonitor.exe # dest: C:\CubeMonitor.exe
#register: cubemonitor_download #register: cubemonitor_download
@ -54,23 +56,24 @@
path: "{{ cubemonitor_download_file }}" path: "{{ cubemonitor_download_file }}"
arguments: /S arguments: /S
- name: Download STM CUFinder # 2025: CUFinder not needed anymore
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EfesbSW7EftDoSjtt-nr_eYBH_EBzXnysW0Lk1wnNzx2Mw?e=HSSmDz&download=1" -O "{{ cufinder_download_file }}" # - name: Download STM CUFinder
# #win_get_url: # win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EfesbSW7EftDoSjtt-nr_eYBH_EBzXnysW0Lk1wnNzx2Mw?e=HSSmDz&download=1" -O "{{ cufinder_download_file }}"
# # dest: C:\CUFinder.exe # # #win_get_url:
# #register: cubecufinder_download # # # dest: C:\CUFinder.exe
args: # # #register: cubecufinder_download
creates: "{{ cufinder_download_file }}" # args:
# creates: "{{ cufinder_download_file }}"
- name: Install STM CUFinder
win_package:
path: "{{ cubecufinder_download_file }}"
arguments: /S
# - name: Install STM CUFinder
# win_package:
# path: "{{ cubecufinder_download_file }}"
# arguments: /S
- name: Download CubeIDE - name: Download CubeIDE
# win_get_url: # win_get_url:
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/ERpqeASbQ2hDrL9ANNWJf5QBJNhHieXoqaNtduppk42qwg?e=zI8rjI&download=1" -O "{{ cubeide_download_file }}" #win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EZLOLK_5IxpPvnI_rYH6hSMBuQyH3EEq9bqZr9X_n6cgzA?e=P218RC" -O "{{ cubeide_download_file }}"
#dest: C:\st-stm32cubeide_1.16.0_21983_20240628_1741_x86_64.exe win_command: wget "{{ installers }}\RAVINOR\2025\st-stm32cubeide_1.19.0_25607_20250703_0907_x86_64.exe" -O "{{ cubeide_download_file }}"
#dest: C:\st-stm32cubeide_1.19.0_25607_20250703_0907_x86_64.exe
#register: cubeide_download #register: cubeide_download
args: args:
creates: "{{ cubeide_download_file }}" creates: "{{ cubeide_download_file }}"
@ -83,12 +86,13 @@
- name: Set CubeIDE default workspace - name: Set CubeIDE default workspace
win_lineinfile: win_lineinfile:
path: C:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE\stm32cubeide.ini path: C:\ST\STM32CubeIDE_1.19.0\STM32CubeIDE\stm32cubeide.ini
regexp: "osgi.instance.area.default" regexp: "osgi.instance.area.default"
line: "-Dosgi.instance.area.default=D:/RAVINOR/CubeIDE_Workspace" line: "-Dosgi.instance.area.default=D:/RAVINOR/CubeIDE_Workspace"
# Replace -installIU... with -list to get available packages. # 2025: QEMU not needed anymore
- name: Install QEMU # # Replace -installIU... with -list to get available packages.
win_command: stm32cubeidec.exe -application org.eclipse.equinox.p2.director -nosplash -repository https://download.eclipse.org/embed-cdt/updates/v6/ -installIU org.eclipse.embedcdt.debug.gdbjtag.qemu.feature.group # - name: Install QEMU
args: # win_command: stm32cubeidec.exe -application org.eclipse.equinox.p2.director -nosplash -repository https://download.eclipse.org/embed-cdt/updates/v6/ -installIU org.eclipse.embedcdt.debug.gdbjtag.qemu.feature.group
chdir: C:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE # args:
# chdir: C:\ST\STM32CubeIDE_1.19.0\STM32CubeIDE

View file

@ -5,19 +5,17 @@
# arguments: /S /AllUsers # arguments: /S /AllUsers
# creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe" # creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe"
# 2024: update: Full directory structure ready zip for Windows only on this URL: # 2025: update: Full directory structure ready zip for Windows only on this URL:
# https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EYTFhlsJOFtFk9xsaViP0eYBtILVS24ZF_dlkgodu_L9Nw?e=geavvJ # https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EYTFhlsJOFtFk9xsaViP0eYBtILVS24ZF_dlkgodu_L9Nw?e=geavvJ
- name: Create STM32Duino directory - name: Create STM32Duino directory
win_file: win_file:
path: "D:\\RAVINOR\\STM32Duino" path: "{{large_prog_dir}}\\RAVINOR\\STM32Duino"
state: directory state: directory
- name: Install Logisim - name: Install preinstalled STM32Duino & Arduino environment
win_get_url: win_unzip:
url: "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EYTFhlsJOFtFk9xsaViP0eYBtILVS24ZF_dlkgodu_L9Nw?e=geavvJ" src: {{ installers }}\RAVINOR\2025\arduino-1.8.19.zip
dest: "D:\\RAVINOR\\STM32Duino" dest: "{{large_prog_dir}}\\RAVINOR\\STM32Duino"
# TODO Don't know if unzipping is required?
# TODO check if anything else is needed (esp8266com)? # TODO check if anything else is needed (esp8266com)?

View file

@ -0,0 +1,5 @@
- 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,3 @@
- name: Do not install mems-studio
debug:
msg: "Do not install mems-studio on Linux"

View file

@ -0,0 +1,32 @@
# TODO
- name: Check MEMS-Studio install status
win_stat:
path: C:\Program Files (x86)\STMicroelectronics\Unicleo-GUI\Unicleo-GUI.exe
register: file
- when: not file.stat.exists
block:
- name: Download MEMS-Studio
#win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EXgZSDD5LgtMrikaKszPliwB1vXrwUxea3eYYObT3zXBaQ?e=eNJyLA" -O C:\mems-studio-2.1.2.exe
win_command: copy "{{ installers }}\RAVINOR\2025\mems-studio-2.1.2.exe" -O { large_prog_dir }\mems-studio-2.1.2.exe
args:
creates: {large_prog_dir}\mems-studio-2.1.2.exe
#win_get_url:
# follow_redirects: all
# http_agent: Wget/1.21.3
# url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EQG4vStF7ApBsN2TDm5AjGQBiU0iFbZZiz91UqGeHKX9FA?e=QOQky2?download=1
# dest: C:\Unicleo-GUI_Setup.exe
#register: download
- name: Install MEMS-Studio
win_package:
path: {large_prog_dir}\mems-studio-2.1.2.exe
# path: "{{ download.dest }}"
arguments: /Verysilent /AllUsers
- name: Remove temporary files
win_file:
path: {large_prog_dir}\mems-studio-2.1.2.exe
# path: "{{ download.dest }}"
state: absent

View file

@ -1,31 +1,35 @@
# TODO check install status # Deprecated - replace by mems-studio
- name: Check UnicleoGUI install status - name: Do not install UnicleoGUI
win_stat: debug:
path: C:\Program Files (x86)\STMicroelectronics\Unicleo-GUI\Unicleo-GUI.exe msg: "Do not install UnicleoGUI on Windows - deprecated"
register: file # # TODO check install status
- when: not file.stat.exists # - name: Check UnicleoGUI install status
block: # win_stat:
- name: Download UnicleoGUI # path: C:\Program Files (x86)\STMicroelectronics\Unicleo-GUI\Unicleo-GUI.exe
win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EQG4vStF7ApBsN2TDm5AjGQBiU0iFbZZiz91UqGeHKX9FA?e=QOQky2&download=1" -O C:\Unicleo-GUI_Setup.exe # register: file
args: # - when: not file.stat.exists
creates: C:\Unicleo-GUI_Setup.exe # block:
#win_get_url: # - name: Download UnicleoGUI
# follow_redirects: all # win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EQG4vStF7ApBsN2TDm5AjGQBiU0iFbZZiz91UqGeHKX9FA?e=QOQky2&download=1" -O C:\Unicleo-GUI_Setup.exe
# http_agent: Wget/1.21.3 # args:
# url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EQG4vStF7ApBsN2TDm5AjGQBiU0iFbZZiz91UqGeHKX9FA?e=QOQky2?download=1 # creates: C:\Unicleo-GUI_Setup.exe
# dest: C:\Unicleo-GUI_Setup.exe # #win_get_url:
#register: download # # follow_redirects: all
# # http_agent: Wget/1.21.3
# # url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EQG4vStF7ApBsN2TDm5AjGQBiU0iFbZZiz91UqGeHKX9FA?e=QOQky2?download=1
# # dest: C:\Unicleo-GUI_Setup.exe
# #register: download
- name: Install UnicleoGUI # - name: Install UnicleoGUI
win_package: # win_package:
path: C:\Unicleo-GUI_Setup.exe # path: C:\Unicleo-GUI_Setup.exe
# path: "{{ download.dest }}" # # path: "{{ download.dest }}"
arguments: /Verysilent /AllUsers # arguments: /Verysilent /AllUsers
- name: Remove temporary files # - name: Remove temporary files
win_file: # win_file:
path: C:\Unicleo-GUI_Setup.exe # path: C:\Unicleo-GUI_Setup.exe
# path: "{{ download.dest }}" # # path: "{{ download.dest }}"
state: absent # state: absent

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 streamlit
pip:
executable: pipx
name: streamlit

View file

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

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