Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

119 changed files with 348 additions and 1851 deletions

View file

@ -1,39 +1,8 @@
# 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
or, for Apple computers: ansible-playbook --user <AD admin> --ask-pass \
ansible-playbook --user <local admin> -k -K -i inventory.yml macsetup.py --become-user=<local admin>
--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: classroom - hosts: ucilnice-prototip
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,8 +12,7 @@
- vars/credentials.yml - vars/credentials.yml
- vars/software_keys.yml - vars/software_keys.yml
roles: roles:
# - nodejs # - orange
# - qcadesigner-e
- all_classes - all_classes
# - fri_base # - fri_base
# - powerdesigner # - powerdesigner

View file

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

View file

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

View file

@ -1,8 +1,5 @@
# Digitalno načrtovanje # Digitalno načrtovanje
# ratko.pilipovic@fri.uni-lj.si # Nejc.Ilc@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,11 +1,8 @@
# 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

@ -1,7 +0,0 @@
# 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 - role: jupyter.yml
- role: openssl - role: openssl.yml

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, ratko.pilipovic@fri.uni-lj.si # 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
# 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

View file

@ -1,9 +0,0 @@
# 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,4 +6,3 @@ dependencies:
- role: gedit - role: gedit
- role: mono - role: mono
- role: vscode - role: vscode
- role: notepad++

View file

@ -1,18 +0,0 @@
# 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,7 +10,6 @@ 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

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

View file

@ -2,14 +2,13 @@
# 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: stm32mems-studio # replaces algobuilder and unicleogui - role: stm32algobuilder #(ni še exe. Datoteke - ne dobim iz ST portala)
# - role: stm32algobuilder #(ni še exe. Datoteke - ne dobim iz ST portala) - role: stm32unicleogui
# - role: stm32unicleogui
#TODO Writable d:\RAVINOR directory #TODO Writable d:\RAVINOR directory

View file

