diff --git a/README.md b/README.md index 1347d3c..7034340 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,8 @@ -# Using the ansible scripts - Ansible playbooks for deploying classroom computers. Run with something like: - ansible-playbook --user -k -K -i inventory.yml setup.py - -or, for Apple computers: - - ansible-playbook --user -k -K -i inventory.yml macsetup.py - -# How classroom computers are prepared at FRI - -The computers are prepared as follows: - - Ask teachers to check their requirements. - - Fix ansible scripts according to the requirements. - - Set up a fresh Windows and Linux install on a VM, using files in unattended\_install. - - Use ansible to deploy the software, fixing fresh bugs due to changes in the install processes along the way. - - Fix root filesystem UUIDs to what they were last year so the network-booted menu still works. - - Create partition table image and partition images using [FRI Backup](https://github.com/UL-FRI/ansible_classroom_deploy/tree/main/fri_backup). - - Deploy the images on separate VMs - one for Linux, one for Windows. - - Have teachers check their software in the VMs, report any problems. - - Fix problems on the VMs. - - Create partition images for Windows on one VM, for Linux on the other. - - Deploy the images on a limited number of computers in the classrooms using FRI Backup. - - Test the newly deployed computers, fix identified problems on the VMs. - - Join the Linux VM into AD. One AD account is used for all computers. - - Deploy the partition tables and partitions to the classrooms using [custom ansible scripts](https://github.com/UL-FRI/ansible_classroom_deploy/tree/main/polz_scripts) running FRI Backup and [UDPCast](https://www.udpcast.linux.lu/cmd.html). - - Join Windows into AD. - -# Immutable computers - -Some pieces of modern software assume that a computer is only used by one user who has practically unlimited space in their home folder. Examples of such software are Android Studio, Visual Studio Code, Matlab, Windows Subsystem for Linux (WSUS) and others. Instead of trying to get the software to work, we might just give up and have everyone use the same account on each computer, then wipe all data after they log out / reboot. - -## Windows - -We intend to use [UWF](https://learn.microsoft.com/en-us/windows/configuration/wcd/wcd-unifiedwritefilter). - -## Linux - -We intend to use [snapper](https://wiki.archlinux.org/title/Snapper). + ansible-playbook --user --ask-pass \ + --become-user= + --inventory hosts winsetup.yml + ansible-playbook --user --ask-pass \ + --inventory hosts linsetup.yml diff --git a/linsetup.yml b/linsetup.yml index 8fcfe2b..ba5ac23 100644 --- a/linsetup.yml +++ b/linsetup.yml @@ -1,8 +1,8 @@ -- hosts: classroom +- hosts: ucilnice-prototip become_method: sudo become: true vars: - # ansible_port: 1001 + ansible_port: 1001 ansible_ssh_extra_args: '-o ForwardX11=yes' # ansible_become_pass: '{{ lookup("env", "ANSIBLE_PASSWORD") }}' # ansible_password: '{{ lookup("env", "ANSIBLE_PASSWORD") }}' @@ -12,8 +12,7 @@ - vars/credentials.yml - vars/software_keys.yml roles: - # - nodejs - # - qcadesigner-e + # - orange - all_classes # - fri_base # - powerdesigner diff --git a/roles/AAHRP-63263/meta/main.yml b/roles/AAHRP-63263/meta/main.yml index c2717a3..814de57 100644 --- a/roles/AAHRP-63263/meta/main.yml +++ b/roles/AAHRP-63263/meta/main.yml @@ -1,6 +1,7 @@ # 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 dependencies: - - role: python3 - - role: pycharm + - role: rstudio + - role: eclipse + - role: jdk diff --git a/roles/APS1-63711/main.yaml b/roles/APS1-63711/main.yaml deleted file mode 100644 index ac14147..0000000 --- a/roles/APS1-63711/main.yaml +++ /dev/null @@ -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 diff --git a/roles/DN-63260/meta/main.yml b/roles/DN-63260/meta/main.yml index c87e3ff..aaa0ce9 100644 --- a/roles/DN-63260/meta/main.yml +++ b/roles/DN-63260/meta/main.yml @@ -1,8 +1,5 @@ # Digitalno načrtovanje -# ratko.pilipovic@fri.uni-lj.si +# Nejc.Ilc@fri.uni-lj.si # Windows, Vivado 2022.1 dependencies: - role: vivado - - role: iverilog - - role: cocotb - - role: surfer-project diff --git a/roles/DPS-63744/meta/main.yml b/roles/DPS-63744/meta/main.yml index bd30f3d..1ebf218 100644 --- a/roles/DPS-63744/meta/main.yml +++ b/roles/DPS-63744/meta/main.yml @@ -1,11 +1,8 @@ # Digitalno procesiranje signalov # Aleks.Huc@fri.uni-lj.si -# metod.celestina@dewesoft.si # Windows, GNU/Linux, Matlab, wfdb, Octave, Audacity dependencies: - role: matlab - role: wfdb - role: octave - role: audacity - - role: numpy - - role: matplotlib diff --git a/roles/IS-63266/meta/main.yml b/roles/IS-63266/meta/main.yml deleted file mode 100644 index 3c867f3..0000000 --- a/roles/IS-63266/meta/main.yml +++ /dev/null @@ -1,7 +0,0 @@ -# Inteligentni sistemi -# tadej.skvorc@fri.uni-lj.si -# -dependencies: - - role: python3 - - role: jupyter - - role: vscode diff --git a/roles/KRV-63528/meta/main.yml b/roles/KRV-63528/meta/main.yml index 300873b..9d48639 100644 --- a/roles/KRV-63528/meta/main.yml +++ b/roles/KRV-63528/meta/main.yml @@ -5,5 +5,5 @@ # SageMath se se prevede za Ubutnu 24.04: https://github.com/sagemath/sage/issues/38051#issuecomment-2123452861 # - include_tasks: sagemath.yml dependencies: - - role: jupyter - - role: openssl + - role: jupyter.yml + - role: openssl.yml diff --git a/roles/NDN-63729/meta/main.yml b/roles/NDN-63729/meta/main.yml index 21edf8f..12b4f3e 100644 --- a/roles/NDN-63729/meta/main.yml +++ b/roles/NDN-63729/meta/main.yml @@ -1,10 +1,10 @@ # 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 dependencies: - role: putty - role: vivado - role: cp2102_driver - - role: cocotb - - role: iverilog - - role: surfer-project diff --git a/roles/OR-63717/meta/main.yml b/roles/OR-63717/meta/main.yml index 465e6d2..91b97d4 100644 --- a/roles/OR-63717/meta/main.yml +++ b/roles/OR-63717/meta/main.yml @@ -3,7 +3,7 @@ # Windows, Logisim, Logisim Evolution, RAVINOR, CubeIDE + Tools, VSCode + ST plugin, Putty dependencies: - role: logisim - # - role: stm32cube + - role: stm32cube - role: vscode - role: putty - role: stm32duino diff --git a/roles/OS-63217/main.yaml b/roles/OS-63217/main.yaml deleted file mode 100644 index de42bde..0000000 --- a/roles/OS-63217/main.yaml +++ /dev/null @@ -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 diff --git a/roles/P1-63277/meta/main.yml b/roles/P1-63277/meta/main.yml index 7f729a8..6c58609 100644 --- a/roles/P1-63277/meta/main.yml +++ b/roles/P1-63277/meta/main.yml @@ -6,4 +6,3 @@ dependencies: - role: gedit - role: mono - role: vscode - - role: notepad++ diff --git a/roles/PR-63765/meta/main.yml b/roles/PR-63765/meta/main.yml deleted file mode 100644 index 6c638e4..0000000 --- a/roles/PR-63765/meta/main.yml +++ /dev/null @@ -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 diff --git a/roles/RA-63703/meta/main.yml b/roles/RA-63703/meta/main.yml index 655325d..7408923 100644 --- a/roles/RA-63703/meta/main.yml +++ b/roles/RA-63703/meta/main.yml @@ -2,7 +2,7 @@ # Ziga.Pusnik@fri.uni-lj.si, Robert.Rozman@fri.uni-lj.si # Windows, CubeIDE + tools, STMDuino, VSCode, WinIdea 9.21 + GCC + QEMU, Visual2 dependencies: - # - role: stm32cube # (CubeMonitor sem vzel samo exe) + - role: stm32cube (CubeMonitor sem vzel samo exe) - role: stm32duino - role: vscode - role: putty @@ -10,7 +10,6 @@ dependencies: - role: gcc-arm - role: git - role: visual2 -# - role: winidea-frisms #TODO Writable d:\RAVINOR directory diff --git a/roles/SPO-63264/meta/main.yml b/roles/SPO-63264/meta/main.yml deleted file mode 100644 index e797ed7..0000000 --- a/roles/SPO-63264/meta/main.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Sistemska programska oprema -# tomaz.dobravec@fri.uni-lj.si -# Windows, GNU/Linux, Java -dependencies: - - role: jdk diff --git a/roles/VN-63728/meta/main.yml b/roles/VN-63728/meta/main.yml index 411c38d..04abcca 100644 --- a/roles/VN-63728/meta/main.yml +++ b/roles/VN-63728/meta/main.yml @@ -2,14 +2,13 @@ # Robert.Rozman@fri.uni-lj.si # Windows, CubeIDE + Tools, STMDuino, VSCode, LTSpice, PulseView,Putty, STM32 Algobuilder & Unicleo GUI dependencies: - #- role: stm32cube + - role: stm32cube - role: stm32duino - role: vscode - role: ltspice - role: pulseview - role: putty - - role: stm32mems-studio # replaces algobuilder and unicleogui -# - role: stm32algobuilder #(ni še exe. Datoteke - ne dobim iz ST portala) -# - role: stm32unicleogui - + - role: stm32algobuilder #(ni še exe. Datoteke - ne dobim iz ST portala) + - role: stm32unicleogui + #TODO Writable d:\RAVINOR directory diff --git a/roles/ad_joined/files/pam_mount.conf.xml b/roles/ad_joined/files/pam_mount.conf.xml deleted file mode 100644 index 24167bc..0000000 --- a/roles/ad_joined/files/pam_mount.conf.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - local_admin - root - sudo - - - - - - - local_admin - root - sudo - - - - diff --git a/roles/ad_joined/tasks/main_lin.yml b/roles/ad_joined/tasks/main_lin.yml index fce6850..d1cadbb 100644 --- a/roles/ad_joined/tasks/main_lin.yml +++ b/roles/ad_joined/tasks/main_lin.yml @@ -1,39 +1,25 @@ -- name: Install required packages - apt: - name: - - realmd - - sssd - - libpam-mount - - heimdal-clients - -- name: Remove krb5-user - apt: - name: - krb5-user - state: absent - -- name: Set OU - set_fact: - ou_path: "OU={{locations[0]}},OU=Ucilnice" - -- name: Show state - debug: - msg: "Host: {{inventory_hostname}}, OU: {{ou_path}}" - # - import_tasks: ne_sysprep.yaml - -- name: "Rename" - # Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom - hostname: - name: "{{inventory_hostname}}-linux" - register: hostname_res - +- name: Enable create homedir on login + command: pam-auth-update --enable mkhomedir + become: true - name: Check whether we already joined command: /bin/bash -c "/usr/sbin/realm list" register: realm_list_results + - name: Set OU + set_fact: + ou_path: "OU={{locations[0]}},OU=Ucilnice" + - name: Show state + debug: + msg: "Host: {{inventory_hostname}}, OU: {{ou_path}}" + # - import_tasks: ne_sysprep.yaml + - name: "Rename" + # Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom + hostname: + name: "{{inventory_hostname}}" + register: hostname_res - name: Join using realmd expect: - command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} {{domain_name}} + command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} FRI1.UNI-LJ.SI responses: (?i)Password: "{{ad_join_password}}" ignore_errors: yes @@ -46,20 +32,3 @@ owner: root mode: 0600 -- name: Configure libpam-mount - copy: - src: pam_mount.conf.xml - dest: /etc/security/pam_mount.conf.xml - -- name: Enable libpam-mount - command: pam-auth-update --enable libpam-mount - become: true - -- name: Disable libpam-mkhomedir - command: pam-auth-update --disable mkhomedir - become: true - -- name: Restart sssd - service: - name: sssd - state: restarted diff --git a/roles/ad_joined/tasks/main_win.yml b/roles/ad_joined/tasks/main_win.yml index f2de3a9..79481e3 100644 --- a/roles/ad_joined/tasks/main_win.yml +++ b/roles/ad_joined/tasks/main_win.yml @@ -1,22 +1,18 @@ - name: Set OU set_fact: ou_path: "OU={{locations[0]}},OU=Ucilnice,DC=fri1,DC=uni-lj,DC=si" - - name: "Rename" # Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom win_hostname: name: "{{inventory_hostname}}" register: hostname_res - - name: "Reboot after hostname change" win_reboot: when: hostname_res.reboot_required - - name: Stop Windows Update Service win_service: name: wuauserv state: stopped - - name: Clear WSUS ID from registry win_regedit: path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate @@ -28,30 +24,25 @@ - AccountDomainSid - SusClientId - SusClientIDValidation - - name: Start Windows Update Service win_service: name: wuauserv state: started - - name: "Join domain" win_domain_membership: - domain_admin_user: "{{ad_join_user}}" - domain_admin_password: "{{ad_join_password}}" + domain_admin_user: "{{adjoin_user}}" + domain_admin_password: "{{adjoin_password}}" dns_domain_name: "{{domain_name}}" domain_ou_path: "{{ou_path}}" hostname: "{{inventory_hostname}}" state: domain register: domain_state - - name: Reset WSUS authorization win_command: wuauclt.exe /resetauthorization /detectnow ignore_errors: yes - - name: Update windows win_command: wuauclt.exe /updatenow ignore_errors: yes - - name: Reboot win_command: "shutdown /r" when: domain_state.reboot_required diff --git a/roles/ad_joined/templates/sssd.conf b/roles/ad_joined/templates/sssd.conf index 46c5c5b..117793c 100644 --- a/roles/ad_joined/templates/sssd.conf +++ b/roles/ad_joined/templates/sssd.conf @@ -29,4 +29,3 @@ ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad -krb5_ccname_template = FILE:%d/krb5cc_%U diff --git a/roles/all_classes/meta/main.yml b/roles/all_classes/meta/main.yml index b50b0b3..49394c4 100644 --- a/roles/all_classes/meta/main.yml +++ b/roles/all_classes/meta/main.yml @@ -2,7 +2,6 @@ dependencies: - role: fri_base - role: AAHRP-63263 - role: APS1-63279 - - role: APS1-63711 - role: ARP1-63545C - role: BMO-63259 - role: DF-63530 @@ -12,7 +11,6 @@ dependencies: - role: EP-63249 - role: FP-63507 - role: GO-63715 - - role: IS-63266 - role: IS-63714 - role: IVZ-63521 - role: KCR-63550 @@ -26,22 +24,17 @@ dependencies: - role: NRG-63553 - role: OBSS-63514 - role: ODV-63204 - - role: OIS-63215 - role: OO-63271 - - role: OPB-63208 - role: OR-63717 - role: ORS-63218 - - role: OS-63217 - role: OS-63709 - role: OS-63741 - role: OUI-63214 - - role: P1-63277 - - role: P1-63702 - role: P2-63278 - role: P2-63706 - role: PA-63737 - - role: PB-63707 - role: PB2-63713 + - role: PB-63707 - role: PJC-63769 - role: PPJ-63220 - role: PS-63261 @@ -55,7 +48,6 @@ dependencies: - role: RPOI-90066 - role: RZP-63523 - role: SP-63255 - - role: SPO-63264 - role: ST-63727 - role: SU-63519 - role: TINR-63740 diff --git a/roles/altair/tasks/main.yml b/roles/altair/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/altair/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/altair/tasks/main_lin.yml b/roles/altair/tasks/main_lin.yml deleted file mode 100644 index 72354a1..0000000 --- a/roles/altair/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install altair - apt: - name: python3-altair - state: latest diff --git a/roles/altair/tasks/main_win.yml b/roles/altair/tasks/main_win.yml deleted file mode 100644 index 74d8219..0000000 --- a/roles/altair/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install altair - win_command: pip install altair diff --git a/roles/android_studio/tasks/androidsdk_packages.yml b/roles/android_studio/tasks/androidsdk_packages.yml index bfd9d77..2705a0f 100644 --- a/roles/android_studio/tasks/androidsdk_packages.yml +++ b/roles/android_studio/tasks/androidsdk_packages.yml @@ -2,8 +2,9 @@ AndroidSDK_packages: - add-ons;addon-google_apis-google-24 - add-ons;addon-google_apis-google-24 - build-tools;34.0.0-rc3 - - build-tools;36.0.0 - - cmake;4.0.3 + - build-tools;35.0.0 + - cmake;3.22.1 + #- cmake;latest - cmdline-tools;latest - emulator - extras;android;m2repository @@ -21,15 +22,15 @@ AndroidSDK_packages: # - patcher;v4 - platform-tools - platforms;android-34 - - platforms;android-36 + - platforms;android-35 - platforms;android-32 - # - platforms;android-UpsideDownCakePrivacySandbox + - platforms;android-UpsideDownCakePrivacySandbox - skiaparser;3 - - sources;android-36 + - sources;android-35 - 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-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-UpsideDownCakePrivacySandbox;google_apis_playstore;x86_64 + - system-images;android-UpsideDownCakePrivacySandbox;google_apis_playstore;x86_64 diff --git a/roles/android_studio/tasks/main_win.yml b/roles/android_studio/tasks/main_win.yml index e4de8ee..1199913 100644 --- a/roles/android_studio/tasks/main_win.yml +++ b/roles/android_studio/tasks/main_win.yml @@ -1,90 +1,63 @@ - name: Set Android Studio version set_fact: - studio_path: "{{ large_prog_dir }}\\android-studio" - studio_version: "2025.1.2.13" - tools_version: "13114758_latest" - -- name: Set Android command-line tools path - set_fact: - tools_path: "{{ studio_path }}\\cmdline-tools\\latest" - -- name: Check Android Studio - win_stat: - path: "{{ studio_path }}\\bin\\studio64.exe" - register: studio - -- when: not studio.stat.exists - block: - - name: Download Android Studio - win_get_url: - url: "https://redirector.gvt1.com/edgedl/android/studio/ide-zips/{{ studio_version }}/android-studio-{{ studio_version }}-windows.zip" - dest: "{{ large_prog_dir }}\\" - - - name: Extract Android Studio - win_unzip: - src: "{{ large_prog_dir }}\\android-studio-{{ studio_version }}-windows.zip" - dest: "{{ large_prog_dir }}\\" - delete_archive: yes + sdk_path: C:\android-sdk + studio_version: "2025.1.2.11" + tools_version: "latest" - name: Check Android Studio tools win_stat: - path: "{{ tools_path }}\\bin\\sdkmanager.bat" + path: "{{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager.bat" register: tools - when: not tools.stat.exists block: - name: Download Android Studio tools win_get_url: - url: "https://dl.google.com/android/repository/commandlinetools-win-{{ tools_version }}.zip" - # url: "https://dl.google.com/android/repository/platform-tools-{{ tools_version }}-windows.zip" - dest: "{{ studio_path }}" + # url: "https://dl.google.com/android/repository/commandlinetools-win-{{ tools_version }}.zip" + url: "https://dl.google.com/android/repository/platform-tools-{{ tools_version }}-windows.zip" + dest: C:\ - name: Extract Android Studio tools win_unzip: - # src: "{{ large_prog_dir }}\\platform-tools-{{ tools_version }}-windows.zip" - src: "{{ studio_path}}\\commandlinetools-win-{{ tools_version }}.zip" - dest: "{{ studio_path }}\\cmdline-tools\\" + src: "C:\\commandlinetools-win-{{ tools_version }}.zip" + dest: "{{ sdk_path }}\\cmdline-tools" delete_archive: yes - - name: Move cmdline-tools to expected location - ansible.windows.win_powershell: - script: move "{{ studio_path }}\\cmdline-tools\\cmdline-tools" "{{ tools_path }}" -- name: Create Android Studio data directory - win_file: - path: "{{ large_prog_dir }}\\.android" - state: directory - -- name: 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: 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 +- name: Install Android SDK win_shell: | - {{ tools_path }}\bin\sdkmanager.bat --install "{{ item }}" + {{ 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: Install Android Studio + win_package: + path: "https://redirector.gvt1.com/edgedl/android/studio/install/{{ studio_version }}/android-studio-{{ studio_version }}-windows.exe" + arguments: /S /AllUsers + expected_return_code: [0, 1223, 3010] + creates_path: "%ProgramFiles%\\Android\\Android Studio\\bin\\studio64.exe" + +- name: Create Android Studio data directory + win_file: + path: D:\.android + state: directory + +- name: Set Android Studio environment variables + win_environment: + level: machine + variables: + ANDROID_HOME: "{{ sdk_path }}" + ANDROID_PREFS_ROOT: D:\ + GRADLE_USER_HOME: D:\.gradle + #- name: Check HAXM install status # win_stat: # path: "%ProgramFiles%\\Intel\\HAXM" diff --git a/roles/arduino/tasks/main_win.yml b/roles/arduino/tasks/main_win.yml index ab4558a..a607b37 100644 --- a/roles/arduino/tasks/main_win.yml +++ b/roles/arduino/tasks/main_win.yml @@ -8,9 +8,8 @@ - name: Install Arduino-cli win_package: # 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 - # 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" diff --git a/roles/chrome/tasks/main_lin.yml b/roles/chrome/tasks/main_lin.yml index 5433e42..390d25c 100644 --- a/roles/chrome/tasks/main_lin.yml +++ b/roles/chrome/tasks/main_lin.yml @@ -1,13 +1,9 @@ - name: Add Chromium not-a-snap repository - apt: - deb: https://launchpad.net/~xtradeb/+archive/ubuntu/apps/+files/xtradeb-apt-source_0.4_all.deb + apt_repository: + repo: ppa:xtradeb/apps state: present - - #apt_repository: - # repo: ppa:xtradeb/apps - # state: present - # update_cache: True - # validate_certs: False + update_cache: True + validate_certs: False - name: Install Chromium instead of Chrome apt: diff --git a/roles/cocotb/tasks/main.yml b/roles/cocotb/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/cocotb/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/cocotb/tasks/main_lin.yml b/roles/cocotb/tasks/main_lin.yml deleted file mode 100644 index 94db275..0000000 --- a/roles/cocotb/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install Cocotb - pip: - executable: pipx - name: cocotb[bus] diff --git a/roles/cocotb/tasks/main_win.yml b/roles/cocotb/tasks/main_win.yml deleted file mode 100644 index 54148f4..0000000 --- a/roles/cocotb/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install cocoTB - win_command: pip install cocotb[bus] diff --git a/roles/cp2102_driver/tasks/main_win.yml b/roles/cp2102_driver/tasks/main_win.yml index 5dcc415..7f30792 100644 --- a/roles/cp2102_driver/tasks/main_win.yml +++ b/roles/cp2102_driver/tasks/main_win.yml @@ -2,5 +2,3 @@ win_chocolatey: ignore_checksums: true name: cp210x-vcp-drivers-win10 - #TODO remove ignore_errors once the package is repaired/updated - ignore_errors: true diff --git a/roles/datasets/tasks/main.yml b/roles/datasets/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/datasets/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/datasets/tasks/main_lin.yml b/roles/datasets/tasks/main_lin.yml deleted file mode 100644 index e2e237b..0000000 --- a/roles/datasets/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install datasets - pip: - executable: pipx - name: datasets diff --git a/roles/datasets/tasks/main_win.yml b/roles/datasets/tasks/main_win.yml deleted file mode 100644 index a614c33..0000000 --- a/roles/datasets/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install datasets - win_command: pip install datasets diff --git a/roles/eclipse/tasks/main_win.yml b/roles/eclipse/tasks/main_win.yml index f26c809..5e39d7c 100644 --- a/roles/eclipse/tasks/main_win.yml +++ b/roles/eclipse/tasks/main_win.yml @@ -12,4 +12,4 @@ win_lineinfile: path: "%ProgramFiles%\\Eclipse {{ target_version }}\\eclipse\\eclipse.ini" regexp: "osgi.instance.area.default" - line: "-Dosgi.instance.area.default=D:/Documents/eclipse-workspace" + line: "-Dosgi.instance.area.default=H:/Documents/eclipse-workspace" diff --git a/roles/evaluate/tasks/main.yml b/roles/evaluate/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/evaluate/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/evaluate/tasks/main_lin.yml b/roles/evaluate/tasks/main_lin.yml deleted file mode 100644 index 104c9da..0000000 --- a/roles/evaluate/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install evaluate - pip: - executable: pipx - name: evaluate diff --git a/roles/evaluate/tasks/main_win.yml b/roles/evaluate/tasks/main_win.yml deleted file mode 100644 index 7698d3f..0000000 --- a/roles/evaluate/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install evaluate - win_command: pip install evaluate diff --git a/roles/facts/tasks/main.yml b/roles/facts/tasks/main.yml deleted file mode 100644 index 4b5c6fe..0000000 --- a/roles/facts/tasks/main.yml +++ /dev/null @@ -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" diff --git a/roles/firefox/tasks/main_lin.yml b/roles/firefox/tasks/main_lin.yml index 8cd61d2..eb729c0 100644 --- a/roles/firefox/tasks/main_lin.yml +++ b/roles/firefox/tasks/main_lin.yml @@ -1,21 +1,5 @@ - name: Add Firefox not-a-snap repository 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 template: src: mozilla-firefox-apt-preferences @@ -24,6 +8,12 @@ template: src: mozilla-firefox-unattended-upgrades 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 apt: diff --git a/roles/flask/tasks/main.yml b/roles/flask/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/flask/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/flask/tasks/main_lin.yml b/roles/flask/tasks/main_lin.yml deleted file mode 100644 index 1d7c92f..0000000 --- a/roles/flask/tasks/main_lin.yml +++ /dev/null @@ -1,7 +0,0 @@ -- name: Install flask - apt: - name: - - python3-flask - - python-flask-doc - state: latest - diff --git a/roles/fri_base/tasks/main_lin.yml b/roles/fri_base/tasks/main_lin.yml index 9ada163..1cc6e95 100644 --- a/roles/fri_base/tasks/main_lin.yml +++ b/roles/fri_base/tasks/main_lin.yml @@ -27,9 +27,8 @@ - wine32:i386 - wine-binfmt - dosbox - - snapper - # - webext-ublock-origin-chromium - # - webext-ublock-origin-firefox + - webext-ublock-origin-chromium + - webext-ublock-origin-firefox - nethack-console - zsh - tmux @@ -50,8 +49,6 @@ - neovim-qt - binwalk - iotop - - evince - - okular - htop - jdupes state: latest @@ -135,8 +132,8 @@ state: mounted opts: guest,soft,nofail -# - name: Set time to local RTC -# shell: "timedatectl set-local-rtc 1 --adjust-system-clock" +- name: Set time to local RTC + shell: "timedatectl set-local-rtc 1 --adjust-system-clock" - name: Install ethtool apt: @@ -147,13 +144,3 @@ copy: dest: /etc/udev/rules.d/ 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 diff --git a/roles/fri_base/tasks/main_win.yml b/roles/fri_base/tasks/main_win.yml index 0a68dbd..40d9e2f 100644 --- a/roles/fri_base/tasks/main_win.yml +++ b/roles/fri_base/tasks/main_win.yml @@ -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 win_timezone: timezone: Central Europe Standard Time - - name: Show file extensions in Explorer win_regedit: path: HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced name: HideFileExt data: 0 type: dword - - name: Allow SMB insecure guest access win_regedit: path: HKLM:\Software\Policies\Microsoft\Windows\LanmanWorkstation name: AllowInsecureGuestAuth data: 1 type: dword - -- name: Enable Unified Write Filter - win_optional_feature: - include_parent: true - name: Client-UnifiedWriteFilter - state: present - - name: Install PSCX community.windows.win_psmodule: name: Pscx diff --git a/roles/gns3/tasks/main_lin.yml b/roles/gns3/tasks/main_lin.yml index 7b8fb8a..df2807d 100644 --- a/roles/gns3/tasks/main_lin.yml +++ b/roles/gns3/tasks/main_lin.yml @@ -1,23 +1,9 @@ - name: Add GNS3 repository - block: - - name: add GNS3 apt key - ansible.builtin.get_url: - url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xb83aaabffbd82d21b543c8ea86c22c2ec6a24d7f - 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 - + apt_repository: + repo: ppa:gns3/ppa + state: present + update_cache: True + validate_certs: False - name: Install gns3 server ansible.builtin.apt: name: gns3-server diff --git a/roles/inkscape/tasks/main_lin.yml b/roles/inkscape/tasks/main_lin.yml index 69a9e9c..4c8441a 100644 --- a/roles/inkscape/tasks/main_lin.yml +++ b/roles/inkscape/tasks/main_lin.yml @@ -1,20 +1,10 @@ - name: Add Inkscape repository - block: - - name: add Inkscape trunk apt key - ansible.builtin.get_url: - url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1F46021FF9A0C56504CE42CD06E315A37AAEF27A - 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 + apt_repository: + repo: ppa:inkscape.dev/stable + state: present + update_cache: True + validate_certs: False - name: Install Inkscape apt: - name: inkscape-trunk + name: inkscape state: latest diff --git a/roles/iverilog/tasks/main.yml b/roles/iverilog/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/iverilog/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/iverilog/tasks/main_lin.yml b/roles/iverilog/tasks/main_lin.yml deleted file mode 100644 index fc76453..0000000 --- a/roles/iverilog/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install Icarus - apt: - name: iverilog - state: latest diff --git a/roles/iverilog/tasks/main_win.yml b/roles/iverilog/tasks/main_win.yml deleted file mode 100644 index e190dea..0000000 --- a/roles/iverilog/tasks/main_win.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: Install Icarus Verilog - win_chocolatey: - name: iverilog - version: '11.0' - source: http://internal/odata/repo - state: present diff --git a/roles/jdk/tasks/main_lin.yml b/roles/jdk/tasks/main_lin.yml index 8c2a94e..eaaa1b3 100644 --- a/roles/jdk/tasks/main_lin.yml +++ b/roles/jdk/tasks/main_lin.yml @@ -1,11 +1,6 @@ -- name: Install latest OpenJDK (25) +- name: Install OpenJDK 21 apt: - name: openjdk-25-jdk - state: latest - -- name: Install latest Java docs - apt: - name: openjdk-25-doc + name: openjdk-21-jdk state: latest - name: Install OpenJDK 17 @@ -36,7 +31,11 @@ - libc6-x32 state: latest -- name: Install Oracle JDK 24 +- name: Install Oracle JDK 22 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" diff --git a/roles/jdk/tasks/main_win.yml b/roles/jdk/tasks/main_win.yml index be8ea09..ceb1996 100644 --- a/roles/jdk/tasks/main_win.yml +++ b/roles/jdk/tasks/main_win.yml @@ -1,6 +1,6 @@ - name: Install Oracle JDK 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 - name: Find Java version @@ -28,13 +28,6 @@ state: present scope: machine -- name: Add Java bin dir to PATH - win_path: - name: PATH - elements: "{{ reg['raw_value'] }}\\bin" - state: present - scope: machine - - name: Disable Java updates win_regedit: path: HKLM:\SOFTWARE\WOW6432Node\JavaSoft\Java Update\Policy diff --git a/roles/logisim/tasks/main_lin.yml b/roles/logisim/tasks/main_lin.yml index c9a2213..d35c8f5 100644 --- a/roles/logisim/tasks/main_lin.yml +++ b/roles/logisim/tasks/main_lin.yml @@ -11,13 +11,3 @@ dest: /opt/logisim remote_src: yes creates: /opt/logisim/META-INF/MANIFEST.MF - - name: Create destination for Logisim - Evolution - file: - path: /opt/logisim-evolution - state: directory - - name: Download and unpack Logisim - Evolution - unarchive: - src: https://github.com/logisim-evolution/logisim-evolution/releases/download/v3.9.0/logisim-evolution-3.9.0-all.jar - dest: /opt/logisim-evolution - remote_src: yes - creates: /opt/logisim-evolution/META-INF/MANIFEST.MF diff --git a/roles/matlab/tasks/main_lin.yml b/roles/matlab/tasks/main_lin.yml index 2942237..200fd19 100644 --- a/roles/matlab/tasks/main_lin.yml +++ b/roles/matlab/tasks/main_lin.yml @@ -1,6 +1,6 @@ - name: Set Matlab version and destination set_fact: - target_version: "R2025a_Update_1" + target_version: "R2024a_Update_5" install_dir: "/mnt/ucilnice_d/install/matlab/" license_path: "/mnt/ucilnice_d/install/matlab/network.lic" dest_dir: /opt/matlab @@ -23,7 +23,7 @@ - name: Install Matlab command: 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 # win_disk_image: # image_path: "{{ installers }}\\matlab\\matlab-{{ target_version }}_windows.iso" diff --git a/roles/matlab/tasks/main_win.yml b/roles/matlab/tasks/main_win.yml index 4fd79ff..ee89c98 100644 --- a/roles/matlab/tasks/main_win.yml +++ b/roles/matlab/tasks/main_win.yml @@ -2,7 +2,7 @@ set_fact: target_version: "R2025a_Update_1" license_path: \\ucilnicesmb.fri1.uni-lj.si\ucilnice_d\install\matlab\network.lic - dest_dir: "{{ large_prog_dir }}\\matlab" + dest_dir: D:\matlab - name: Set ISO path set_fact: @@ -17,27 +17,21 @@ - name: Prepare installer_input.txt template: src: installer_input.txt - dest: c:\matlab_installer_input.txt + dest: d:\matlab_installer_input.txt - name: Install Matlab win_package: 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 win_disk_image: image_path: "{{ iso_path }}" state: absent - ignore_errors: true -- name: Create licenses directory - win_file: - dest: "{{ dest_dir }}\\licenses" - state: directory - -# 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 +# TODO MATLAB throws license error -83 when run +- name: Install Matlab license + win_copy: + dest: "{{ dest_dir }}\\licenses\\network.lic" + src: "{{ installers }}\\matlab\\network.lic" + remote_src: yes diff --git a/roles/matlab/templates/installer_input.txt b/roles/matlab/templates/installer_input.txt index 7ce76e9..4207b6d 100644 --- a/roles/matlab/templates/installer_input.txt +++ b/roles/matlab/templates/installer_input.txt @@ -13,8 +13,7 @@ agreeToLicense=yes ## Users must log in to their MathWorks Account when MATLAB starts. ## ## NOTE: This flag is valid in silent installations only. -# enableLNU=no -enableLNU=yes +enableLNU=no improveMATLAB=no diff --git a/roles/matplotlib/tasks/main_lin.yml b/roles/matplotlib/tasks/main_lin.yml index a509286..b64ec33 100644 --- a/roles/matplotlib/tasks/main_lin.yml +++ b/roles/matplotlib/tasks/main_lin.yml @@ -1,11 +1,4 @@ -- name: Install matplotlib +- name: Install maptplotlib apt: - name: - - python3-matplotlib - - python3-matplotlib-inline - - python3-matplotlib-venn - - python3-mpl-animators - - python3-mpl-scatter-density - - python3-mplcursors - - python3-mplexporter - state: latest + name: matplotlib + state: latest \ No newline at end of file diff --git a/roles/mlxtend/tasks/main.yml b/roles/mlxtend/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/mlxtend/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/mlxtend/tasks/main_lin.yml b/roles/mlxtend/tasks/main_lin.yml deleted file mode 100644 index 393f093..0000000 --- a/roles/mlxtend/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install mlxtend - pip: - executable: pipx - name: mlxtend diff --git a/roles/mlxtend/tasks/main_win.yml b/roles/mlxtend/tasks/main_win.yml deleted file mode 100644 index a486f76..0000000 --- a/roles/mlxtend/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install pandas - win_command: pip install mlxtend diff --git a/roles/mysql_workbench/tasks/main_lin.yml b/roles/mysql_workbench/tasks/main_lin.yml index f5dea85..27c4fa3 100644 --- a/roles/mysql_workbench/tasks/main_lin.yml +++ b/roles/mysql_workbench/tasks/main_lin.yml @@ -1,104 +1,8 @@ -- name: Create mysql workbench build directory - file: - path: /tmp/mysql-workbench - state: directory - -- name: Download mysql workbench source +- name: Download mysql workbench get_url: - url: https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-8.0.43-src.tar.gz - dest: /tmp/mysql-workbench/mysql-workbench.tgz + 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" - register: mysql_download - -- name: Install mysql workbench build dependencies +- name: Install mysql workbench apt: - 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 + deb: /tmp/mysql-workbench-community_8.0.38-1ubuntu24.04_amd64.deb diff --git a/roles/netbeans/tasks/main_win.yml b/roles/netbeans/tasks/main_win.yml index afb9134..72b2659 100644 --- a/roles/netbeans/tasks/main_win.yml +++ b/roles/netbeans/tasks/main_win.yml @@ -2,22 +2,8 @@ set_fact: 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 - win_package: - path: "c:\\Apache-NetBeans-{{ target_version }}.exe" - # path: "https://github.com/Friends-of-Apache-NetBeans/netbeans-installers/releases/download/v{{ target_version }}-build1/Apache-NetBeans-{{ target_version }}.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" + win_package: + path: "https://dlcdn.apache.org/netbeans/netbeans-installers/{{ target_version }}/Apache-NetBeans-{{ target_version }}-bin-windows-x64.exe" + arguments: --silent + creates_path: "%ProgramFiles%\\NetBeans-{{ target_version }}\\netbeans\\bin\\netbeans.exe" diff --git a/roles/networkx/tasks/main.yml b/roles/networkx/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/networkx/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/networkx/tasks/main_lin.yml b/roles/networkx/tasks/main_lin.yml deleted file mode 100644 index 17ef570..0000000 --- a/roles/networkx/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install networkx - apt: - name: python3-networkx - state: latest diff --git a/roles/networkx/tasks/main_win.yml b/roles/networkx/tasks/main_win.yml deleted file mode 100644 index a66ad83..0000000 --- a/roles/networkx/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install networkx - win_command: pip install networkx diff --git a/roles/nodejs/tasks/main_lin.yml b/roles/nodejs/tasks/main_lin.yml index 76f3fb2..601d761 100644 --- a/roles/nodejs/tasks/main_lin.yml +++ b/roles/nodejs/tasks/main_lin.yml @@ -1,7 +1,7 @@ - name: Add NodeJS repo key - get_url: + apt_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 # apt_repository: @@ -9,5 +9,10 @@ - name: Add NodeJS LTS repo url 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 diff --git a/roles/nodejs/tasks/main_win.yml b/roles/nodejs/tasks/main_win.yml index 177e2ec..80cb160 100644 --- a/roles/nodejs/tasks/main_win.yml +++ b/roles/nodejs/tasks/main_win.yml @@ -2,7 +2,6 @@ win_chocolatey: name: nodejs -# Install fails if multiple versions are installed -# - name: Install NodeJS-LTS -# win_chocolatey: -# name: nodejs-lts +- name: Install NodeJS-LTS + win_chocolatey: + name: nodejs-lts diff --git a/roles/numpy/tasks/main.yml b/roles/numpy/tasks/main.yml deleted file mode 100644 index 66e93fe..0000000 --- a/roles/numpy/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' \ No newline at end of file diff --git a/roles/numpy/tasks/main_lin.yml b/roles/numpy/tasks/main_lin.yml deleted file mode 100644 index 66e66b2..0000000 --- a/roles/numpy/tasks/main_lin.yml +++ /dev/null @@ -1,5 +0,0 @@ -- name: Install numpy - apt: - name: - - python3-numpy - state: latest diff --git a/roles/numpy/tasks/main_win.yml b/roles/numpy/tasks/main_win.yml deleted file mode 100644 index ee12580..0000000 --- a/roles/numpy/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install numpy - win_command: pip install numpy diff --git a/roles/omnetpp/tasks/main_win.yml b/roles/omnetpp/tasks/main_win.yml index d17b337..17ebf56 100644 --- a/roles/omnetpp/tasks/main_win.yml +++ b/roles/omnetpp/tasks/main_win.yml @@ -1,9 +1,7 @@ -# TODO: omnetpp na Windows sedaj zahteva WSL. Premisli, kaj storiti glede tega - - name: Set OMNet++ version set_fact: target_version: "6.2.0" - target_dir: "{{large_prog_dir}}\\OMNeT++" + target_dir: "C:\\OMNeT++" - name: Check OMNet++ install status win_stat: @@ -14,24 +12,18 @@ block: - name: Download OMNet++ win_get_url: - url: "https://github.com/omnetpp/omnetpp/releases/download/omnetpp-{{ target_version }}/omnetpp-{{ target_version }}-windows-x86_64.7z" - dest: "{{ large_prog_dir }}" + url: "https://github.com/omnetpp/omnetpp/releases/download/omnetpp-{{ target_version }}/omnetpp-{{ target_version }}-windows-x86_64.zip" + dest: C:\ register: download - name: Unzip OMNet++ win_unzip: src: "{{ download.dest }}" - dest: "{{ large_prog_dir }}" + dest: C:\ delete_archive: yes - name: Move OMNet++ to final location - 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 }}" + win_command: cmd.exe /c move "C:\omnetpp-{{ target_version }}" "{{ target_dir }}" - name: Create OMNet++ compile script win_copy: @@ -46,7 +38,7 @@ line: call "%HOME%\\tools\\win32.x86_64\\msys2_shell.cmd" -mingw64 -c "./configure && make -j4" & exit - name: Compile OMNet++ - win_command: cmd.exe /c "{{ target_dir }}\mingwenv-install.cmd" + win_command: cmd.exe /c "{{ target_dir }}\\mingwenv-install.cmd" - name: Copy OMNet++ shortcut win_copy: diff --git a/roles/plotly/tasks/main.yml b/roles/plotly/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/plotly/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/plotly/tasks/main_lin.yml b/roles/plotly/tasks/main_lin.yml deleted file mode 100644 index 60b4d6e..0000000 --- a/roles/plotly/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install plotly - apt: - name: python3-plotly - state: latest diff --git a/roles/plotly/tasks/main_win.yml b/roles/plotly/tasks/main_win.yml deleted file mode 100644 index 3e6e29d..0000000 --- a/roles/plotly/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install plotly - win_command: pip install plotly diff --git a/roles/powerdesigner/tasks/main_win.yml b/roles/powerdesigner/tasks/main_win.yml index 2e45bca..9bd6760 100644 --- a/roles/powerdesigner/tasks/main_win.yml +++ b/roles/powerdesigner/tasks/main_win.yml @@ -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 - win_shell: | - {{ installers }}\PowerDesigner_12.5\cd1\setup\setup.exe /s /f1"c:\powerdesigner_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\"" + win_package: + path: "{{ installers }}\\PowerDesigner 12.5\\cd1\\setup\\setup.exe" + arguments: "/s /f1\"{{ installers }}\\PowerDesigner 12.5\\setup.iss\" /f2\"C:\\powerdesigner_log.iss\"" diff --git a/roles/powerdesigner/templates/setup.iss b/roles/powerdesigner/templates/setup.iss index 7519aaf..8503670 100755 --- a/roles/powerdesigner/templates/setup.iss +++ b/roles/powerdesigner/templates/setup.iss @@ -3,37 +3,37 @@ Version=v7.00 File=Response File [File Transfer] OverwrittenReadOnly=NoToAll -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-DlgOrder] -Dlg0={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0 +[{{ powerdesigner_key }}-DlgOrder] +Dlg0={{ powerdesigner_key }}-SdWelcome-0 Count=10 -Dlg1={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0 -Dlg2={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0 -Dlg3={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0 -Dlg4={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0 -Dlg5={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0 -Dlg6={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0 -Dlg7={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0 -Dlg8={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0 -Dlg9={DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdWelcome-0] +Dlg1={{ powerdesigner_key }}-SybSelectInstallMode-0 +Dlg2={{ powerdesigner_key }}-SybFlexLM-0 +Dlg3={{ powerdesigner_key }}-SybSelectPackage-0 +Dlg4={{ powerdesigner_key }}-Sybase License-0 +Dlg5={{ powerdesigner_key }}-SdAskDestPath-0 +Dlg6={{ powerdesigner_key }}-SdComponentTree-0 +Dlg7={{ powerdesigner_key }}-Graphic Select Folder-0 +Dlg8={{ powerdesigner_key }}-SdStartCopy-0 +Dlg9={{ powerdesigner_key }}-SdFinish-0 +[{{ powerdesigner_key }}-SdWelcome-0] Result=1 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectInstallMode-0] +[{{ powerdesigner_key }}-SybSelectInstallMode-0] Mode=3 Result=1 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybFlexLM-0] -LicenseServer=todo.fri.uni-lj.si +[{{ powerdesigner_key }}-SybFlexLM-0] +LicenseServer=todo.fri1.uni-lj.si PortNumber=27000 Result=1 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SybSelectPackage-0] +[{{ powerdesigner_key }}-SybSelectPackage-0] Package=Studio Enterprise Result=1 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Sybase License-0] +[{{ powerdesigner_key }}-Sybase License-0] Sybase_License=accept -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdAskDestPath-0] -szDir={{ large_prog_dir }}\PowerDesigner 12 +[{{ powerdesigner_key }}-SdAskDestPath-0] +szDir=C:\Program Files (x86)\Sybase\PowerDesigner 12 Result=1 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdComponentTree-0] -szDir={{ large_prog_dir }}\PowerDesigner 12 +[{{ powerdesigner_key }}-SdComponentTree-0] +szDir=C:\Program Files (x86)\Sybase\PowerDesigner 12 CR\FRM-type=string CR\FRM-count=2 CR\FRM-0=CR\FRM\FRM_Xem @@ -108,6 +108,11 @@ PDM-1=PDM\PDM_Examples PDM-2=PDM\PDM_Report PDM-3=PDM\PDM_Tools PDM-4=PDM\PDM_Addins +RQM-type=string +RQM-count=3 +RQM-0=RQM\RQM_License +RQM-1=RQM\RQM_Examples +RQM-2=RQM\RQM_Report XSM-type=string XSM-count=4 XSM-0=XSM\XSM_License @@ -130,19 +135,6 @@ PDF-5=PDF\PDF_PDM PDF-6=PDF\PDF_RQM PDF-7=PDF\PDF_XSM PDF-8=PDF\PDF_RPY -VIDEO-type=string -VIDEO-count=11 -VIDEO-0=VIDEO\Video_int -VIDEO-1=VIDEO\Video_Gen -VIDEO-2=VIDEO\Video_BPM -VIDEO-3=VIDEO\Video_CDM -VIDEO-4=VIDEO\Video_ILM -VIDEO-5=VIDEO\Video_OOM -VIDEO-6=VIDEO\Video_PDM -VIDEO-7=VIDEO\Video_RQM -VIDEO-8=VIDEO\Video_xsm -VIDEO-9=VIDEO\Video_RPY -VIDEO-10=VIDEO\Video_htm Component-type=string Component-count=10 Component-0=CR @@ -151,15 +143,15 @@ Component-2=CDM Component-3=ILM Component-4=OOM Component-5=PDM -Component-6=XSM -Component-7=RPY -Component-8=PDF -Component-9=VIDEO +Component-6=RQM +Component-7=XSM +Component-8=RPY +Component-9=PDF Result=1 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-Graphic Select Folder-0] +[{{ powerdesigner_key }}-Graphic Select Folder-0] szFolder=Sybase\PowerDesigner 12 Result=1 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdStartCopy-0] +[{{ powerdesigner_key }}-SdStartCopy-0] Keep_Settings=0 Result=1 [Application] @@ -167,7 +159,7 @@ Name=Sybase PowerDesigner 12.5 Version=12.5.2169 Company=Sybase Lang=0009 -[{DA53ABD7-6592-45DA-A6DD-287A48F74D37}-SdFinish-0] +[{{ powerdesigner_key }}-SdFinish-0] Result=1 bOpt1=0 bOpt2=0 diff --git a/roles/processing/tasks/main_win.yml b/roles/processing/tasks/main_win.yml index e8fda8a..2caf84a 100644 --- a/roles/processing/tasks/main_win.yml +++ b/roles/processing/tasks/main_win.yml @@ -1,7 +1,7 @@ - name: Set Processing version set_fact: - target_version: 4.4.6 - target_build: 1306 + target_version: 4.4.4 + target_build: 1304 - name: Check Processing install status win_stat: @@ -22,21 +22,20 @@ state: directory - name: Download Processing win_get_url: - dest: 'C:\Program Files\processing.zip' - url: https://github.com/processing/processing4/releases/download/processing-{{ target_build }}-{{ target_version }}/processing-{{ target_version }}-windows-x64-portable.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.zip - name: Unzip Processing win_unzip: - src: 'C:\Program Files\processing.zip' - dest: 'C:\Program Files\' - creates: 'C:\Program Files\Processing\Processing.exe' - #- name: Install Processing - # win_copy: - # dest: C:\Program Files\Processing\ - # src: 'C:\Program Files\Processing\processing-{{ target_version }}\' - # remote_src: yes + dest: 'C:\Program Files\Processing' + src: 'C:\Program Files\Processing\processing.zip' + - name: Install Processing + win_copy: + dest: C:\Program Files\Processing\ + src: 'C:\Program Files\Processing\processing-{{ target_version }}\' + remote_src: yes - name: Disable telemetry win_lineinfile: - path: C:\Program Files\Processing\app\resources\lib\defaults.txt + path: C:\Program Files\Processing\lib\defaults.txt regexp: 'update.check' line: 'update.check = false' - name: Create Processing shortcut @@ -45,8 +44,8 @@ dest: "C:\\Users\\Public\\Desktop\\Processing.lnk" - name: Remove temporary files win_file: - # path: C:\Program Files\Processing\{{ item }} - path: C:\Program Files\processing.zip + path: C:\Program Files\Processing\{{ item }} state: absent loop: - processing.zip + - processing-{{ target_version }} diff --git a/roles/pycharm/tasks/main_win.yml b/roles/pycharm/tasks/main_win.yml index 2b4516a..ae51dbd 100644 --- a/roles/pycharm/tasks/main_win.yml +++ b/roles/pycharm/tasks/main_win.yml @@ -8,4 +8,4 @@ state: upgrade version: "{{ target_version }}" -# TODO set default project directory to {{large_prog_dir}}\something +# TODO set default project directory to H:\something diff --git a/roles/python3/tasks/main_lin.yml b/roles/python3/tasks/main_lin.yml index 8c183df..56ce94f 100644 --- a/roles/python3/tasks/main_lin.yml +++ b/roles/python3/tasks/main_lin.yml @@ -5,8 +5,6 @@ - name: Install ipython apt: - name: - - python3-ipython - - ipython3 + name: python3-ipython state: latest diff --git a/roles/qcadesigner-e/tasks/main_lin.yml b/roles/qcadesigner-e/tasks/main_lin.yml index 78f8f49..dd955bc 100644 --- a/roles/qcadesigner-e/tasks/main_lin.yml +++ b/roles/qcadesigner-e/tasks/main_lin.yml @@ -15,7 +15,7 @@ - name: Clone QCADesigner-E repo # ansible.builtin.git: - repo: https://github.com/polz113/QCADesigner-E + repo: https://github.com/FSillT/QCADesigner-E force: yes dest: /opt/QCADesigner-E - name: Build QCADesigner-E diff --git a/roles/rstudio/tasks/main_lin.yml b/roles/rstudio/tasks/main_lin.yml index 423cd11..a21785b 100644 --- a/roles/rstudio/tasks/main_lin.yml +++ b/roles/rstudio/tasks/main_lin.yml @@ -1,14 +1,13 @@ -#- name: Add R repository -# block: -# - name: R repo - apt key -# ansible.builtin.get_url: -# url: https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc -# dest: /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc -# - name: R repo - url -# ansible.builtin.apt_repository: -# repo: "deb https://cloud.r-project.org/bin/linux/ubuntu {{ansible_distribution_release}}-cran40/" -# state: present -# ignore_errors: true +- name: Add R repository + block: + - name: R repo - apt key + ansible.builtin.get_url: + url: https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc + dest: /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc + - name: R repo - url + ansible.builtin.apt_repository: + repo: "deb https://cloud.r-project.org/bin/linux/ubuntu {{ansible_distribution_release}}-cran40/" + state: present - name: Install R ansible.builtin.apt: name: r-base diff --git a/roles/scikit/tasks/main.yml b/roles/scikit/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/scikit/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/scikit/tasks/main_lin.yml b/roles/scikit/tasks/main_lin.yml deleted file mode 100644 index 1db3705..0000000 --- a/roles/scikit/tasks/main_lin.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: Install scikit - apt: - name: - - python3-sklearn - - python3-sklearn-pandas - state: latest diff --git a/roles/scikit/tasks/main_win.yml b/roles/scikit/tasks/main_win.yml deleted file mode 100644 index 3b59e53..0000000 --- a/roles/scikit/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install scikit - win_command: pip install scikit-learn diff --git a/roles/seaborn/tasks/main.yml b/roles/seaborn/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/seaborn/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/seaborn/tasks/main_lin.yml b/roles/seaborn/tasks/main_lin.yml deleted file mode 100644 index 23b99fa..0000000 --- a/roles/seaborn/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install seaborn - apt: - name: python3-seaborn - state: latest diff --git a/roles/seaborn/tasks/main_win.yml b/roles/seaborn/tasks/main_win.yml deleted file mode 100644 index 4ff22ad..0000000 --- a/roles/seaborn/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install seaborn - win_command: pip install seaborn diff --git a/roles/sifive/tasks/main_win.yml b/roles/sifive/tasks/main_win.yml index e874141..1030ce1 100644 --- a/roles/sifive/tasks/main_win.yml +++ b/roles/sifive/tasks/main_win.yml @@ -5,7 +5,7 @@ - name: Set SiFive Studio install location 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 win_command: wget "https://unilj-my.sharepoint.com/:u:/g/personal/bulic_fri1_uni-lj_si/EdiSnJpoClJLtc3AtcAtEQ4BI76_PeDvL-ZmhxG4OEyvig?e=xBRYcb&download=1" -O "{{ download_filedest }}" args: @@ -14,12 +14,12 @@ - name: Unzip SiFive Studio win_unzip: src: "{{ download_filedest }}" - dest: "{{ large_prog_dir }}\\SiFive\\" - creates: "{{ large_prog_dir }}\\SiFive\\plugins" + dest: C:\SiFive\ + creates: C:\SiFive\plugins delete_archive: yes - name: Create desktop shortcut win_shortcut: description: "SiFive Freedom Studio" - src: "{{ large_prog_dir }}\\SiFive\\FreedomStudio.exe" + src: C:\SiFive\FreedomStudio.exe dest: '%public%\Desktop\SiFive.lnk' diff --git a/roles/stm32algobuilder/tasks/main_win.yml b/roles/stm32algobuilder/tasks/main_win.yml index c707e81..ff0e92e 100644 --- a/roles/stm32algobuilder/tasks/main_win.yml +++ b/roles/stm32algobuilder/tasks/main_win.yml @@ -1,34 +1,31 @@ -# Deprecated - replace by mems-studio -- name: Do not install AlgoBuilder - debug: - msg: "Do not install AlgoBuilder on Windows - deprecated" +# TODO check install status # TODO: Exe file is missing - Problem on ST site -# - name: Check AlgoBuilder install status -# win_stat: -# path: C:\Program Files (x86)\Thonny\thonny.exe -# register: file +- name: Check AlgoBuilder install status + win_stat: + path: C:\Program Files (x86)\Thonny\thonny.exe + register: file -# - when: not file.stat.exists -# block: -# - 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 -# args: -# creates: C:\AlgoBuilderSuite.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/EdBQJN3I6fVFj7qgs6SjRp4BZ0QbWIV26NUlLv_4d9JsDQ?e=hA4Cbl?download=1 -# # dest: C:\AlgoBuilderSuite.exe -# #register: download +- when: not file.stat.exists + block: + - 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 + args: + creates: C:\AlgoBuilderSuite.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/EdBQJN3I6fVFj7qgs6SjRp4BZ0QbWIV26NUlLv_4d9JsDQ?e=hA4Cbl?download=1 + # dest: C:\AlgoBuilderSuite.exe + #register: download -# - name: Install AlgoBuilder -# win_package: -# path: C:\AlgoBuilderSuite.exe -# # path: "{{ download.dest }}" -# arguments: /Verysilent /AllUsers + - name: Install AlgoBuilder + win_package: + path: C:\AlgoBuilderSuite.exe + # path: "{{ download.dest }}" + arguments: /Verysilent /AllUsers -# - name: Remove temporary files -# win_file: -# path: C:\AlgoBuilderSuite.exe -# # path: "{{ download.dest }}" -# state: absent + - name: Remove temporary files + win_file: + path: C:\AlgoBuilderSuite.exe + # path: "{{ download.dest }}" + state: absent diff --git a/roles/stm32cube/tasks/main_lin.yml b/roles/stm32cube/tasks/main_lin.yml index 085ffca..01ba7fc 100644 --- a/roles/stm32cube/tasks/main_lin.yml +++ b/roles/stm32cube/tasks/main_lin.yml @@ -8,13 +8,13 @@ # register: download - name: Set filename 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 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 }} 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 file: diff --git a/roles/stm32cube/tasks/main_win.yml b/roles/stm32cube/tasks/main_win.yml index de16294..752db87 100644 --- a/roles/stm32cube/tasks/main_win.yml +++ b/roles/stm32cube/tasks/main_win.yml @@ -7,18 +7,18 @@ block: - name: Set download filenames set_fact: - # cubemx_download_file: C:\CubeMX.exe not needed separately + cubemx_download_file: C:\CubeMX.exe cubeprogrammer_download_file: C:\CubeProgrammer.exe cubemonitor_download_file: C:\CubeMonitor.exe cufinder_download_file: C:\CUFinder.exe - cubeide_download_file: C:\st-stm32cubeide_1.19.0_25607_20250703_0907_x86_64.exe - # - name: Download CubeMX - # # # 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 }}" - # # #dest: C:\CubeMX.exe - # # #register: cubemx_download - # args: - # creates: "{{ cubemx_download_file }}" + cubeide_download_file: C:\st-stm32cubeide_1.16.0_21983_20240628_1741_x86_64.exe + - name: Download CubeMX + # # 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 }}" + # #dest: C:\CubeMX.exe + # #register: cubemx_download + args: + creates: "{{ cubemx_download_file }}" #- name: Install CubeMX # win_package: @@ -26,7 +26,7 @@ # arguments: /S - name: Download CubeProgrammer - 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_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_get_url: # dest: C:\CubeProgrammer.exe #register: cubeprogrammer_download @@ -39,10 +39,10 @@ arguments: /S - name: Download CubeMonitor - # TODO 2025: 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 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/EbVvZi3q7QRNqwocCSgMvGgB-eYM2mtb-IidD1UTaMgtbw?e=QDxd29" -O "{{ cubemonitor_download_file }}" + # TODO 2024: 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 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/EQnm_b359Q5IpmfCUuDG-PABH10q94ixaLx4_CMrYKoNtQ?e=rKp3cV&download=1" -O "{{ cubemonitor_download_file }}" #win_get_url: # dest: C:\CubeMonitor.exe #register: cubemonitor_download @@ -54,23 +54,23 @@ path: "{{ cubemonitor_download_file }}" arguments: /S - # 2025: CUFinder not needed anymore - # - 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_get_url: - # # # dest: C:\CUFinder.exe - # # #register: cubecufinder_download - # args: - # creates: "{{ cufinder_download_file }}" + - 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_get_url: + # # dest: C:\CUFinder.exe + # #register: cubecufinder_download + 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 # 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 }}" - #dest: C:\st-stm32cubeide_1.19.0_25607_20250703_0907_x86_64.exe + 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 }}" + #dest: C:\st-stm32cubeide_1.16.0_21983_20240628_1741_x86_64.exe #register: cubeide_download args: creates: "{{ cubeide_download_file }}" @@ -83,13 +83,12 @@ - name: Set CubeIDE default workspace 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" line: "-Dosgi.instance.area.default=D:/RAVINOR/CubeIDE_Workspace" - # 2025: QEMU not needed anymore - # # Replace -installIU... with -list to get available packages. - # - 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 - # args: - # chdir: C:\ST\STM32CubeIDE_1.19.0\STM32CubeIDE + # Replace -installIU... with -list to get available packages. + - 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 + args: + chdir: C:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE diff --git a/roles/stm32duino/tasks/main_win.yml b/roles/stm32duino/tasks/main_win.yml index cc9fe81..63b56ed 100644 --- a/roles/stm32duino/tasks/main_win.yml +++ b/roles/stm32duino/tasks/main_win.yml @@ -5,18 +5,18 @@ # arguments: /S /AllUsers # 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 - name: Create STM32Duino directory win_file: - path: "{{large_prog_dir}}\\RAVINOR\\STM32Duino" + path: "D:\\RAVINOR\\STM32Duino" state: directory -- name: Install preinstalled STM32Duino & Arduino environment +- name: Install Logisim win_get_url: 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? diff --git a/roles/stm32mems-studio/tasks/main.yml b/roles/stm32mems-studio/tasks/main.yml deleted file mode 100644 index 146eef8..0000000 --- a/roles/stm32mems-studio/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' - diff --git a/roles/stm32mems-studio/tasks/main_lin.yml b/roles/stm32mems-studio/tasks/main_lin.yml deleted file mode 100644 index fca4773..0000000 --- a/roles/stm32mems-studio/tasks/main_lin.yml +++ /dev/null @@ -1,3 +0,0 @@ -- name: Do not install mems-studio - debug: - msg: "Do not install mems-studio on Linux" diff --git a/roles/stm32mems-studio/tasks/main_win.yml b/roles/stm32mems-studio/tasks/main_win.yml deleted file mode 100644 index 8a1ea31..0000000 --- a/roles/stm32mems-studio/tasks/main_win.yml +++ /dev/null @@ -1,31 +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 - args: - creates: C:\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: C:\mems-studio-2.1.2.exe - # path: "{{ download.dest }}" - arguments: /Verysilent /AllUsers - - - name: Remove temporary files - win_file: - path: C:\mems-studio-2.1.2.exe - # path: "{{ download.dest }}" - state: absent - - diff --git a/roles/stm32unicleogui/tasks/main_win.yml b/roles/stm32unicleogui/tasks/main_win.yml index b40d13c..5397607 100644 --- a/roles/stm32unicleogui/tasks/main_win.yml +++ b/roles/stm32unicleogui/tasks/main_win.yml @@ -1,35 +1,31 @@ -# Deprecated - replace by mems-studio -- name: Do not install UnicleoGUI - debug: - msg: "Do not install UnicleoGUI on Windows - deprecated" -# # TODO check install status -# - name: Check UnicleoGUI 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 UnicleoGUI -# 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 -# args: -# creates: C:\Unicleo-GUI_Setup.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 +# TODO check install status +- name: Check UnicleoGUI 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 UnicleoGUI + 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 + args: + creates: C:\Unicleo-GUI_Setup.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 UnicleoGUI -# win_package: -# path: C:\Unicleo-GUI_Setup.exe -# # path: "{{ download.dest }}" -# arguments: /Verysilent /AllUsers + - name: Install UnicleoGUI + win_package: + path: C:\Unicleo-GUI_Setup.exe + # path: "{{ download.dest }}" + arguments: /Verysilent /AllUsers -# - name: Remove temporary files -# win_file: -# path: C:\Unicleo-GUI_Setup.exe -# # path: "{{ download.dest }}" -# state: absent + - name: Remove temporary files + win_file: + path: C:\Unicleo-GUI_Setup.exe + # path: "{{ download.dest }}" + state: absent diff --git a/roles/streamlit/tasks/main.yml b/roles/streamlit/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/streamlit/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/streamlit/tasks/main_lin.yml b/roles/streamlit/tasks/main_lin.yml deleted file mode 100644 index 6068e2d..0000000 --- a/roles/streamlit/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install streamlit - pip: - executable: pipx - name: streamlit diff --git a/roles/streamlit/tasks/main_win.yml b/roles/streamlit/tasks/main_win.yml deleted file mode 100644 index 56e74a6..0000000 --- a/roles/streamlit/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install streamlit - win_command: pip install streamlit diff --git a/roles/surfer-project/tasks/main.yml b/roles/surfer-project/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/surfer-project/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/surfer-project/tasks/main_lin.yml b/roles/surfer-project/tasks/main_lin.yml deleted file mode 100644 index 707d76c..0000000 --- a/roles/surfer-project/tasks/main_lin.yml +++ /dev/null @@ -1,17 +0,0 @@ -# https://surfer-project.org/ -- name: create Surfer direcotry - file: - path: /opt/surfer - state: directory - -- name: Download and unpack Surfer - unarchive: - src: https://gitlab.com/api/v4/projects/42073614/jobs/artifacts/main/raw/surfer_linux.zip?job=linux_build - dest: /opt/surfer - remote_src: yes - -- name: Add symlink to /usr/local/bin - file: - src: /opt/surfer/surfer - path: /usr/local/bin/surfer - state: link diff --git a/roles/surfer-project/tasks/main_win.yml b/roles/surfer-project/tasks/main_win.yml deleted file mode 100644 index fd75ce3..0000000 --- a/roles/surfer-project/tasks/main_win.yml +++ /dev/null @@ -1,11 +0,0 @@ -- name: Download Surfer - win_get_url: - dest: "{{ large_prog_dir }}" - url: https://gitlab.com/api/v4/projects/42073614/jobs/artifacts/main/raw/surfer_win.zip?job=windows_build - register: downloaded_surfer - -- name: Unpack Surfer - win_unzip: - src: "{{ downloaded_surfer['dest']}}" - dest: "{{ large_prog_dir }}" - delete_archive: yes diff --git a/roles/thonny/tasks/main_win.yml b/roles/thonny/tasks/main_win.yml index bb7cb8c..6a14128 100644 --- a/roles/thonny/tasks/main_win.yml +++ b/roles/thonny/tasks/main_win.yml @@ -1,6 +1,6 @@ - name: Set Thonny version set_fact: - target_version: 4.1.7 + target_version: 4.0.1 - name: Check Thonny install status win_stat: diff --git a/roles/torch/tasks/main.yml b/roles/torch/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/torch/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/torch/tasks/main_lin.yml b/roles/torch/tasks/main_lin.yml deleted file mode 100644 index 51cf087..0000000 --- a/roles/torch/tasks/main_lin.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: Install torch - apt: - name: - - python3-torch - - python3-skorch - - python3-torch-cluster - - python3-torch-geometric - - python3-ignite - - python3-sparse - - python3-torchaudio - - python3-torchvision - state: latest diff --git a/roles/torch/tasks/main_win.yml b/roles/torch/tasks/main_win.yml deleted file mode 100644 index 4d1b27b..0000000 --- a/roles/torch/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install torch - win_command: pip install torch torchvision diff --git a/roles/transformers/tasks/main.yml b/roles/transformers/tasks/main.yml deleted file mode 100644 index 3077b7e..0000000 --- a/roles/transformers/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -- import_tasks: main_win.yml - when: ansible_os_family == 'Windows' -- import_tasks: main_lin.yml - when: ansible_os_family == 'Debian' diff --git a/roles/transformers/tasks/main_lin.yml b/roles/transformers/tasks/main_lin.yml deleted file mode 100644 index c9ece9b..0000000 --- a/roles/transformers/tasks/main_lin.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Install transformers - pip: - executable: pipx: - name: transformers diff --git a/roles/transformers/tasks/main_win.yml b/roles/transformers/tasks/main_win.yml deleted file mode 100644 index 1b4f207..0000000 --- a/roles/transformers/tasks/main_win.yml +++ /dev/null @@ -1,2 +0,0 @@ -- name: Install transformers - win_command: pip install transformers diff --git a/roles/vscode/tasks/main_lin.yml b/roles/vscode/tasks/main_lin.yml index 1989fff..08ae21d 100644 --- a/roles/vscode/tasks/main_lin.yml +++ b/roles/vscode/tasks/main_lin.yml @@ -1,11 +1,11 @@ - name: Add VS repo key - get_url: + apt_key: url: https://packages.microsoft.com/keys/microsoft.asc - dest: /etc/apt/keyrings/microsoft.asc + keyring: /etc/apt/trusted.gpg.d/microsoft.gpg - name: Add VS repo url apt_repository: - repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/microsoft.asc] https://packages.microsoft.com/repos/vscode stable main" + repo: "deb https://packages.microsoft.com/repos/vscode stable main" - name: Install VSCode apt: @@ -16,6 +16,6 @@ include_vars: vscode_extensions.yml - name: Install VS Code extensions - command: code --no-sandbox --user-data-dir "/usr/share/code/resources/app" --extensions-dir "/usr/share/code/resources/app/extensions" --install-extension --force "{{ item }}" + command: code --no-sandbox --user-data-dir "/usr/share/code/resources/app" --extensions-dir "/usr/share/code/resources/app/extensions" --install-extension "{{ item }}" loop: "{{VSCode_Extensions}}" notify: fix VS code extensions diff --git a/roles/winidea/tasks/main_win.yml b/roles/winidea/tasks/main_win.yml index 6900fc8..ff8e2c2 100644 --- a/roles/winidea/tasks/main_win.yml +++ b/roles/winidea/tasks/main_win.yml @@ -7,8 +7,7 @@ block: - name: Install WinIDEA win_package: - path: "https://www.isystem.com/downloads/winIDEA/setup/winIDEA_x64_9_21_351_224956.exe" -# 2024: path: "https://www.isystem.com/downloads/winIDEA/setup/winIDEA_x64_9_21_253_178621.exe" + path: "https://www.isystem.com/downloads/winIDEA/setup/winIDEA_x64_9_21_253_178621.exe" arguments: /q - name: Download QEMU diff --git a/roles/wireshark/tasks/main_win.yml b/roles/wireshark/tasks/main_win.yml index 407a8d8..5c38680 100644 --- a/roles/wireshark/tasks/main_win.yml +++ b/roles/wireshark/tasks/main_win.yml @@ -1,9 +1,9 @@ # npcap=0.96 is the last version to support silent installation -#- name: Install npcap -# win_package: -# path: https://npcap.com/dist/npcap-0.96.exe -# arguments: /S -# creates_path: "%ProgramFiles%\\Npcap\\npcap.cat" +- name: Install npcap + win_package: + path: https://npcap.com/dist/npcap-0.96.exe + arguments: /S + creates_path: "%ProgramFiles%\\Npcap\\npcap.cat" - name: Install Wireshark win_chocolatey: diff --git a/roles/xampp/tasks/main_win.yml b/roles/xampp/tasks/main_win.yml index 154de4a..44bbc71 100644 --- a/roles/xampp/tasks/main_win.yml +++ b/roles/xampp/tasks/main_win.yml @@ -1,7 +1,6 @@ - name: Install XAMPP win_chocolatey: name: xampp-81 - install_args: "" - name: Make XAMPP config world writable win_acl: @@ -13,7 +12,7 @@ - name: Add firewall rules for XAMPP win_firewall_rule: name: "Allow inbound traffic for XAMPP: {{ item }}" - program: "C:\\xampp\\{{ item }}" + program: "%SystemDrive%\\xampp\\{{ item }}" action: allow direction: in protocol: tcp diff --git a/roles/xgboost/tasks/main_lin.yml b/roles/xgboost/tasks/main_lin.yml index c8b94d7..7046677 100644 --- a/roles/xgboost/tasks/main_lin.yml +++ b/roles/xgboost/tasks/main_lin.yml @@ -1,6 +1,7 @@ - name: Install xgboost apt: name: + - xgboost - python3-xgboost state: latest diff --git a/setup.yml b/setup.yml deleted file mode 100644 index 5596e87..0000000 --- a/setup.yml +++ /dev/null @@ -1,32 +0,0 @@ -- name: Gather facts / setup connection - hosts: '*' - gather_facts: false - become: false - vars_files: - - vars/credentials.yml - roles: - - facts - -- name: Install software - hosts: '*' - become: true - debugger: on_failed - vars_files: - - vars/software_keys.yml - - vars/dirs.yml - roles: - # - all_classes - # - fri_base - - android_studio - # - jdk - # - powerdesigner - # - solidworks - # - # - omnetpp - # - stm32cube - # - processing - # - powerdesigner - # - nodejs - # - qcadesigner-e - # - fri_base - # - powerdesigner diff --git a/unattended_install/ubuntu/autoinstall.yml b/unattended_install/ubuntu/autoinstall.yml deleted file mode 100644 index d3d80e8..0000000 --- a/unattended_install/ubuntu/autoinstall.yml +++ /dev/null @@ -1,194 +0,0 @@ -#cloud-config -autoinstall: - apt: - disable_components: [] - fallback: offline-install - geoip: true - mirror-selection: - primary: - - country-mirror - - arches: &id001 - - amd64 - - i386 - uri: http://archive.ubuntu.com/ubuntu/ - - arches: &id002 - - s390x - - arm64 - - armhf - - powerpc - - ppc64el - - riscv64 - uri: http://ports.ubuntu.com/ubuntu-ports - preserve_sources_list: false - security: - - arches: *id001 - uri: http://security.ubuntu.com/ubuntu/ - - arches: *id002 - uri: http://ports.ubuntu.com/ubuntu-ports - codecs: - install: true - drivers: - install: true - identity: - hostname: ucilnica - password: $6$TlnOwdSPWxPW4DBb$.QyE0mgGQ8y7eavPpa/RgakcsBbwDRXobcYdZJMek3yNuGmVKdYEMfVG.biguVblI08dNfSa/JgOxMgl2IqHb. - realname: IT FRI - username: local_admin - kernel: - package: linux-generic - keyboard: - layout: si - toggle: null - variant: '' - locale: en_US.UTF-8 - network: - ethernets: - ens18: - dhcp4: true - version: 2 - oem: - install: auto - source: - id: xubuntu-desktop - search_drivers: true - ssh: - allow-pw: true - authorized-keys: [] - install-server: false - storage: - config: - - ptable: gpt - path: /dev/vda - preserve: true - name: '' - grub_device: false - id: disk-vda - type: disk - - device: disk-vda - size: 639631360 - flag: boot - number: 1 - preserve: true - grub_device: true - offset: 1048576 - partition_type: c12a7328-f81f-11d2-ba4b-00a0c93ec93b - partition_name: EFI system partition - path: /dev/vda1 - uuid: 269e71a1-6ae2-4591-a060-b6ac82ffe698 - id: partition-vda1 - type: partition - - device: disk-vda - size: 16777216 - flag: msftres - number: 2 - preserve: true - grub_device: false - offset: 642777088 - partition_type: e3c9e316-0b5c-4db8-817d-f92df00215ae - partition_name: Microsoft reserved partition - path: /dev/vda2 - uuid: ab263f9b-a6ef-4131-946c-8db62cc2fce3 - id: partition-vda2 - type: partition - - device: disk-vda - size: 354904178688 - number: 3 - preserve: true - grub_device: false - offset: 659554304 - partition_type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 - partition_name: Basic data partition - path: /dev/vda3 - uuid: 1e6326a1-a4d4-4225-820a-eca56bfbba1b - id: partition-vda3 - type: partition - - device: disk-vda - size: 762314752 - number: 4 - preserve: true - grub_device: false - offset: 355563732992 - partition_type: de94bba4-06d1-4d40-a16a-bfd50179d6ac - path: /dev/vda4 - uuid: 53e306ac-91a6-4841-81a7-d965910fd1c6 - id: partition-vda4 - type: partition - - device: disk-vda - size: 120000086016 - wipe: superblock - flag: linux - number: 5 - preserve: true - grub_device: false - offset: 356326047744 - partition_type: 0fc63daf-8483-4772-8e79-3d69d8477de4 - path: /dev/vda5 - uuid: 9db5f9d0-33a0-4ca0-9562-649c24ca7499 - id: partition-vda5 - type: partition - - fstype: btrfs - volume: partition-vda5 - preserve: false - id: format-0 - type: format - - path: / - device: format-0 - id: mount-0 - type: mount - - fstype: vfat - volume: partition-vda1 - preserve: true - id: format-partition-vda1 - type: format - - path: /boot/efi - device: format-partition-vda1 - id: mount-1 - type: mount - - device: disk-vda - size: 8000634880 - wipe: superblock - flag: linux - number: 6 - preserve: true - grub_device: false - offset: 476326133760 - partition_type: 0fc63daf-8483-4772-8e79-3d69d8477de4 - path: /dev/vda6 - uuid: 2c990bfc-89d7-43b7-bb1b-0151d44f72cb - id: partition-vda6 - type: partition - - fstype: btrfs - volume: partition-vda6 - preserve: false - id: format-1 - type: format - - path: /home - device: format-1 - id: mount-2 - type: mount - - device: disk-vda - size: 19256049664 - number: 7 - preserve: true - grub_device: false - offset: 484326768640 - partition_type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 - partition_name: Basic data partition - path: /dev/vda7 - uuid: 3cc1570d-e2ed-4337-b520-f57bbe953c66 - id: partition-vda7 - type: partition - timezone: Europe/Ljubljana - updates: security - packages: - - openssh-server - late-commands: - - 'echo "#cloud-config" >> /target/etc/cloud/cloud.cfg.d/99-ssh_keys.cfg' - - 'echo "users:" >> /target/etc/cloud/cloud.cfg.d/99-ssh_keys.cfg' - - 'echo " - name: local_admin" >> /target/etc/cloud/cloud.cfg.d/99-ssh_keys.cfg' - - 'echo " ssh_authorized_keys:" >> /target/etc/cloud/cloud.cfg.d/99-ssh_keys.cfg' - - 'echo " - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM2Tn8+rH+fkFkBycxYrJ7TzhXQhuf3U+w23JFlZoRiX polz@povzpetnik" >> /target/etc/cloud/cloud.cfg.d/99-ssh_keys.cfg' - - 'echo " - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDRpoWIH5u2g12IM39WNRzLsPksfSjfL/82fPnuZwZ7H polz@it-polz" >> /target/etc/cloud/cloud.cfg.d/99-ssh_keys.cfg' - - 'echo " - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCq7NrrDD53pe9Zpn/dRSPxWQLDIZ9INS0kz/ps/9fGsM8/H/J7jr/ecj0j0jfYig6QdV8G7VnpLWjcuJ65ul3u2rnQSN78Ms/hxlAhmyahQtBA2q2D2zqI2PDWsKAySWmfFg+2W5fYmE1+F9GEB0OWNOuClmfo2A1c8Ve76qSiehHgjYo0G1CQrXkmE00GBLqyqkbyyStLa9DUfaDwrbOu4tJChHo4jDGuLH5QCYcN+RRXjwPQKgk0L2yfu1479L0XqhbEo+KHoIZH501fkoE+gUKVyLERvkhKSiCgPhJmAgRN1bRsiyTwvQzoED4q1RwFmG0AKg0U5bHnAAOd77uyuIYmcFiaRGHROQ9ZbyB9tJ07QrFlzRkderDd5Z18mO7LtgDjFZ2B2DlRY6zxMiUqJyDRnHjDF3+3DTlHIUCC3aEtoYS8MPyRL1b8XenIqswXkM+vkYFeKh2ynjNu3C6VqDCXZFvIi6f1X0ojZXRrDmbiON8Y74HjxP0z6TB1U30= polz@ucilnicenfs-2020" >> /target/etc/cloud/cloud.cfg.d/99-ssh_keys.cfg' - - 'curtin in-target -- sed -i "s/\\(%sudo.*\\) ALL/\\1 NOPASSWD: ALL/" /etc/sudoers' - version: 1 diff --git a/unattended_install/win/autounattend.xml b/unattended_install/win/autounattend.xml deleted file mode 100644 index 6ee0db5..0000000 --- a/unattended_install/win/autounattend.xml +++ /dev/null @@ -1,549 +0,0 @@ - - - - - - - - en-US - - 0409:00000424;0409:00000409 - en-US - en-US - en-US - - - - - - 0 - 3 - - - - - - YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY - OnError - - true - - false - - - 1 - cmd.exe /c ">>"X:\diskpart.txt" (echo:REM)" - - - 2 - cmd.exe /c "diskpart.exe /s "X:\diskpart.txt" >>"X:\diskpart.log" || ( type "X:\diskpart.log" & echo diskpart encountered an error. & pause & exit /b 1 )" - - - - - - - - ucilnica - - - - - 1 - powershell.exe -WindowStyle Normal -NoProfile -Command "$xml = [xml]::new(); $xml.Load('C:\Windows\Panther\unattend.xml'); $sb = [scriptblock]::Create( $xml.unattend.Extensions.ExtractScript ); Invoke-Command -ScriptBlock $sb -ArgumentList $xml;" - - - 2 - powershell.exe -WindowStyle Normal -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\Specialize.ps1' -Raw | Invoke-Expression;" - - - 3 - reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT" - - - 4 - powershell.exe -WindowStyle Normal -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\DefaultUser.ps1' -Raw | Invoke-Expression;" - - - 5 - reg.exe unload "HKU\DefaultUser" - - - - - - - - - 0409:00000424;0409:00000409 - en-US - en-US - en-US - - - - - - local_admin - FRI IT - Administrators - - 6tfc5rdx - true</PlainText> - </Password> - </LocalAccount> - <LocalAccount wcm:action="add"> - <Name>Student</Name> - <DisplayName>Student</DisplayName> - <Group>Users</Group> - <Password> - <Value>vaje</Value> - <PlainText>true</PlainText> - </Password> - </LocalAccount> - </LocalAccounts> - </UserAccounts> - <AutoLogon> - <Username>local_admin</Username> - <Enabled>true</Enabled> - <LogonCount>1</LogonCount> - <Password> - <Value>6tfc5rdx</Value> - <PlainText>true</PlainText> - </Password> - </AutoLogon> - <OOBE> - <ProtectYourPC>3</ProtectYourPC> - <HideEULAPage>true</HideEULAPage> - <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> - <HideOnlineAccountScreens>false</HideOnlineAccountScreens> - </OOBE> - <FirstLogonCommands> - <SynchronousCommand wcm:action="add"> - <Order>1</Order> - <CommandLine>powershell.exe -WindowStyle Normal -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\FirstLogon.ps1' -Raw | Invoke-Expression;"</CommandLine> - </SynchronousCommand> - </FirstLogonCommands> - </component> - </settings> - <Extensions xmlns="https://schneegans.de/windows/unattend-generator/"> - <ExtractScript> -param( - [xml] $Document -); - -foreach( $file in $Document.unattend.Extensions.File ) { - $path = [System.Environment]::ExpandEnvironmentVariables( $file.GetAttribute( 'path' ) ); - mkdir -Path( $path | Split-Path -Parent ) -ErrorAction 'SilentlyContinue'; - $encoding = switch( [System.IO.Path]::GetExtension( $path ) ) { - { $_ -in '.ps1', '.xml' } { [System.Text.Encoding]::UTF8; } - { $_ -in '.reg', '.vbs', '.js' } { [System.Text.UnicodeEncoding]::new( $false, $true ); } - default { [System.Text.Encoding]::Default; } - }; - $bytes = $encoding.GetPreamble() + $encoding.GetBytes( $file.InnerText.Trim() ); - [System.IO.File]::WriteAllBytes( $path, $bytes ); -} - </ExtractScript> - <File path="C:\Windows\Setup\Scripts\RemovePackages.ps1"> -$selectors = @( - 'Microsoft.Microsoft3DViewer'; - 'Microsoft.BingSearch'; - 'Microsoft.WindowsCalculator'; - 'Microsoft.WindowsCamera'; - 'Microsoft.WindowsAlarms'; - 'Microsoft.549981C3F5F10'; - 'Microsoft.Windows.DevHome'; - 'MicrosoftCorporationII.MicrosoftFamily'; - 'Microsoft.WindowsFeedbackHub'; - 'Microsoft.Edge.GameAssist'; - 'Microsoft.Getstarted'; - 'Microsoft.WindowsMaps'; - 'Microsoft.MixedReality.Portal'; - 'Microsoft.BingNews'; - 'Microsoft.MicrosoftOfficeHub'; - 'Microsoft.Paint'; - 'Microsoft.Windows.Photos'; - 'Microsoft.PowerAutomateDesktop'; - 'MicrosoftCorporationII.QuickAssist'; - 'Microsoft.SkypeApp'; - 'Microsoft.MicrosoftSolitaireCollection'; - 'Microsoft.MicrosoftStickyNotes'; - 'Microsoft.Todos'; - 'Microsoft.Wallet'; - 'Microsoft.YourPhone'; -); -$getCommand = { - Get-AppxProvisionedPackage -Online; -}; -$filterCommand = { - $_.DisplayName -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Remove-AppxProvisionedPackage -AllUsers -Online -ErrorAction 'Continue'; - } -}; -$type = 'Package'; -$logfile = 'C:\Windows\Setup\Scripts\RemovePackages.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\RemoveCapabilities.ps1"> -$selectors = @( - 'Print.Fax.Scan'; - 'Language.Handwriting'; - 'Browser.InternetExplorer'; - 'MathRecognizer'; - 'OneCoreUAP.OneSync'; - 'Microsoft.Windows.MSPaint'; - 'Microsoft.Windows.PowerShell.ISE'; - 'App.Support.QuickAssist'; - 'Language.Speech'; - 'Language.TextToSpeech'; - 'App.StepsRecorder'; - 'Hello.Face.18967'; - 'Hello.Face.Migration.18967'; - 'Hello.Face.20134'; - 'Microsoft.Windows.WordPad'; -); -$getCommand = { - Get-WindowsCapability -Online | Where-Object -Property 'State' -NotIn -Value @( - 'NotPresent'; - 'Removed'; - ); -}; -$filterCommand = { - ($_.Name -split '~')[0] -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Remove-WindowsCapability -Online -ErrorAction 'Continue'; - } -}; -$type = 'Capability'; -$logfile = 'C:\Windows\Setup\Scripts\RemoveCapabilities.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\RemoveFeatures.ps1"> -$selectors = @( - 'Microsoft-RemoteDesktopConnection'; - 'Recall'; -); -$getCommand = { - Get-WindowsOptionalFeature -Online | Where-Object -Property 'State' -NotIn -Value @( - 'Disabled'; - 'DisabledWithPayloadRemoved'; - ); -}; -$filterCommand = { - $_.FeatureName -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Disable-WindowsOptionalFeature -Online -Remove -NoRestart -ErrorAction 'Continue'; - } -}; -$type = 'Feature'; -$logfile = 'C:\Windows\Setup\Scripts\RemoveFeatures.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\VirtIoGuestTools.ps1"> -&amp; { - foreach( $letter in 'DEFGHIJKLMNOPQRSTUVWXYZ'.ToCharArray() ) { - $exe = "${letter}:\virtio-win-guest-tools.exe"; - if( Test-Path -LiteralPath $exe ) { - Start-Process -FilePath $exe -ArgumentList '/passive', '/norestart' -Wait; - return; - } - } - 'VirtIO Guest Tools image (virtio-win-*.iso) is not attached to this VM.'; -} *&gt;&amp;1 &gt;&gt; 'C:\Windows\Setup\Scripts\VirtIoGuestTools.log'; - </File> - <File path="C:\Windows\Setup\Scripts\unattend-01.ps1"> -Get-WindowsCapability -Name OpenSSH.Server* -Online | - Add-WindowsCapability -Online - -$firewallParams = @{ - Name = 'sshd-Server-In-TCP' - DisplayName = 'Inbound rule for OpenSSH Server (sshd) on TCP port 22' - Action = 'Allow' - Direction = 'Inbound' - Enabled = 'True' # This is not a boolean but an enum - Profile = 'Any' - Protocol = 'TCP' - LocalPort = 22 -} -New-NetFirewallRule @firewallParams - -$shellParams = @{ - Path = 'HKLM:\SOFTWARE\OpenSSH' - Name = 'DefaultShell' - Value = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' - PropertyType = 'String' - Force = $true -} -New-ItemProperty @shellParams - -# Set default to powershell.exe -$shellParams = @{ - Path = 'HKLM:\SOFTWARE\OpenSSH' - Name = 'DefaultShell' - Value = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' - PropertyType = 'String' - Force = $true -} -New-ItemProperty @shellParams - -# Set real-time clock to UTC -$shellParams = @{ - Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation' - Name = 'RealTimeIsUniversal' - Value = '1' - PropertyType = 'DWord' -} -New-ItemProperty @shellParams - - -Set-Service -Name sshd -StartupType Automatic -Status Running - </File> - <File path="C:\Windows\Setup\Scripts\Specialize.ps1"> -$scripts = @( - { - reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v BypassNRO /t REG_DWORD /d 1 /f; - }; - { - Remove-Item -LiteralPath 'Registry::HKLM\Software\Microsoft\WindowsUpdate\Orchestrator\UScheduler_Oobe\DevHomeUpdate' -Force -ErrorAction 'SilentlyContinue'; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemovePackages.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemoveCapabilities.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemoveFeatures.ps1' -Raw | Invoke-Expression; - }; - { - net.exe accounts /maxpwage:UNLIMITED; - }; - { - netsh.exe advfirewall firewall set rule group="@FirewallAPI.dll,-28752" new enable=Yes; - reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f; - }; - { - icacls.exe C:\ /remove:g "*S-1-5-11" - }; - { - reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Dsh" /v AllowNewsAndInterests /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\BitLocker" /v "PreventDeviceEncryption" /t REG_DWORD /d 1 /f; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\unattend-01.ps1' -Raw | Invoke-Expression; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to customize your Windows installation. Do not close this window.' -PercentComplete $complete; - '*** Will now execute command &#xAB;{0}&#xBB;.' -f $( - $str = $script.ToString().Trim() -replace '\s+', ' '; - $max = 100; - if( $str.Length -le $max ) { - $str; - } else { - $str.Substring( 0, $max - 1 ) + '&#x2026;'; - } - ); - $start = [datetime]::Now; - &amp; $script; - '*** Finished executing command after {0:0} ms.' -f [datetime]::Now.Subtract( $start ).TotalMilliseconds; - "`r`n" * 3; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\Specialize.log"; - </File> - <File path="C:\Windows\Setup\Scripts\UserOnce.ps1"> -$scripts = @( - { - Set-WinHomeLocation -GeoId 212; - }; - { - Get-AppxPackage -Name 'Microsoft.Windows.Ai.Copilot.Provider' | Remove-AppxPackage; - }; - { - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'LaunchTo' -Type 'DWord' -Value 1; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to configure this user account. Do not close this window.' -PercentComplete $complete; - '*** Will now execute command &#xAB;{0}&#xBB;.' -f $( - $str = $script.ToString().Trim() -replace '\s+', ' '; - $max = 100; - if( $str.Length -le $max ) { - $str; - } else { - $str.Substring( 0, $max - 1 ) + '&#x2026;'; - } - ); - $start = [datetime]::Now; - &amp; $script; - '*** Finished executing command after {0:0} ms.' -f [datetime]::Now.Subtract( $start ).TotalMilliseconds; - "`r`n" * 3; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "$env:TEMP\UserOnce.log"; - </File> - <File path="C:\Windows\Setup\Scripts\DefaultUser.ps1"> -$scripts = @( - { - reg.exe add "HKU\DefaultUser\Software\Policies\Microsoft\Windows\WindowsCopilot" /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v "UnattendedSetup" /t REG_SZ /d "powershell.exe -WindowStyle Normal -NoProfile -Command \""Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\UserOnce.ps1' -Raw | Invoke-Expression;\""" /f; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to modify the default user&#x2019;&#x2019;s registry hive. Do not close this window.' -PercentComplete $complete; - '*** Will now execute command &#xAB;{0}&#xBB;.' -f $( - $str = $script.ToString().Trim() -replace '\s+', ' '; - $max = 100; - if( $str.Length -le $max ) { - $str; - } else { - $str.Substring( 0, $max - 1 ) + '&#x2026;'; - } - ); - $start = [datetime]::Now; - &amp; $script; - '*** Finished executing command after {0:0} ms.' -f [datetime]::Now.Subtract( $start ).TotalMilliseconds; - "`r`n" * 3; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\DefaultUser.log"; - </File> - <File path="C:\Windows\Setup\Scripts\FirstLogon.ps1"> -$scripts = @( - { - Set-ItemProperty -LiteralPath 'Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'AutoLogonCount' -Type 'DWord' -Force -Value 0; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\VirtIoGuestTools.ps1' -Raw | Invoke-Expression; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to finalize your Windows installation. Do not close this window.' -PercentComplete $complete; - '*** Will now execute command &#xAB;{0}&#xBB;.' -f $( - $str = $script.ToString().Trim() -replace '\s+', ' '; - $max = 100; - if( $str.Length -le $max ) { - $str; - } else { - $str.Substring( 0, $max - 1 ) + '&#x2026;'; - } - ); - $start = [datetime]::Now; - &amp; $script; - '*** Finished executing command after {0:0} ms.' -f [datetime]::Now.Subtract( $start ).TotalMilliseconds; - "`r`n" * 3; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\FirstLogon.log"; - </File> - </Extensions> -</unattend> \ No newline at end of file diff --git a/winsetup.yml b/winsetup.yml index 89aac70..c8a4fb3 100644 --- a/winsetup.yml +++ b/winsetup.yml @@ -3,25 +3,19 @@ become_method: runas debugger: on_failed vars: - # ansible_connection: winrm - # ansible_winrm_transport: ntlm - # ansible_winrm_server_cert_validation: ignore - # ansible_port: 5985 - ansible_connection: ssh - ansible_port: 22 - ansible_shell_type: powershell + ansible_connection: winrm + ansible_winrm_transport: ntlm + ansible_winrm_server_cert_validation: ignore + ansible_port: 5985 logon_type: interactive installers: \\ucilnicesmb.fri1.uni-lj.si\ucilnice_d\install vars_files: - vars/credentials.yml - vars/software_keys.yml roles: - - fri_base # - all_classes - # - matlab # - stm32cube - # - firefox - # - android_studio + - android_studio #- OR-63717 #- RA-63703 #- VN-63728