@ -1,37 +0,0 @@
<?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,39 +1,25 @@
- name: Install required packages - name: Enable create homedir on login
apt: command: pam-auth-update --enable mkhomedir
name: become: true
- 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}} {{domain_name}} command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} FRI1.UNI-LJ.SI
responses: responses:
(?i)Password: "{{ad_join_password}}" (?i)Password: "{{ad_join_password}}"
ignore_errors: yes ignore_errors: yes
@ -46,20 +32,3 @@
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,22 +1,18 @@
- 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
@ -28,30 +24,25 @@
- 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: "{{ad_join_user}}" domain_admin_user: "{{adjoin_user}}"
domain_admin_password: "{{ad_join_password}}" domain_admin_password: "{{adjoin_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,4 +29,3 @@ 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,7 +2,6 @@ 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
@ -12,7 +11,6 @@ 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
@ -26,22 +24,17 @@ 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: PB-63707
- role: PB2-63713 - role: PB2-63713
- role: PB-63707
- role: PJC-63769 - role: PJC-63769
- role: PPJ-63220 - role: PPJ-63220
- role: PS-63261 - role: PS-63261
@ -55,7 +48,6 @@ 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

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -2,8 +2,9 @@ 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;36.0.0 - build-tools;35.0.0
- cmake;4.0.3 - cmake;3.22.1
#- cmake;latest
- cmdline-tools;latest - cmdline-tools;latest
- emulator - emulator
- extras;android;m2repository - extras;android;m2repository
@ -21,15 +22,15 @@ AndroidSDK_packages:
# - patcher;v4 # - patcher;v4
- platform-tools - platform-tools
- platforms;android-34 - platforms;android-34
- platforms;android-36 - platforms;android-35
- platforms;android-32 - platforms;android-32
# - platforms;android-UpsideDownCakePrivacySandbox - platforms;android-UpsideDownCakePrivacySandbox
- skiaparser;3 - skiaparser;3
- sources;android-36 - sources;android-35
- sources;android-34 - sources;android-34
- system-images;android-36;google_apis;x86_64 - system-images;android-35;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-36;google_apis_playstore;x86_64 - system-images;android-35;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,90 +1,63 @@
- name: Set Android Studio version - name: Set Android Studio version
set_fact: set_fact:
studio_path: "{{ large_prog_dir }}\\android-studio" sdk_path: C:\android-sdk
studio_version: "2025.1.2.13" studio_version: "2025.1.2.11"
tools_version: "13114758_latest" tools_version: "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: "{{ tools_path }}\\bin\\sdkmanager.bat" path: "{{ sdk_path }}\\cmdline-tools\\cmdline-tools\\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: "{{ studio_path }}" dest: C:\
- name: Extract Android Studio tools - name: Extract Android Studio tools
win_unzip: win_unzip:
# src: "{{ large_prog_dir }}\\platform-tools-{{ tools_version }}-windows.zip" src: "C:\\commandlinetools-win-{{ tools_version }}.zip"
src: "{{ studio_path}}\\commandlinetools-win-{{ tools_version }}.zip" dest: "{{ sdk_path }}\\cmdline-tools"
dest: "{{ studio_path }}\\cmdline-tools\\"
delete_archive: yes 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 - name: Accept Android SDK licenses
win_file: win_shell: sh -c "yes | /c/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager.bat --licenses"
path: "{{ large_prog_dir }}\\.android"
state: directory
- name: Set Android Studio environment variables
win_environment:
level: machine
variables:
ANDROID_HOME: "{{ studio_path }}"
ANDROID_SDK_ROOT: "{{ studio_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"
- name: Include Android SDK packages - name: Include Android SDK packages
include_vars: androidsdk_packages.yml include_vars: androidsdk_packages.yml
- name: Install Android SDK packages - name: Install Android SDK
win_shell: | win_shell: |
{{ tools_path }}\bin\sdkmanager.bat --install "{{ item }}" {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "{{ item }}"
loop: "{{ AndroidSDK_packages }}" loop: "{{ AndroidSDK_packages }}"
# {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "{{ AndroidSDK_packages | join(' ') }}" # {{ 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" # {{ 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 - name: Install Android Studio
# win_package: win_package:
# path: "https://redirector.gvt1.com/edgedl/android/studio/install/{{ studio_version }}/android-studio-{{ studio_version }}-windows.exe" path: "https://redirector.gvt1.com/edgedl/android/studio/install/{{ studio_version }}/android-studio-{{ studio_version }}-windows.exe"
# arguments: /S /AllUsers arguments: /S /AllUsers
# expected_return_code: [0, 1223, 3010] expected_return_code: [0, 1223, 3010]
# creates_path: "%ProgramFiles%\\Android\\Android Studio\\bin\\studio64.exe" 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: Check HAXM install status #- name: Check HAXM install status
# win_stat: # win_stat:
# path: "%ProgramFiles%\\Intel\\HAXM" # path: "%ProgramFiles%\\Intel\\HAXM"

View file

@ -8,9 +8,8 @@
- 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://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
# path: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.zip arguments: /S /AllUsers
# arguments: /S /AllUsers
# creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe" # creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe"

View file

@ -1,13 +1,9 @@
- name: Add Chromium not-a-snap repository - name: Add Chromium not-a-snap repository
apt: apt_repository:
deb: https://launchpad.net/~xtradeb/+archive/ubuntu/apps/+files/xtradeb-apt-source_0.4_all.deb repo: ppa:xtradeb/apps
state: present state: present
update_cache: True
#apt_repository: validate_certs: False
# 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

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -2,5 +2,3 @@
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

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

@ -1,2 +0,0 @@
- 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=D:/Documents/eclipse-workspace" line: "-Dosgi.instance.area.default=H:/Documents/eclipse-workspace"

View file

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -1,26 +0,0 @@
- 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,21 +1,5 @@
- 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
@ -24,6 +8,12 @@
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

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

@ -1,7 +0,0 @@
- name: Install flask
apt:
name:
- python3-flask
- python-flask-doc
state: latest

View file

@ -1,4 +0,0 @@
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,9 +27,8 @@
- wine32:i386 - wine32:i386
- wine-binfmt - wine-binfmt
- dosbox - dosbox
- snapper - webext-ublock-origin-chromium
# - webext-ublock-origin-chromium - webext-ublock-origin-firefox
# - webext-ublock-origin-firefox
- nethack-console - nethack-console
- zsh - zsh
- tmux - tmux
@ -50,8 +49,6 @@
- neovim-qt - neovim-qt
- binwalk - binwalk
- iotop - iotop
- evince
- okular
- htop - htop
- jdupes - jdupes
state: latest state: latest
@ -135,8 +132,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:
@ -147,18 +144,3 @@
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,34 +1,18 @@
- 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
@ -36,15 +20,5 @@
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,23 +1,9 @@
- name: Add GNS3 repository - name: Add GNS3 repository
block: apt_repository:
- name: add GNS3 apt key repo: ppa:gns3/ppa
ansible.builtin.get_url: state: present
url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xb83aaabffbd82d21b543c8ea86c22c2ec6a24d7f update_cache: True
dest: /etc/apt/keyrings/gns3-ppa.asc validate_certs: False
- 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,20 +1,10 @@
- name: Add Inkscape repository - name: Add Inkscape repository
block: apt_repository:
- name: add Inkscape trunk apt key repo: ppa:inkscape.dev/stable
ansible.builtin.get_url: state: present
url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1F46021FF9A0C56504CE42CD06E315A37AAEF27A update_cache: True
dest: /etc/apt/keyrings/inkscape-trunk-ppa.asc validate_certs: False
- 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-trunk name: inkscape
state: latest state: latest

View file

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -1,11 +1,6 @@
- name: Install latest OpenJDK (25) - name: Install OpenJDK 21
apt: apt:
name: openjdk-25-jdk name: openjdk-21-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
@ -36,7 +31,11 @@
- libc6-x32 - libc6-x32
state: latest state: latest
- name: Install Oracle JDK 24 - name: Install Oracle JDK 22
apt: apt:
deb: "https://download.oracle.com/java/24/latest/jdk-24_linux-x64_bin.deb" deb: "https://download.oracle.com/java/22/latest/jdk-22_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/24/latest/jdk-24_windows-x64_bin.msi path: https://download.oracle.com/java/22/latest/jdk-22_windows-x64_bin.msi
arguments: INSTALLLEVEL=3 arguments: INSTALLLEVEL=3
- name: Find Java version - name: Find Java version
@ -28,13 +28,6 @@
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,13 +11,3 @@
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: "R2025a_Update_1" target_version: "R2024a_Update_5"
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 }}/licenses/license_info.xml" # creates: "{{ dest_dir }}/VersionInfo.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: "{{ large_prog_dir }}\\matlab" dest_dir: D:\matlab
- name: Set ISO path - name: Set ISO path
set_fact: set_fact:
@ -17,27 +17,21 @@
- name: Prepare installer_input.txt - name: Prepare installer_input.txt
template: template:
src: installer_input.txt src: installer_input.txt
dest: c:\matlab_installer_input.txt dest: d:\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 "c:\\matlab_installer_input.txt" arguments: -inputFile "d:\\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
- name: Create licenses directory # TODO MATLAB throws license error -83 when run
win_file: - name: Install Matlab license
dest: "{{ dest_dir }}\\licenses" win_copy:
state: directory dest: "{{ dest_dir }}\\licenses\\network.lic"
src: "{{ installers }}\\matlab\\network.lic"
# MATLAB will no longer be used with concurrent licenses - let them license their own! remote_src: yes
#- name: Install Matlab license
# win_copy:
# dest: "{{ dest_dir }}\\licenses\\network.lic"
# src: "{{ installers }}\\matlab\\network.lic"
# remote_src: yes

View file

@ -13,8 +13,7 @@ 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,11 +1,4 @@
- name: Install matplotlib - name: Install maptplotlib
apt: apt:
name: name: matplotlib
- python3-matplotlib state: latest
- python3-matplotlib-inline
- python3-matplotlib-venn
- python3-mpl-animators
- python3-mpl-scatter-density
- python3-mplcursors
- python3-mplexporter
state: latest

View file

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -1,104 +1,8 @@
- name: Create mysql workbench build directory - name: Download mysql workbench
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.43-src.tar.gz url: https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb
dest: /tmp/mysql-workbench/mysql-workbench.tgz dest: /tmp/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb
http_agent: "Wget/1.21.3" http_agent: "Wget/1.21.3"
register: mysql_download - name: Install mysql workbench
- name: Install mysql workbench build dependencies
apt: apt:
package: deb: /tmp/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb
- 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,22 +2,8 @@
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: "c:\\Apache-NetBeans-{{ target_version }}.exe" path: "https://dlcdn.apache.org/netbeans/netbeans-installers/{{ target_version }}/Apache-NetBeans-{{ target_version }}-bin-windows-x64.exe"
# path: "https://github.com/Friends-of-Apache-NetBeans/netbeans-installers/releases/download/v{{ target_version }}-build1/Apache-NetBeans-{{ target_version }}.exe" arguments: --silent
# path: "https://dlcdn.apache.org/netbeans/netbeans-installers/{{ target_version }}/Apache-NetBeans-{{ target_version }}-bin-windows-x64.exe" creates_path: "%ProgramFiles%\\NetBeans-{{ target_version }}\\netbeans\\bin\\netbeans.exe"
arguments: "\"/DIR={{ ansible_env['ProgramFiles'] }}\\NetBeans-{{ target_version }}\" /SUPPRESSMSGBOXES /VERYSILENT /SP-"
creates_path: "%ProgramFiles%\\NetBeans-{{ target_version }}\\bin\\netbeans.exe"

View file

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -1,9 +1,7 @@
# 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: "{{large_prog_dir}}\\OMNeT++" target_dir: "C:\\OMNeT++"
- name: Check OMNet++ install status - name: Check OMNet++ install status
win_stat: win_stat:
@ -14,24 +12,18 @@
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.7z" url: "https://github.com/omnetpp/omnetpp/releases/download/omnetpp-{{ target_version }}/omnetpp-{{ target_version }}-windows-x86_64.zip"
dest: "{{ large_prog_dir }}" dest: C:\
register: download register: download
- name: Unzip OMNet++ - name: Unzip OMNet++
win_unzip: win_unzip:
src: "{{ download.dest }}" src: "{{ download.dest }}"
dest: "{{ large_prog_dir }}" dest: C:\
delete_archive: yes delete_archive: yes
- name: Move OMNet++ to final location - name: Move OMNet++ to final location
ansible.windows.win_powershell: win_command: cmd.exe /c move "C:\omnetpp-{{ target_version }}" "{{ target_dir }}"
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:
@ -46,7 +38,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

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -1,16 +1,4 @@
# 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_shell: | win_package:
{{ installers }}\PowerDesigner_12.5\cd1\setup\setup.exe /s /f1"c:\powerdesigner_setup.iss" /f2"C:\powerdesigner_log.iss" path: "{{ installers }}\\PowerDesigner 12.5\\cd1\\setup\\setup.exe"
args: arguments: "/s /f1\"{{ installers }}\\PowerDesigner 12.5\\setup.iss\" /f2\"C:\\powerdesigner_log.iss\""
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
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-DlgOrder] [{{ powerdesigner_key }}-DlgOrder]
Dlg0={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0 Dlg0={{ powerdesigner_key }}-SdWelcome-0
Count=10 Count=10
Dlg1={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0 Dlg1={{ powerdesigner_key }}-SybSelectInstallMode-0
Dlg2={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0 Dlg2={{ powerdesigner_key }}-SybFlexLM-0
Dlg3={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0 Dlg3={{ powerdesigner_key }}-SybSelectPackage-0
Dlg4={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0 Dlg4={{ powerdesigner_key }}-Sybase License-0
Dlg5={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0 Dlg5={{ powerdesigner_key }}-SdAskDestPath-0
Dlg6={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0 Dlg6={{ powerdesigner_key }}-SdComponentTree-0
Dlg7={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0 Dlg7={{ powerdesigner_key }}-Graphic Select Folder-0
Dlg8={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0 Dlg8={{ powerdesigner_key }}-SdStartCopy-0
Dlg9={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0 Dlg9={{ powerdesigner_key }}-SdFinish-0
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0] [{{ powerdesigner_key }}-SdWelcome-0]
Result=1 Result=1
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0] [{{ powerdesigner_key }}-SybSelectInstallMode-0]
Mode=3 Mode=3
Result=1 Result=1
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0] [{{ powerdesigner_key }}-SybFlexLM-0]
LicenseServer=todo.fri.uni-lj.si LicenseServer=todo.fri1.uni-lj.si
PortNumber=27000 PortNumber=27000
Result=1 Result=1
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0] [{{ powerdesigner_key }}-SybSelectPackage-0]
Package=Studio Enterprise Package=Studio Enterprise
Result=1 Result=1
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0] [{{ powerdesigner_key }}-Sybase License-0]
Sybase_License=accept Sybase_License=accept
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0] [{{ powerdesigner_key }}-SdAskDestPath-0]
szDir={{ large_prog_dir }}\PowerDesigner 12 szDir=C:\Program Files (x86)\Sybase\PowerDesigner 12
Result=1 Result=1
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0] [{{ powerdesigner_key }}-SdComponentTree-0]
szDir={{ large_prog_dir }}\PowerDesigner 12 szDir=C:\Program Files (x86)\Sybase\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,6 +108,11 @@ 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
@ -130,19 +135,6 @@ 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
@ -151,15 +143,15 @@ Component-2=CDM
Component-3=ILM Component-3=ILM
Component-4=OOM Component-4=OOM
Component-5=PDM Component-5=PDM
Component-6=XSM Component-6=RQM
Component-7=RPY Component-7=XSM
Component-8=PDF Component-8=RPY
Component-9=VIDEO Component-9=PDF
Result=1 Result=1
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0] [{{ powerdesigner_key }}-Graphic Select Folder-0]
szFolder=Sybase\PowerDesigner 12 szFolder=Sybase\PowerDesigner 12
Result=1 Result=1
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0] [{{ powerdesigner_key }}-SdStartCopy-0]
Keep_Settings=0 Keep_Settings=0
Result=1 Result=1
[Application] [Application]
@ -167,7 +159,7 @@ Name=Sybase PowerDesigner 12.5
Version=12.5.2169 Version=12.5.2169
Company=Sybase Company=Sybase
Lang=0009 Lang=0009
[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0] [{{ powerdesigner_key }}-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.6 target_version: 4.4.4
target_build: 1306 target_build: 1304
- name: Check Processing install status - name: Check Processing install status
win_stat: win_stat:
@ -22,21 +22,20 @@
state: directory state: directory
- name: Download Processing - name: Download Processing
win_get_url: win_get_url:
dest: 'C:\Program Files\processing.zip' dest: 'C:\Program Files\Processing\processing.zip'
url: https://github.com/processing/processing4/releases/download/processing-{{ target_build }}-{{ target_version }}/processing-{{ target_version }}-windows-x64-portable.zip url: https://github.com/processing/processing4/releases/download/processing-{{ target_build }}-{{ target_version }}/processing-{{ target_version }}-windows-x64.zip
- name: Unzip Processing - name: Unzip Processing
win_unzip: win_unzip:
src: 'C:\Program Files\processing.zip' dest: 'C:\Program Files\Processing'
dest: 'C:\Program Files\' src: 'C:\Program Files\Processing\processing.zip'
creates: 'C:\Program Files\Processing\Processing.exe' - name: Install Processing
#- name: Install Processing win_copy:
# win_copy: dest: C:\Program Files\Processing\
# dest: C:\Program Files\Processing\ src: 'C:\Program Files\Processing\processing-{{ target_version }}\'
# src: 'C:\Program Files\Processing\processing-{{ target_version }}\' remote_src: yes
# remote_src: yes
- name: Disable telemetry - name: Disable telemetry
win_lineinfile: win_lineinfile:
path: C:\Program Files\Processing\app\resources\lib\defaults.txt path: C:\Program Files\Processing\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
@ -45,8 +44,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 {{large_prog_dir}}\something # TODO set default project directory to H:\something

View file

@ -5,8 +5,6 @@
- name: Install ipython - name: Install ipython
apt: apt:
name: name: python3-ipython
- 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/polz113/QCADesigner-E repo: https://github.com/FSillT/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,14 +1,13 @@
#- 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

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

View file

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

@ -1,2 +0,0 @@
- 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: "{{ large_prog_dir }}\\FreedomStudio-4.18.0.2021-04-1-x86_64-w64-mingw32.zip" download_filedest: C:\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: "{{ large_prog_dir }}\\SiFive\\" dest: C:\SiFive\
creates: "{{ large_prog_dir }}\\SiFive\\plugins" creates: C:\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: "{{ large_prog_dir }}\\SiFive\\FreedomStudio.exe" src: C:\SiFive\FreedomStudio.exe
dest: '%public%\Desktop\SiFive.lnk' dest: '%public%\Desktop\SiFive.lnk'

View file

@ -1,34 +1,31 @@
# Deprecated - replace by mems-studio # TODO check install status
- 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,14 +8,13 @@
# register: download # register: download
- name: Set filename - name: Set filename
set_fact: set_fact:
dest_fname: /tmp/st-stm32cubeide_1.19.0_25607_20250703_0907_amd64.sh dest_fname: /tmp/st-stm32cubeide_1.16.0_21983_20240628_1741_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/ERLZDFSgbO1Hm6TT9CLhyUIBZS-4anic7RWtvQliqN-thA?e=KZq4VJ' -O {{ dest_fname }} 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 {{ 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/ERLZDFSgbO1Hm6TT9CLhyUIBZS-4anic7RWtvQliqN-thA?e=KZq4VJ # url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EUrIkoWbod5OilNHLnReBvYBMK7mlwI-R1Qeqhb-ux7hjg?e=HGloHF?download=1
- 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 not needed separately cubemx_download_file: C:\CubeMX.exe
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.19.0_25607_20250703_0907_x86_64.exe cubeide_download_file: C:\st-stm32cubeide_1.16.0_21983_20240628_1741_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,8 +26,7 @@
# arguments: /S # arguments: /S
- name: Download CubeProgrammer - name: Download CubeProgrammer
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/EXHsKDjM6hVAuEGwEWcMyBEB6bHd3HuOP38D7Wjt41vjTw?e=7jatnu&download=1" -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
@ -40,11 +39,10 @@
arguments: /S arguments: /S
- name: Download CubeMonitor - name: Download CubeMonitor
# TODO 2025: only zip distributions exists in zip file # TODO 2024: only zip distributions exists in zip file
# TODO 2025: URL: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EcU8MQwONYZKuk22puks-IgBd1qLM94DH3AA_CEclIgTZg?e=jRcA3v # TODO 2024: URL: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/ERUUr7knYFNNuv5rViOb-PgB596EvC3ev4P_Aa_MjRL57Q?e=tZssk4
# TODO 2025: Have extracted setup exe - not sure if this is enough! # TODO 2024: 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/EbVvZi3q7QRNqwocCSgMvGgB-eYM2mtb-IidD1UTaMgtbw?e=QDxd29" -O "{{ cubemonitor_download_file }}" 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 "{{ 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
@ -56,24 +54,23 @@
path: "{{ cubemonitor_download_file }}" path: "{{ cubemonitor_download_file }}"
arguments: /S arguments: /S
# 2025: CUFinder not needed anymore - name: Download STM CUFinder
# - name: Download STM CUFinder 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 }}"
# 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 }}" # #win_get_url:
# # #win_get_url: # # dest: C:\CUFinder.exe
# # # dest: C:\CUFinder.exe # #register: cubecufinder_download
# # #register: cubecufinder_download args:
# args: creates: "{{ cufinder_download_file }}"
# 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/EZLOLK_5IxpPvnI_rYH6hSMBuQyH3EEq9bqZr9X_n6cgzA?e=P218RC" -O "{{ cubeide_download_file }}" 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 "{{ installers }}\RAVINOR\2025\st-stm32cubeide_1.19.0_25607_20250703_0907_x86_64.exe" -O "{{ cubeide_download_file }}" #dest: C:\st-stm32cubeide_1.16.0_21983_20240628_1741_x86_64.exe
#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 }}"
@ -86,13 +83,12 @@
- name: Set CubeIDE default workspace - name: Set CubeIDE default workspace
win_lineinfile: win_lineinfile:
path: C:\ST\STM32CubeIDE_1.19.0\STM32CubeIDE\stm32cubeide.ini path: C:\ST\STM32CubeIDE_1.10.1\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"
# 2025: QEMU not needed anymore # Replace -installIU... with -list to get available packages.
# # Replace -installIU... with -list to get available packages. - name: Install QEMU
# - name: Install QEMU 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
# 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 args:
# args: chdir: C:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE
# chdir: C:\ST\STM32CubeIDE_1.19.0\STM32CubeIDE

View file

@ -5,17 +5,19 @@
# arguments: /S /AllUsers # arguments: /S /AllUsers
# creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe" # creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe"
# 2025: update: Full directory structure ready zip for Windows only on this URL: # 2024: 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: "{{large_prog_dir}}\\RAVINOR\\STM32Duino" path: "D:\\RAVINOR\\STM32Duino"
state: directory state: directory
- name: Install preinstalled STM32Duino & Arduino environment - name: Install Logisim
win_unzip: win_get_url:
src: {{ installers }}\RAVINOR\2025\arduino-1.8.19.zip url: "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EYTFhlsJOFtFk9xsaViP0eYBtILVS24ZF_dlkgodu_L9Nw?e=geavvJ"
dest: "{{large_prog_dir}}\\RAVINOR\\STM32Duino" dest: "D:\\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

@ -1,5 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

@ -1,3 +0,0 @@
- name: Do not install mems-studio
debug:
msg: "Do not install mems-studio on Linux"

View file

@ -1,32 +0,0 @@
# 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,35 +1,31 @@
# Deprecated - replace by mems-studio # TODO check install status
- name: Do not install UnicleoGUI - name: Check UnicleoGUI install status
debug: win_stat:
msg: "Do not install UnicleoGUI on Windows - deprecated" path: C:\Program Files (x86)\STMicroelectronics\Unicleo-GUI\Unicleo-GUI.exe
# # TODO check install status register: file
# - name: Check UnicleoGUI install status - when: not file.stat.exists
# win_stat: block:
# path: C:\Program Files (x86)\STMicroelectronics\Unicleo-GUI\Unicleo-GUI.exe - name: Download UnicleoGUI
# register: file 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
# - when: not file.stat.exists args:
# block: creates: C:\Unicleo-GUI_Setup.exe
# - name: Download UnicleoGUI #win_get_url:
# 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 # follow_redirects: all
# args: # http_agent: Wget/1.21.3
# creates: C:\Unicleo-GUI_Setup.exe # url: https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EQG4vStF7ApBsN2TDm5AjGQBiU0iFbZZiz91UqGeHKX9FA?e=QOQky2?download=1
# #win_get_url: # dest: C:\Unicleo-GUI_Setup.exe
# # follow_redirects: all #register: download
# # 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

@ -1,4 +0,0 @@
- import_tasks: main_win.yml
when: ansible_os_family == 'Windows'
- import_tasks: main_lin.yml
when: ansible_os_family == 'Debian'

View file

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

View file

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

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