diff --git a/README.md b/README.md index 20e223c..7034340 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ Ansible playbooks for deploying classroom computers. Run with something like: ansible-playbook --user --ask-pass \ - --become --become-method=runas --become-user= - --inventory hosts setup.yml + --become-user= + --inventory hosts winsetup.yml + + ansible-playbook --user --ask-pass \ + --inventory hosts linsetup.yml diff --git a/linsetup.yml b/linsetup.yml index 553f407..b99b561 100644 --- a/linsetup.yml +++ b/linsetup.yml @@ -5,5 +5,6 @@ ansible_port: 1001 ansible_become_pass: '{{ lookup("env", "ANSIBLE_PASSWORD") }}' ansible_password: '{{ lookup("env", "ANSIBLE_PASSWORD") }}' + ansible_connection: 'ssh' roles: - - linroom + - all_classes diff --git a/roles/7zip/tasks/main_lin.yml b/roles/7zip/tasks/main_lin.yml new file mode 100644 index 0000000..94c08d4 --- /dev/null +++ b/roles/7zip/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install 7zip + apt: + name: 7zip + state: latest diff --git a/roles/7zip/tasks/main_win.yml b/roles/7zip/tasks/main_win.yml new file mode 100644 index 0000000..05aebff --- /dev/null +++ b/roles/7zip/tasks/main_win.yml @@ -0,0 +1,18 @@ +- name: Install 7-zip + win_chocolatey: + name: 7zip + register: install + +- when: install.changed + block: + - name: Create 7-zip filetype + win_command: cmd.exe /c ftype 7-zip=%ProgramFiles%\7-zip\7zFM.exe + + - name: Associate 7-zip with archive filetypes + win_command: cmd.exe /c assoc .{{ item }}=7-zip + loop: + - gz + - tar + - targz + - rar + - 7z diff --git a/roles/AAHRP-63263/meta/main.yml b/roles/AAHRP-63263/meta/main.yml new file mode 100644 index 0000000..814de57 --- /dev/null +++ b/roles/AAHRP-63263/meta/main.yml @@ -0,0 +1,7 @@ +# Analiza algoritmov in hevristično reševanje problemov +# matej.piculin@fri.uni-lj.si +# Windows, Java JDK, Eclipse, R, RStudio +dependencies: + - role: rstudio + - role: eclipse + - role: jdk diff --git a/roles/APS1-63279/meta/main.yml b/roles/APS1-63279/meta/main.yml new file mode 100644 index 0000000..d138e5e --- /dev/null +++ b/roles/APS1-63279/meta/main.yml @@ -0,0 +1,9 @@ +# Algoritmi in podatkovne strukture 1 +# tomaz.hocevar@fri.uni-lj.si, bojan.zunkovic@fri.uni-lj.si, polz@fri.uni-lj.si +# Windows, Java JDK, Eclipse +# - role: JDK +# - role: Eclipse +dependencies: + - role: c_development + - role: vscode + diff --git a/roles/ARP1-63545C/meta/main.yml b/roles/ARP1-63545C/meta/main.yml new file mode 100644 index 0000000..9890852 --- /dev/null +++ b/roles/ARP1-63545C/meta/main.yml @@ -0,0 +1,5 @@ +# Aktualno raziskovalno področje 1 +# Veljko.Pejovic@fri.uni-lj.si +# Android Studio +dependencies: + - role: android_studio diff --git a/roles/BMO-63259/meta/main.yml b/roles/BMO-63259/meta/main.yml new file mode 100644 index 0000000..31928ec --- /dev/null +++ b/roles/BMO-63259/meta/main.yml @@ -0,0 +1,6 @@ +# Brezžična in mobilna omrežja +# Ziga.Pusnik@fri.uni-lj.si, Miran.Koprivec@fri.uni-lj.si +# Windows, VMware Workstation 16.2.4 Player, wireshark +dependencies: + - role: wireshark + - role: vmware_player diff --git a/roles/DF-63530/meta/main.yml b/roles/DF-63530/meta/main.yml new file mode 100644 index 0000000..c508bbf --- /dev/null +++ b/roles/DF-63530/meta/main.yml @@ -0,0 +1,6 @@ +# Digitalna forenzika +# Aleks.Huc@fri.uni-lj.si, Gasper.FeleZorz@fri.uni-lj.si +# Windows, GNU/Linux, GNS3, VirtualBox +dependencies: + - role: GNS3 + - role: virtualbox diff --git a/roles/DN-63260/meta/main.yml b/roles/DN-63260/meta/main.yml new file mode 100644 index 0000000..aaa0ce9 --- /dev/null +++ b/roles/DN-63260/meta/main.yml @@ -0,0 +1,5 @@ +# Digitalno načrtovanje +# Nejc.Ilc@fri.uni-lj.si +# Windows, Vivado 2022.1 +dependencies: + - role: vivado diff --git a/roles/DPS-63744/meta/main.yml b/roles/DPS-63744/meta/main.yml new file mode 100644 index 0000000..1ebf218 --- /dev/null +++ b/roles/DPS-63744/meta/main.yml @@ -0,0 +1,8 @@ +# Digitalno procesiranje signalov +# Aleks.Huc@fri.uni-lj.si +# Windows, GNU/Linux, Matlab, wfdb, Octave, Audacity +dependencies: + - role: matlab + - role: wfdb + - role: octave + - role: audacity diff --git a/roles/DV-63718/meta/main.yml b/roles/DV-63718/meta/main.yml new file mode 100644 index 0000000..34d2ebe --- /dev/null +++ b/roles/DV-63718/meta/main.yml @@ -0,0 +1,5 @@ +# Digitalna vezja +# Miha.Moskon@fri.uni-lj.si +# Windows, Logisim, Logisim Evolution +dependencies: + - role: logisim diff --git a/roles/EP-63249/meta/main.yml b/roles/EP-63249/meta/main.yml new file mode 100644 index 0000000..fefd8f1 --- /dev/null +++ b/roles/EP-63249/meta/main.yml @@ -0,0 +1,7 @@ +# Elektronsko poslovanje +# David.Jelenc@fri.uni-lj.si +# Windows, VirtualBox, Android Studio +# +dependencies: + - role: virtualbox + - role: android_studio diff --git a/roles/FP-63507/meta/main.yml b/roles/FP-63507/meta/main.yml new file mode 100644 index 0000000..c33ab62 --- /dev/null +++ b/roles/FP-63507/meta/main.yml @@ -0,0 +1,12 @@ +# Funkcijsko programiranje +# Klemen.Klanjscek@fri.uni-lj.si, Matjaz.Kukar@fri.uni-lj.si +# Windows, GNU/Linux, VS Code, Python 3, Racket (z DrRacket), SML/NJ, Emacs, rlwrap +# +dependencies: + - role: vscode + - role: python3 + - role: racket + - role: emacs + - role: smlnj + + diff --git a/roles/GO-63715/meta/main.yml b/roles/GO-63715/meta/main.yml new file mode 100644 index 0000000..e50e8b4 --- /dev/null +++ b/roles/GO-63715/meta/main.yml @@ -0,0 +1,10 @@ +# Grafično oblikovanje +# Blaz.Meden@fri.uni-lj.si, ilb@fri.uni-lj.si +# Blender, Adobe paket (Illustrator, Photoshop, After Effects, Premiere), Processing (orodje za vizualno in interaktivno grafično programiranje), Inkscape (zastonjsko orodje za vektorsko risanje), GIMP (program za urejanje slik in rastrsko risanje) +# +dependencies: + - role: blender + - role: adobe_cs + - role: inkscape + - role: gimp + diff --git a/roles/IS-63714/meta/main.yml b/roles/IS-63714/meta/main.yml new file mode 100644 index 0000000..fb9009f --- /dev/null +++ b/roles/IS-63714/meta/main.yml @@ -0,0 +1,10 @@ +# Informacijski sistemi +# Miha.Grohar@fri.uni-lj.si +# Windows, GNU/Linux, Docker, VS Code, dotnet6 SDK, GIT, Android Studio +dependencies: + - role: docker + - role: vscode + - role: dotnet6 + - role: git + - role: android_studio + diff --git a/roles/IVZ-63521/meta/main.yml b/roles/IVZ-63521/meta/main.yml new file mode 100644 index 0000000..3f2d5f2 --- /dev/null +++ b/roles/IVZ-63521/meta/main.yml @@ -0,0 +1,7 @@ +# Informacijska varnost in zasebnost +# David.Jelenc@fri.uni-lj.si +# Java JDK, IntelliJ IDEA, VirtualBox +dependencies: + - role: jdk + - role: idea + - role: virtualbox diff --git a/roles/KCR-63550/meta/main.yml b/roles/KCR-63550/meta/main.yml new file mode 100644 index 0000000..67f718a --- /dev/null +++ b/roles/KCR-63550/meta/main.yml @@ -0,0 +1,8 @@ +# Komunikacija človek računalnik +# Ales.Smrdel@fri.uni-lj.si +# Java JDK, Matlab, wfdb, Apache NetBeans +dependencies: + - role: jdk + - role: matlab + - role: wfdb + - role: netbeans diff --git a/roles/KPOV-63716/meta/main.yml b/roles/KPOV-63716/meta/main.yml new file mode 100644 index 0000000..e671a45 --- /dev/null +++ b/roles/KPOV-63716/meta/main.yml @@ -0,0 +1,6 @@ +# Komunikacijski protokoli in omrežna varnost +# Aleks.Huc@fri.uni-lj.si, Gasper.FeleZorz@fri.uni-lj.si +# Windows, GNU/Linux, GNS3, VirtualBox +dependencies: + - role: gns3 + - role: virtualbox diff --git a/roles/KRV-63528/meta/main.yml b/roles/KRV-63528/meta/main.yml new file mode 100644 index 0000000..96bd0ff --- /dev/null +++ b/roles/KRV-63528/meta/main.yml @@ -0,0 +1,7 @@ +# Kriptografija in računalniška varnost +# Klemen.Klanjscek@fri.uni-lj.si, Janos.Vidali@fri.uni-lj.si +# GNU/Linux, SageMath, Python 3, Jupyter Notebook, OpenSSL, OpenSSH client +dependencies: + - role: sagemath + - role: jupyter + - role: openssl diff --git a/roles/MRO-63257/meta/main.yml b/roles/MRO-63257/meta/main.yml new file mode 100644 index 0000000..b3a18ca --- /dev/null +++ b/roles/MRO-63257/meta/main.yml @@ -0,0 +1,5 @@ +# Modeliranje računalniških omrežij +# Miha.Janez@fri.uni-lj.si +# OMNeT++, INET Framework +dependencies: + - role: omnetpp diff --git a/roles/MV-63288/meta/main.yml b/roles/MV-63288/meta/main.yml new file mode 100644 index 0000000..f7f6a1b --- /dev/null +++ b/roles/MV-63288/meta/main.yml @@ -0,0 +1,9 @@ +# Multimedijske vsebine +# Blaz.Meden@fri.uni-lj.si +# Blender, Adobe paket (Illustrator, Photoshop, After Effects, Premiere), Processing (orodje za vizualno in interaktivno grafično programiranje), Inkscape (zastonjsko orodje za vektorsko risanje), GIMP (program za urejanje slik in rastrsko risanje) +dependencies: + - role: blender + - role: adobe_cs + - role: processing + - role: inkscape + - role: gimp diff --git a/roles/NDN-63729/meta/main.yml b/roles/NDN-63729/meta/main.yml new file mode 100644 index 0000000..1c5c3d5 --- /dev/null +++ b/roles/NDN-63729/meta/main.yml @@ -0,0 +1,8 @@ +# Načrtovanje digitalnih naprav +# Miran.Koprivec@fri.uni-lj.si, Miha.Moskon@fri.uni-lj.si +# Windows, Vivado 2022.1 +# Načrtovanje digitalnih naprav +# Miha.Moskon@fri.uni-lj.si +# Windows, Vivado 2022.1 +dependencies: + - role: vivado diff --git a/roles/NM-63522/meta/main.yml b/roles/NM-63522/meta/main.yml new file mode 100644 index 0000000..fdeef6b --- /dev/null +++ b/roles/NM-63522/meta/main.yml @@ -0,0 +1,6 @@ +# Numerična matematika +# Martin.Vuk@fri.uni-lj.si +# VS Code, Julia +dependencies: + - role: vscode + - role: julia diff --git a/roles/NPMP-63512/meta/main.yml b/roles/NPMP-63512/meta/main.yml new file mode 100644 index 0000000..d91713b --- /dev/null +++ b/roles/NPMP-63512/meta/main.yml @@ -0,0 +1,5 @@ +# Nekonvencionalne platforme in metode procesiranja +# Miha.Janez@fri.uni-lj.si, Miha.Moskon@fri.uni-lj.si +# QCADesigner-E +dependencies: + - role: qcadesigner-e diff --git a/roles/NRG-63553/meta/main.yml b/roles/NRG-63553/meta/main.yml new file mode 100644 index 0000000..d53d809 --- /dev/null +++ b/roles/NRG-63553/meta/main.yml @@ -0,0 +1,5 @@ +# Napredna računalniška grafika +# Ziga.Lesar@fri.uni-lj.si +# Windows, Build Tools for Visual Studio 2022 +dependencies: + - role: visual_studio diff --git a/roles/OBSS-63514/meta/main.yml b/roles/OBSS-63514/meta/main.yml new file mode 100644 index 0000000..8187799 --- /dev/null +++ b/roles/OBSS-63514/meta/main.yml @@ -0,0 +1,6 @@ +# Obdelava biomedicinskih signalov in slik +# Ziga.Pirnar@fri.uni-lj.si +# GNU/Linux, Matlab, wfdb +dependencies: + - role: matlab + - role: wfdb diff --git a/roles/ODV-63204/meta/main.yml b/roles/ODV-63204/meta/main.yml new file mode 100644 index 0000000..f303a38 --- /dev/null +++ b/roles/ODV-63204/meta/main.yml @@ -0,0 +1,5 @@ +# Osnove digitalnih vezij +# Ziga.Pusnik@fri.uni-lj.si, Miran.Koprivec@fri.uni-lj.si +# Windows, Logisim, Logisim Evolution +dependencies: + - role: logisim diff --git a/roles/OO-63271/meta/main.yml b/roles/OO-63271/meta/main.yml new file mode 100644 index 0000000..0c11c27 --- /dev/null +++ b/roles/OO-63271/meta/main.yml @@ -0,0 +1,9 @@ +# Osnove oblikovanja +# Blaz.Meden@fri.uni-lj.si, Narvika.Bovcon@fri.uni-lj.si +# Blender, Adobe paket (Illustrator, Photoshop, After Effects, Premiere), Processing (orodje za vizualno in interaktivno grafično programiranje), Inkscape (zastonjsko orodje za vektorsko risanje), GIMP (program za urejanje slik in rastrsko risanje) +dependencies: + - role: blender + - role: adobe_cs + - role: inkscape + - role: gimp + diff --git a/roles/OR-63717/meta/main.yml b/roles/OR-63717/meta/main.yml new file mode 100644 index 0000000..df14b23 --- /dev/null +++ b/roles/OR-63717/meta/main.yml @@ -0,0 +1,10 @@ +# Organizacija računalnikov +# Robert.Rozman@fri.uni-lj.si +# Windows, Logisim, Logisim Evolution, RAVINOR, CubeIDE + QEMU Embedded plugin +dependencies: + - role: logisim + - role: stm32cube + - role: ninja + - role: cmake + - role: gcc-arm +# TODO: RAVINOR, CubeIDE diff --git a/roles/ORS-63218/meta/main.yml b/roles/ORS-63218/meta/main.yml new file mode 100644 index 0000000..8764eef --- /dev/null +++ b/roles/ORS-63218/meta/main.yml @@ -0,0 +1,6 @@ +# Osnove Računalniških Sistemov +# Patricio.Bulic@fri.uni-lj.si +# +dependencies: + - role: vscode + - role: sifive diff --git a/roles/OS-63709/meta/main.yml b/roles/OS-63709/meta/main.yml new file mode 100644 index 0000000..f20e123 --- /dev/null +++ b/roles/OS-63709/meta/main.yml @@ -0,0 +1,5 @@ +# Operacijski sistemi +# Borut.Batagelj@fri.uni-lj.si, Ziga.Emersic@fri.uni-lj.si, Bojan.Klemenc@fri.uni-lj.si, Matej.Vitek@fri.uni-lj.si +# VirtualBox +dependencies: + - role: virtualbox diff --git a/roles/OS-63741/meta/main.yml b/roles/OS-63741/meta/main.yml new file mode 100644 index 0000000..4d5e31d --- /dev/null +++ b/roles/OS-63741/meta/main.yml @@ -0,0 +1,3 @@ +# Odločitveni sistemi +# Martin.Mozina@fri.uni-lj.si +# Windows diff --git a/roles/OUI-63214/meta/main.yml b/roles/OUI-63214/meta/main.yml new file mode 100644 index 0000000..0917005 --- /dev/null +++ b/roles/OUI-63214/meta/main.yml @@ -0,0 +1,7 @@ +# Osnove umetne inteligence +# Jure.Zabkar@fri.uni-lj.si, Ales.Papic@fri.uni-lj.si, matej.piculin@fri.uni-lj.si, Marko.Zeman@fri.uni-lj.si, bojan.zunkovic@fri.uni-lj.si +# Orange, Weka 3, BayesFusion +dependencies: + - role: orange + - role: weka + - role: bayesfusion diff --git a/roles/P2-63278/meta/main.yml b/roles/P2-63278/meta/main.yml new file mode 100644 index 0000000..72accdb --- /dev/null +++ b/roles/P2-63278/meta/main.yml @@ -0,0 +1,8 @@ +# Programiranje 2 +# bostjan.slivnik@fri.uni-lj.si +# gedit, vscode, pdf viewer (evince), gcc, g++, make, JDK +dependencies: + - role: jdk + - role: gedit + - role: vscode + - role: c_development diff --git a/roles/P2-63706/meta/main.yml b/roles/P2-63706/meta/main.yml new file mode 100644 index 0000000..f17f74c --- /dev/null +++ b/roles/P2-63706/meta/main.yml @@ -0,0 +1,7 @@ +# Programiranje 2 +# Tomaz.Dobravec@fri.uni-lj.si +# Windows, Java JDK, IntelliJ IDEA, Apache NetBeans +dependencies: + - role: jdk + - role: idea + - role: netbeans diff --git a/roles/PA-63737/meta/main.yml b/roles/PA-63737/meta/main.yml new file mode 100644 index 0000000..f42edd6 --- /dev/null +++ b/roles/PA-63737/meta/main.yml @@ -0,0 +1,5 @@ +# Procesna avtomatika +# Nejc.Ilc@fri.uni-lj.si +# Windows, VMware Workstation 16.2.4 Player +dependencies: + - role: vmware_player diff --git a/roles/PB-63707/meta/main.yml b/roles/PB-63707/meta/main.yml new file mode 100644 index 0000000..2ffafb3 --- /dev/null +++ b/roles/PB-63707/meta/main.yml @@ -0,0 +1,13 @@ +# Podatkovne baze +# Ales.Jaklic@fri.uni-lj.si, matej.piculin@fri.uni-lj.si, Luka.Sajn@fri.uni-lj.si +# Windows, Power designer 12.5, Java JDK, Python 3, dotnet6 SDK, Jupyter Notebook, Eclipse, MySql Workbench, MySQL ODBC Connector, Notepad++ +dependencies: + - role: eclipse + - role: dotnet6 + - role: jupyter + - role: jdk + - role: powerdesigner + - role: pyodbc + - role: mysql_workbench + - role: mysql-odbc-connector + - role: notepad++ diff --git a/roles/PB2-63713/meta/main.yml b/roles/PB2-63713/meta/main.yml new file mode 100644 index 0000000..c55a3bc --- /dev/null +++ b/roles/PB2-63713/meta/main.yml @@ -0,0 +1,8 @@ +# Podatkovne baze 2 +# Aljaz.Zrnec@fri.uni-lj.si +# Windows +# Podatkovne baze 2 +# Aljaz.Zrnec@fri.uni-lj.si +# Power designer 12.5 +dependencies: + - role: powerdesigner diff --git a/roles/PJC-63769/meta/main.yml b/roles/PJC-63769/meta/main.yml new file mode 100644 index 0000000..0c5fab1 --- /dev/null +++ b/roles/PJC-63769/meta/main.yml @@ -0,0 +1,5 @@ +# Programski jezik C +# Tomaz.Dobravec@fri.uni-lj.si +# Windows, Pelles C +dependencies: + - role: pelles-c diff --git a/roles/PPJ-63220/meta/main.yml b/roles/PPJ-63220/meta/main.yml new file mode 100644 index 0000000..4a98d42 --- /dev/null +++ b/roles/PPJ-63220/meta/main.yml @@ -0,0 +1,11 @@ +# Principi programskih jezikov +# Klemen.Klanjscek@fri.uni-lj.si +# Windows, GNU/Linux, VS Code, Ocaml, Eclipse, Haskell, SWI-Prolog, rlwrap +dependencies: + - role: vscode + - role: ocaml + - role: eclipse + - role: haskell + - role: swi-prolog + - role: rlwrap + diff --git a/roles/PS-63261/meta/main.yml b/roles/PS-63261/meta/main.yml new file mode 100644 index 0000000..1236057 --- /dev/null +++ b/roles/PS-63261/meta/main.yml @@ -0,0 +1,6 @@ +# Porazdeljeni sistemi +# Davor.Sluga@fri.uni-lj.si +# Windows, VS Code, golang +dependencies: + - role: vscode + - role: golang diff --git a/roles/PSP-63287/meta/main.yml b/roles/PSP-63287/meta/main.yml new file mode 100644 index 0000000..b29b221 --- /dev/null +++ b/roles/PSP-63287/meta/main.yml @@ -0,0 +1,6 @@ +# Programiranje specifičnih platform +# Veljko.Pejovic@fri.uni-lj.si +# Android Studio, Arduino IDE +dependencies: + - role: android_studio + - role: arduino diff --git a/roles/PUI-63768/meta/main.yml b/roles/PUI-63768/meta/main.yml new file mode 100644 index 0000000..a76d3df --- /dev/null +++ b/roles/PUI-63768/meta/main.yml @@ -0,0 +1,5 @@ +# Planiranje in upravljanje informatike +# damjan.fujs@fri.uni-lj.si +# Planiranje in upravljanje informatike (VS) +dependencies: + - role: projectlibre diff --git a/roles/RA-63703/meta/main.yml b/roles/RA-63703/meta/main.yml new file mode 100644 index 0000000..eccd66c --- /dev/null +++ b/roles/RA-63703/meta/main.yml @@ -0,0 +1,7 @@ +# Računalniška arhitektura +# Ziga.Pusnik@fri.uni-lj.si, Rok.Cesnovar@fri.uni-lj.si, Robert.Rozman@fri.uni-lj.si, Mira.Trebar@fri.uni-lj.si +# Windows, RAVINOR, CubeIDE + QEMU Embedded plugin, WinIdea 9.21 + GCC + QEMU, WinIdea 9.12.256 (FRISMS kompatibilna), Visual2 +dependencies: + - role: stm32cube + - role: winidea + - role: visual2 diff --git a/roles/RGTI-63269/meta/main.yml b/roles/RGTI-63269/meta/main.yml new file mode 100644 index 0000000..8a0e4f4 --- /dev/null +++ b/roles/RGTI-63269/meta/main.yml @@ -0,0 +1,5 @@ +# Računalniška grafika in tehnologija iger +# Ziga.Lesar@fri.uni-lj.si +# Windows, Unity +dependencies: + - role: unity diff --git a/roles/RIS-63252/meta/main.yml b/roles/RIS-63252/meta/main.yml new file mode 100644 index 0000000..d104016 --- /dev/null +++ b/roles/RIS-63252/meta/main.yml @@ -0,0 +1,5 @@ +# Razvoj informacijskih sistemov +# Aljaz.Zrnec@fri.uni-lj.si +# Power designer 12.5 +dependencies: + - role: powerdesigner diff --git a/roles/RK-63209/meta/main.yml b/roles/RK-63209/meta/main.yml new file mode 100644 index 0000000..e49e38e --- /dev/null +++ b/roles/RK-63209/meta/main.yml @@ -0,0 +1,10 @@ +# Računalniške komunikacije +# Ales.Jaklic@fri.uni-lj.si, Matjaz.Pancur@fri.uni-lj.si, Jure.Tuta@fri.uni-lj.si, Domen.Kosir@fri.uni-lj.si +# GNU/Linux, GNS3, Docker, VS Code, wireshark, Java JDK, Python 3 +dependencies: + - role: docker + - role: gns3 + - role: vscode + - role: wireshark + - role: jdk + diff --git a/roles/RK-63708/meta/main.yml b/roles/RK-63708/meta/main.yml new file mode 100644 index 0000000..bc7eefc --- /dev/null +++ b/roles/RK-63708/meta/main.yml @@ -0,0 +1,10 @@ +# Računalniške komunikacije +# Matjaz.Pancur@fri.uni-lj.si, Miha.Grohar@fri.uni-lj.si +# GNU/Linux, GNS3, Docker, VS Code, wireshark, Java JDK, Python 3 +dependencies: + - role: docker + - role: gns3 + - role: vscode + - role: wireshark + - role: jdk + diff --git a/roles/RPOI-90066/meta/main.yml b/roles/RPOI-90066/meta/main.yml new file mode 100644 index 0000000..c12471d --- /dev/null +++ b/roles/RPOI-90066/meta/main.yml @@ -0,0 +1,7 @@ +# Računalniška podpora oblikovanju I (ALUO) +# Matija.Marolt@fri.uni-lj.si +# SolidWorks +# Računalniška podpora oblikovanju I (ALUO) +# Matija.Marolt@fri.uni-lj.si +# SolidWorks + - role: solidworks diff --git a/roles/RZP-63523/meta/main.yml b/roles/RZP-63523/meta/main.yml new file mode 100644 index 0000000..edd03e3 --- /dev/null +++ b/roles/RZP-63523/meta/main.yml @@ -0,0 +1,8 @@ +# Računalniška zvočna produkcija +# Aleks.Huc@fri.uni-lj.si +# IntelliJ IDEA, Audacity, GIT +dependencies: + - role: git + - role: audacity + - role: IDEA + diff --git a/roles/SP-63255/meta/main.yml b/roles/SP-63255/meta/main.yml new file mode 100644 index 0000000..78247ce --- /dev/null +++ b/roles/SP-63255/meta/main.yml @@ -0,0 +1,7 @@ +# Spletno Programiranje +# dejan.lavbic@fri.uni-lj.si +# git, docker, Node.js + npm, Visual Studio Code +dependencies: + - role: git + - role: docker + - role: nodejs diff --git a/roles/ST-63727/meta/main.yml b/roles/ST-63727/meta/main.yml new file mode 100644 index 0000000..3b21ea9 --- /dev/null +++ b/roles/ST-63727/meta/main.yml @@ -0,0 +1,6 @@ +# Spletne tehnologije +# David.Jelenc@fri.uni-lj.si +# Windows, VS Code, XAMPP +dependencies: + - role: vscode + - role: xampp diff --git a/roles/SU-63519/meta/main.yml b/roles/SU-63519/meta/main.yml new file mode 100644 index 0000000..054ffc6 --- /dev/null +++ b/roles/SU-63519/meta/main.yml @@ -0,0 +1,5 @@ +# Strojno učenje +# matej.piculin@fri.uni-lj.si, Petar.Vracar@fri.uni-lj.si +# Windows, R, RStudio +dependencies: + - role: rstudio diff --git a/roles/TINR-63740/meta/main.yml b/roles/TINR-63740/meta/main.yml new file mode 100644 index 0000000..440a353 --- /dev/null +++ b/roles/TINR-63740/meta/main.yml @@ -0,0 +1,5 @@ +# Tehnologija iger in navidezna resničnost +# Bojan.Klemenc@fri.uni-lj.si +# macOS, Xcode +dependencies: + - role: xcode diff --git a/roles/TIS-63216/meta/main.yml b/roles/TIS-63216/meta/main.yml new file mode 100644 index 0000000..189307b --- /dev/null +++ b/roles/TIS-63216/meta/main.yml @@ -0,0 +1,6 @@ +# Teorija informacij in sistemov +# Davor.Sluga@fri.uni-lj.si +# Windows, VS Code, Python 3 +dependencies: + - role: vscode + - role: thonny diff --git a/roles/TUP-63226/meta/main.yml b/roles/TUP-63226/meta/main.yml new file mode 100644 index 0000000..ca4d031 --- /dev/null +++ b/roles/TUP-63226/meta/main.yml @@ -0,0 +1,13 @@ +# Tehnologija upravljanja podatkov +# Luka.Sajn@fri.uni-lj.si +# Windows, Power designer 12.5, Java JDK, Python 3, dotnet6 SDK, Jupyter Notebook, Eclipse, MySql Workbench, MySQL ODBC Connector, Notepad++ +dependencies: + - role: eclipse + - role: dotnet6 + - role: jupyter + - role: jdk + - role: powerdesigner + - role: mysql_workbench + - role: mysql-odbc-connector + - role: notepad++ + diff --git a/roles/UI-63720/meta/main.yml b/roles/UI-63720/meta/main.yml new file mode 100644 index 0000000..6079586 --- /dev/null +++ b/roles/UI-63720/meta/main.yml @@ -0,0 +1,5 @@ +# Umetna inteligenca +# Petar.Vracar@fri.uni-lj.si +# Windows, R, RStudio +dependencies: + - role: rstudio diff --git a/roles/UV-63721/meta/main.yml b/roles/UV-63721/meta/main.yml new file mode 100644 index 0000000..16df5ca --- /dev/null +++ b/roles/UV-63721/meta/main.yml @@ -0,0 +1,9 @@ +# Uporabniški vmesniki +# Ales.Smrdel@fri.uni-lj.si +# Windows, GNU/Linux, Java JDK, IntelliJ IDEA, javafx, SceneBuilder, X11 development, Wayland development, gtk+ development, glade, python +dependencies: + - role: jdk + - role: idea + - role: javafx + - role: gui_development + - role: scenebuilder diff --git a/roles/UZ-63267/meta/main.yml b/roles/UZ-63267/meta/main.yml new file mode 100644 index 0000000..0058748 --- /dev/null +++ b/roles/UZ-63267/meta/main.yml @@ -0,0 +1,5 @@ +# Umetno zaznavanje +# jon.muhovic@fe.uni-lj.si +# Python3, Python 3 +dependencies: + - role: python3 diff --git a/roles/VN-63728/meta/main.yml b/roles/VN-63728/meta/main.yml new file mode 100644 index 0000000..72630f8 --- /dev/null +++ b/roles/VN-63728/meta/main.yml @@ -0,0 +1,9 @@ +# Vhodno-izhodne naprave +# Robert.Rozman@fri.uni-lj.si +# Windows, Logisim Evolution, RAVINOR, WinIdea 9.12.256 (FRISMS kompatibilna), LTSpice +dependencies: + - role: logisim + - role: winidea-frisms + - role: winidea + - role: ltspice + diff --git a/roles/VP-63775/meta/main.yml b/roles/VP-63775/meta/main.yml new file mode 100644 index 0000000..4bf1623 --- /dev/null +++ b/roles/VP-63775/meta/main.yml @@ -0,0 +1,14 @@ +# Varnost Podatkov +# david.jelenc@fri.uni-lj.si +# Python (in standardno pripadajoča šara jupyter lab) in IntelliJ IDEA PyCharm CE +# PyCharm +# Java (kar je bilo lani bo ok) in IntelliJ IDEA CE +# maven +# git +dependencies: + - role: git + - role: maven + - role: idea + - role: jdk + - role: jupyter + - role: pycharm diff --git a/roles/VPSA-63735/meta/main.yml b/roles/VPSA-63735/meta/main.yml new file mode 100644 index 0000000..cbd44ba --- /dev/null +++ b/roles/VPSA-63735/meta/main.yml @@ -0,0 +1,6 @@ +# Vzporedni in porazdeljeni sistemi in algoritmi +# Davor.Sluga@fri.uni-lj.si, Rok.Cesnovar@fri.uni-lj.si +# Windows, VS Code, Build Tools for Visual Studio 2022 +dependencies: + - role: vscode + - role: visual_studio diff --git a/roles/VZR-63543/meta/main.yml b/roles/VZR-63543/meta/main.yml new file mode 100644 index 0000000..ae0e94c --- /dev/null +++ b/roles/VZR-63543/meta/main.yml @@ -0,0 +1,5 @@ +# Visoko zmogljivo računanje +# Davor.Sluga@fri.uni-lj.si +# Windows, VS Code +dependencies: + - role: vscode diff --git a/roles/adobe_cs/tasks/main.yml b/roles/adobe_cs/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/adobe_cs/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/adobe_cs/tasks/main_lin.yml b/roles/adobe_cs/tasks/main_lin.yml new file mode 100644 index 0000000..a033864 --- /dev/null +++ b/roles/adobe_cs/tasks/main_lin.yml @@ -0,0 +1 @@ +# TODO ugotovi, kaj narediti z Adobe CS diff --git a/roles/adobe_cs/tasks/main_win.yml b/roles/adobe_cs/tasks/main_win.yml new file mode 100644 index 0000000..a033864 --- /dev/null +++ b/roles/adobe_cs/tasks/main_win.yml @@ -0,0 +1 @@ +# TODO ugotovi, kaj narediti z Adobe CS diff --git a/roles/all_classes/meta/main.yml b/roles/all_classes/meta/main.yml new file mode 100644 index 0000000..8c8121f --- /dev/null +++ b/roles/all_classes/meta/main.yml @@ -0,0 +1,62 @@ +dependencies: + - role: fri_base + - role: AAHRP-63263 + - role: APS1-63279 + - role: ARP1-63545C + - role: BMO-63259 + - role: DF-63530 + - role: DN-63260 + - role: DPS-63744 + - role: DV-63718 + - role: EP-63249 + - role: FP-63507 + - role: GO-63715 + - role: IS-63714 + - role: IVZ-63521 + - role: KCR-63550 + - role: KPOV-63716 + - role: KRV-63528 + - role: MRO-63257 + - role: MV-63288 + - role: NDN-63729 + - role: NM-63522 + - role: NPMP-63512 + - role: NRG-63553 + - role: OBSS-63514 + - role: ODV-63204 + - role: OO-63271 + - role: OR-63717 + - role: ORS-63218 + - role: OS-63709 + - role: OS-63741 + - role: OUI-63214 + - role: P2-63278 + - role: P2-63706 + - role: PA-63737 + - role: PB2-63713 + - role: PB-63707 + - role: PJC-63769 + - role: PPJ-63220 + - role: PS-63261 + - role: PSP-63287 + - role: PUI-63768 + - role: RA-63703 + - role: RGTI-63269 + - role: RIS-63252 + - role: RK-63209 + - role: RK-63708 + - role: RPOI-90066 + - role: RZP-63523 + - role: SP-63255 + - role: ST-63727 + - role: SU-63519 + - role: TINR-63740 + - role: TIS-63216 + - role: TUP-63226 + - role: UI-63720 + - role: UV-63721 + - role: UZ-63267 + - role: VN-63728 + - role: VP-63775 + - role: VPSA-63735 + - role: VZR-63543 diff --git a/roles/android_studio/tasks/main.yml b/roles/android_studio/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/android_studio/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/android_studio/tasks/main_lin.yml b/roles/android_studio/tasks/main_lin.yml new file mode 100644 index 0000000..da7ceee --- /dev/null +++ b/roles/android_studio/tasks/main_lin.yml @@ -0,0 +1,13 @@ +- name: Install Android Studio + block: + - name: Create destination for Android Studio + file: + path: /opt/Android_Studio + state: directory + - name: Download and unpack Android Studio + unarchive: + # src: https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2021.3.1.16/android-studio-2021.3.1.16-linux.tar.gz + src: https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2022.3.1.19/android-studio-2022.3.1.19-linux.tar.gz + creates: /opt/Android_Studio/android-studio/build.txt + dest: /opt/Android_Studio + remote_src: yes diff --git a/roles/android_studio/tasks/main_win.yml b/roles/android_studio/tasks/main_win.yml new file mode 100644 index 0000000..6a85812 --- /dev/null +++ b/roles/android_studio/tasks/main_win.yml @@ -0,0 +1,76 @@ +- name: Set Android Studio version + set_fact: + sdk_path: C:\android-sdk + studio_version: "2021.3.1.16" + tools_version: "8512546_latest" + +- name: Check Android Studio tools + win_stat: + 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" + dest: C:\ + + - name: Extract Android Studio tools + win_unzip: + src: "C:\\commandlinetools-win-{{ tools_version }}.zip" + dest: "{{ sdk_path }}\\cmdline-tools" + delete_archive: yes + +- name: Accept Android SDK licenses + win_shell: sh -c "yes | /c/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager.bat --licenses" + +- name: Install Android SDK + win_shell: | + {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "build-tools;33.0.0" "cmdline-tools;latest" "emulator" "ndk-bundle" "ndk;25.1.8937393" "platform-tools" "platforms;android-33" "sources;android-33" "system-images;android-33;google_apis;arm64-v8a" "system-images;android-33;google_apis;x86_64" + +- name: Install Android Studio + win_package: + path: "https://redirector.gvt1.com/edgedl/android/studio/install/{{ studio_version }}/android-studio-{{ studio_version }}-windows.exe" + arguments: /S /AllUsers + expected_return_code: [0, 1223, 3010] + creates_path: "%ProgramFiles%\\Android\\Android Studio\\bin\\studio64.exe" + +- name: Create Android Studio data directory + win_file: + path: D:\.android + state: directory + +- name: Set Android Studio environment variables + win_environment: + level: machine + variables: + ANDROID_HOME: "{{ sdk_path }}" + ANDROID_PREFS_ROOT: D:\ + GRADLE_USER_HOME: D:\.gradle + +- name: Check HAXM install status + win_stat: + path: "%ProgramFiles%\\Intel\\HAXM" + register: file + +- when: not file.stat.exists + block: + - name: Download HAXM + win_get_url: + url: https://github.com/intel/haxm/releases/download/v7.7.1/haxm-windows_v7_7_1.zip + dest: C:\ + register: download + + - name: Unzip HAXM + win_unzip: + src: "{{ download.dest }}" + dest: C:\haxm + + - name: Install HAXM + win_command: C:\haxm\silent_install.bat + + - name: Remove temporaries + win_file: + path: C:\haxm + state: absent diff --git a/roles/arduino/tasks/main.yml b/roles/arduino/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/arduino/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/arduino/tasks/main_lin.yml b/roles/arduino/tasks/main_lin.yml new file mode 100644 index 0000000..1a7c6f5 --- /dev/null +++ b/roles/arduino/tasks/main_lin.yml @@ -0,0 +1,10 @@ +- name: create destination + file: + path: /opt/Arduino + state: directory + +- name: unpack Arduino + unarchive: + src: https://downloads.arduino.cc/arduino-ide/arduino-ide_2.0.0_Linux_64bit.zip + dest: /opt/Arduino + remote_src: yes diff --git a/roles/arduino/tasks/main_win.yml b/roles/arduino/tasks/main_win.yml new file mode 100644 index 0000000..566f229 --- /dev/null +++ b/roles/arduino/tasks/main_win.yml @@ -0,0 +1,7 @@ +- name: Install Arduino IDE + win_package: + path: https://downloads.arduino.cc/arduino-ide/arduino-ide_2.0.0_Windows_64bit.exe + arguments: /S /AllUsers + creates_path: "%ProgramFiles%\\Arduino IDE\\Arduino IDE.exe" + +# TODO check if anything else is needed (esp8266com)? diff --git a/roles/audacity/tasks/main.yml b/roles/audacity/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/audacity/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/audacity/tasks/main_lin.yml b/roles/audacity/tasks/main_lin.yml new file mode 100644 index 0000000..1481dd7 --- /dev/null +++ b/roles/audacity/tasks/main_lin.yml @@ -0,0 +1,5 @@ +- name: Install Audacity + apt: + name: audacity + state: latest + diff --git a/roles/audacity/tasks/main_win.yml b/roles/audacity/tasks/main_win.yml new file mode 100644 index 0000000..bd11fd6 --- /dev/null +++ b/roles/audacity/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install Audacity + win_chocolatey: + name: audacity diff --git a/roles/bayesfusion/tasks/main.yml b/roles/bayesfusion/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/bayesfusion/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/bayesfusion/tasks/main_lin.yml b/roles/bayesfusion/tasks/main_lin.yml new file mode 100644 index 0000000..d6903b4 --- /dev/null +++ b/roles/bayesfusion/tasks/main_lin.yml @@ -0,0 +1,10 @@ +# TODO install BayesFusion.yml +# https://download.bayesfusion.com/files.html?category=Academia#GeNIe +- name: Install Wine + apt: + name: wine-development + state: latest +- name: Install Wine binfmt support + apt: + name: wine-binfmt + state: latest diff --git a/roles/bayesfusion/tasks/main_win.yml b/roles/bayesfusion/tasks/main_win.yml new file mode 100644 index 0000000..4dfbd99 --- /dev/null +++ b/roles/bayesfusion/tasks/main_win.yml @@ -0,0 +1,5 @@ +- name: Install BayesFusion + win_package: + path: "{{ installers }}\\genie-academic-setup-4.0.1922-x86.exe" + arguments: /VerySilent + creates_path: "%ProgramFiles(x86)%\\GeNIe 4.0 Academic\\genie.exe" diff --git a/roles/blender/tasks/main.yml b/roles/blender/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/blender/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/blender/tasks/main_lin.yml b/roles/blender/tasks/main_lin.yml new file mode 100644 index 0000000..7a3281e --- /dev/null +++ b/roles/blender/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install blender + apt: + name: blender + state: latest diff --git a/roles/blender/tasks/main_win.yml b/roles/blender/tasks/main_win.yml new file mode 100644 index 0000000..8985fd2 --- /dev/null +++ b/roles/blender/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install Blender + win_package: + path: https://ftp.nluug.nl/pub/graphics/blender/release/Blender3.3/blender-3.3.0-windows-x64.msi diff --git a/roles/c_development/tasks/main.yml b/roles/c_development/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/c_development/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/c_development/tasks/main_lin.yml b/roles/c_development/tasks/main_lin.yml new file mode 100644 index 0000000..b201e3d --- /dev/null +++ b/roles/c_development/tasks/main_lin.yml @@ -0,0 +1,10 @@ +- name: Install C/C++ development tools + apt: + name: + - gcc + - make + - automake + - g++ + - gdb + - cmake + state: latest diff --git a/roles/c_development/tasks/main_win.yml b/roles/c_development/tasks/main_win.yml new file mode 100644 index 0000000..88cfb73 --- /dev/null +++ b/roles/c_development/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Do not install C development tools + debug: + msg: "Do not install C development tools" diff --git a/roles/chrome/tasks/main.yml b/roles/chrome/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/chrome/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/chrome/tasks/main_lin.yml b/roles/chrome/tasks/main_lin.yml new file mode 100644 index 0000000..21a141a --- /dev/null +++ b/roles/chrome/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Do NOT install Chrome + apt: + name: chromium + state: latest diff --git a/roles/chrome/tasks/main_win.yml b/roles/chrome/tasks/main_win.yml new file mode 100644 index 0000000..221c6ce --- /dev/null +++ b/roles/chrome/tasks/main_win.yml @@ -0,0 +1,10 @@ +- name: Install Chrome + win_chocolatey: + name: googlechrome + +- name: Disable Chrome updates + win_regedit: + path: HKLM:\SOFTWARE\Policies\Google\Update + name: AutoUpdateCheckPeriodMinutes + type: dword + data: 0 diff --git a/roles/cmake/tasks/main.yml b/roles/cmake/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/cmake/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/cmake/tasks/main_lin.yml b/roles/cmake/tasks/main_lin.yml new file mode 100644 index 0000000..30bebe4 --- /dev/null +++ b/roles/cmake/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install cmake + apt: + name: cmake + state: latest diff --git a/roles/cmake/tasks/main_win.yml b/roles/cmake/tasks/main_win.yml new file mode 100644 index 0000000..a678bdf --- /dev/null +++ b/roles/cmake/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Do not install cmake + debug: + msg: "Do not install cmake" diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/docker/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/docker/tasks/main_lin.yml b/roles/docker/tasks/main_lin.yml new file mode 100644 index 0000000..7daef92 --- /dev/null +++ b/roles/docker/tasks/main_lin.yml @@ -0,0 +1,23 @@ + +- name: "Install Podman" + apt: + name: podman + state: latest + +- name: "Install containerd" + apt: + name: containerd + state: latest + +- name: "Install docker" + apt: + name: docker + state: latest + +- name: "Install docker-compose" + apt: + name: docker-compose + state: latest + + +# TODO uredi skupine, da bodo studentje lahko docker tudi uporabljali diff --git a/roles/docker/tasks/main_win.yml b/roles/docker/tasks/main_win.yml new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/roles/docker/tasks/main_win.yml @@ -0,0 +1 @@ +# TODO diff --git a/roles/dotnet6/tasks/main.yml b/roles/dotnet6/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/dotnet6/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/dotnet6/tasks/main_lin.yml b/roles/dotnet6/tasks/main_lin.yml new file mode 100644 index 0000000..08fc2da --- /dev/null +++ b/roles/dotnet6/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: "Install Dotnet 6.0" + apt: + name: dotnet6 + state: latest diff --git a/roles/dotnet6/tasks/main_win.yml b/roles/dotnet6/tasks/main_win.yml new file mode 100644 index 0000000..62e8167 --- /dev/null +++ b/roles/dotnet6/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install .NET 6 SDK + win_chocolatey: + name: dotnet-6.0-sdk diff --git a/roles/eclipse/tasks/main.yml b/roles/eclipse/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/eclipse/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/eclipse/tasks/main_lin.yml b/roles/eclipse/tasks/main_lin.yml new file mode 100644 index 0000000..1bba73f --- /dev/null +++ b/roles/eclipse/tasks/main_lin.yml @@ -0,0 +1,16 @@ +- name: Install Eclipse snap + community.general.snap: + name: + - eclipse + classic: true +# - name: Install Eclipse from tarball +# block: +# - name: Create destination for Eclipse +# file: +# path: /opt/Eclipse +# state: directory +# - name: Download and unpack Eclipse +# unarchive: +# src: https://www.eclipse.org/downloads/download.php?file=/oomph/epp/2022-09/R/eclipse-inst-jre-linux64.tar.gz +# dest: /opt/Eclipse +# remote_src: yes diff --git a/roles/eclipse/tasks/main_win.yml b/roles/eclipse/tasks/main_win.yml new file mode 100644 index 0000000..064d5fa --- /dev/null +++ b/roles/eclipse/tasks/main_win.yml @@ -0,0 +1,14 @@ +- name: Set Eclipse version + set_fact: + target_version: "4.25" + +- name: Install Eclipse + win_chocolatey: + name: eclipse + version: "{{ target_version }}" + +- name: Set up default directories for Eclipse + win_lineinfile: + path: "%ProgramFiles%\\Eclipse {{ target_version }}\\eclipse\\eclipse.ini" + regexp: "osgi.instance.area.default" + line: "-Dosgi.instance.area.default=H:/Documents/eclipse-workspace" diff --git a/roles/emacs/tasks/main.yml b/roles/emacs/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/emacs/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/emacs/tasks/main_lin.yml b/roles/emacs/tasks/main_lin.yml new file mode 100644 index 0000000..ee13e14 --- /dev/null +++ b/roles/emacs/tasks/main_lin.yml @@ -0,0 +1,14 @@ +- name: Install emacs + apt: + name: emacs + state: latest + +- name: Install emacs-nox + apt: + name: emacs-nox + state: latest + +- name: Install emacs-gtk + apt: + name: emacs-gtk + state: latest diff --git a/roles/emacs/tasks/main_win.yml b/roles/emacs/tasks/main_win.yml new file mode 100644 index 0000000..6d177a0 --- /dev/null +++ b/roles/emacs/tasks/main_win.yml @@ -0,0 +1,4 @@ +- name: Install Emacs + win_chocolatey: + name: emacs.install + state: present diff --git a/roles/firefox/tasks/main.yml b/roles/firefox/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/firefox/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/firefox/tasks/main_lin.yml b/roles/firefox/tasks/main_lin.yml new file mode 100644 index 0000000..c80124a --- /dev/null +++ b/roles/firefox/tasks/main_lin.yml @@ -0,0 +1,22 @@ +- name: Add Firefox not-a-snap repository + block: + - name: Pin Firefox PPA package priority + template: + src: mozilla-firefox-apt-preferences + dest: /etc/apt/preferences.d/mozilla-firefox + - name: Enable Firefox unattended upgrades + 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: + name: + - firefox + state: latest diff --git a/roles/firefox/tasks/main_win.yml b/roles/firefox/tasks/main_win.yml new file mode 100644 index 0000000..53987a9 --- /dev/null +++ b/roles/firefox/tasks/main_win.yml @@ -0,0 +1,26 @@ +- name: Install Firefox + win_chocolatey: + name: firefox +- name: Create Firefox policy directory + win_file: + dest: C:\Program Files\Mozilla Firefox\distribution + state: directory +- name: Set Firefox policies + copy: + dest: C:\Program Files\Mozilla Firefox\distribution\policies.json + content: | + { + "policies": { + "DisableAppUpdate": true, + "DisableSystemAddonUpdate": true, + "DisableTelemetry": true, + "UserMessaging": { + "WhatsNew": false, + "ExtensionRecommendations": false, + "FeatureRecommendations": false, + "UrlbarInterventions": false, + "SkipOnboarding": true, + "MoreFromMozilla": false + } + } + } diff --git a/roles/fri_base/meta/main.yml b/roles/fri_base/meta/main.yml new file mode 100644 index 0000000..f868c15 --- /dev/null +++ b/roles/fri_base/meta/main.yml @@ -0,0 +1,10 @@ +dependencies: + - role: firefox + - role: libreoffice + - role: 7zip + - role: chrome + - role: msys2 + - role: pycharm # not required by anyone but used by everyone + - role: sublime-text + - role: sumatrapdf + - role: vlc diff --git a/roles/fri_base/tasks/main.yml b/roles/fri_base/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/fri_base/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/fri_base/tasks/main_lin.yml b/roles/fri_base/tasks/main_lin.yml new file mode 100644 index 0000000..f3eb5f3 --- /dev/null +++ b/roles/fri_base/tasks/main_lin.yml @@ -0,0 +1,151 @@ +- name: Install firefox + - include_tasks: firefox.yml + +- name: Install Libre Office + - include_tasks: libreoffice.yml + +- name: Install 7zip + - include_tasks: 7zip.yml + +- name: Install generally useful packages + apt: + name: + - i3 + - sway + - vlc + - mpv + - ffmpeg + - emacs + - kwrite + - kate + - krita + - blender + - inkscape + - pcmanfm-qt + - qutebrowser + - chromium-browser + - firefox + - qemu + - qemu-kvm + - qemu-utils + - virt-manager + - wine-development + - dosbox + - webext-ublock-origin-chromium + - webext-ublock-origin-firefox + - nethack-console + - zsh + - tmux + - screen + - curl + - git-gui + - git-cola + - kdiff3 + - thonny + - ttf-mscorefonts-installer + - libhivex-bin + - overlayroot + - nfs-common + - cifs-utils + state: latest + update_cache: yes + +- name: Remove broken or unnecessary packages + apt: + name: + - xfce4-screensaver + - xscreensaver + state: absent + +- name: Set up additional groups for students + vars: + additional_groups: + - wireshark + - kvm + - dialout + - libvirt + - vboxusers + - ubridge + - docker + block: + - name: create user@.service.d + file: + path: /etc/systemd/system/user@.service.d + state: directory + - name: override groups in systemd + template: + src: systemd_group_override.conf + dest: /etc/systemd/system/user@.service.d/override.conf + - name: create /etc/security/group.conf + template: + src: security_group.conf + dest: /etc/security/group.conf + - name: create pam config for libpam_group + template: + src: pamconfig_groups + dest: /usr/share/pam-configs/groups + - name: enable libpam_group + shell: pam-auth-update --enable groups + +- name: Set default keyboard layout to SI + template: + src: default_keyboard + dest: /etc/default/keyboard + +- name: Add mount - C + mount: + boot: true + fstype: ntfs3 + src: UUID=A09E30889E30594C + path: /mnt/C + state: mounted + opts: defaults,nofail + +- name: Add mount - D + mount: + boot: true + fstype: ntfs3 + src: "LABEL=D:" + path: /mnt/D + state: mounted + opts: defaults,nofail + +- name: Add mount - F + mount: + boot: true + fstype: ntfs3 + src: "LABEL=F:" + path: /mnt/F + state: mounted + opts: defaults,nofail + +- name: Add mount - partimag + mount: + boot: true + fstype: nfs + src: "10.32.254.16:/srv/nfs/clonezilla_images" + path: /home/partimag + state: mounted + opts: defaults,nofail + +- name: Add mount - ucilnice_d + mount: + boot: true + fstype: cifs + src: "//ucilnicesmb.fri1.uni-lj.si/ucilnice_d" + path: /mnt/ucilnice_d + state: mounted + opts: guest,soft,nofail + +- name: Set time to local RTC + shell: "timedatectl set-local-rtc 1 --adjust-system-clock" + +- name: Install ethtool + apt: + name: ethtool + state: latest + +- name: Add udev rule to enable wake-on-lan for ethernet interfaces + copy: + dest: /etc/udev/rules.d/ + src: 99-wakeonlan.rules diff --git a/roles/fri_base/tasks/main_win.yml b/roles/fri_base/tasks/main_win.yml new file mode 100644 index 0000000..5b3db8d --- /dev/null +++ b/roles/fri_base/tasks/main_win.yml @@ -0,0 +1,12 @@ +- include_tasks: 7zip.yml +- include_tasks: chrome.yml +- include_tasks: firefox.yml +- include_tasks: libreoffice.yml +- include_tasks: msys2.yml +- include_tasks: pycharm.yml # not required by anyone but used by everyone +- include_tasks: sublime-text.yml +- include_tasks: sumatrapdf.yml +- include_tasks: vlc.yml +- name: Set timezone + win_timezone: + timezone: Central Europe Standard Time diff --git a/roles/gcc-arm/tasks/main.yml b/roles/gcc-arm/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/gcc-arm/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/gcc-arm/tasks/main_lin.yml b/roles/gcc-arm/tasks/main_lin.yml new file mode 100644 index 0000000..fe8c316 --- /dev/null +++ b/roles/gcc-arm/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: install GCC for ARM + apt: + name: gcc-12-arm-linux-gnueabi + state: latest diff --git a/roles/gcc-arm/tasks/main_win.yml b/roles/gcc-arm/tasks/main_win.yml new file mode 100644 index 0000000..a42f775 --- /dev/null +++ b/roles/gcc-arm/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Do not install gcc for arm + debug: + msg: "Do not install gcc for arm" diff --git a/roles/gedit/tasks/main.yml b/roles/gedit/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/gedit/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/gedit/tasks/main_lin.yml b/roles/gedit/tasks/main_lin.yml new file mode 100644 index 0000000..7df7041 --- /dev/null +++ b/roles/gedit/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install Gedit + apt: + name: gedit + state: latest diff --git a/roles/gedit/tasks/main_win.yml b/roles/gedit/tasks/main_win.yml new file mode 100644 index 0000000..072e835 --- /dev/null +++ b/roles/gedit/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Do not install GEdit + debug: + msg: "Do not install GEdit" diff --git a/roles/gimp/tasks/main.yml b/roles/gimp/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/gimp/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/gimp/tasks/main_lin.yml b/roles/gimp/tasks/main_lin.yml new file mode 100644 index 0000000..5461c3e --- /dev/null +++ b/roles/gimp/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install GIMP + apt: + name: gimp + state: latest diff --git a/roles/gimp/tasks/main_win.yml b/roles/gimp/tasks/main_win.yml new file mode 100644 index 0000000..fa361a0 --- /dev/null +++ b/roles/gimp/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install GIMP + win_chocolatey: + name: gimp diff --git a/roles/git/tasks/main.yml b/roles/git/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/git/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/git/tasks/main_lin.yml b/roles/git/tasks/main_lin.yml new file mode 100644 index 0000000..5a5a1df --- /dev/null +++ b/roles/git/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install git + apt: + name: git + state: latest diff --git a/roles/git/tasks/main_win.yml b/roles/git/tasks/main_win.yml new file mode 100644 index 0000000..b08c7c9 --- /dev/null +++ b/roles/git/tasks/main_win.yml @@ -0,0 +1,8 @@ +- name: Install git + win_chocolatey: + name: git.install + package_params: /GitAndUnixToolsOnPath + +- name: Install git-extensions + win_chocolatey: + name: gitextensions, kdiff3 diff --git a/roles/gns3/tasks/main.yml b/roles/gns3/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/gns3/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/gns3/tasks/main_lin.yml b/roles/gns3/tasks/main_lin.yml new file mode 100644 index 0000000..df2807d --- /dev/null +++ b/roles/gns3/tasks/main_lin.yml @@ -0,0 +1,15 @@ +- name: Add GNS3 repository + apt_repository: + repo: ppa:gns3/ppa + state: present + update_cache: True + validate_certs: False +- name: Install gns3 server + ansible.builtin.apt: + name: gns3-server + state: latest +- name: Install gns3 GUI + ansible.builtin.apt: + name: gns3-gui + state: latest + diff --git a/roles/gns3/tasks/main_win.yml b/roles/gns3/tasks/main_win.yml new file mode 100644 index 0000000..2cc5ce3 --- /dev/null +++ b/roles/gns3/tasks/main_win.yml @@ -0,0 +1,4 @@ +- name: GNS3 na Windows ne deluje + debug: + msg: "GNS3 na Windows zaenkrat ne vklapljamo" + diff --git a/roles/golang/tasks/main.yml b/roles/golang/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/golang/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/golang/tasks/main_lin.yml b/roles/golang/tasks/main_lin.yml new file mode 100644 index 0000000..e699dba --- /dev/null +++ b/roles/golang/tasks/main_lin.yml @@ -0,0 +1,5 @@ +- name: Install the GO programming language + apt: + name: golang + state: latest + diff --git a/roles/golang/tasks/main_win.yml b/roles/golang/tasks/main_win.yml new file mode 100644 index 0000000..3065ec5 --- /dev/null +++ b/roles/golang/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install the GO programming language + win_chocolatey: + name: golang diff --git a/roles/gui_development/tasks/main.yml b/roles/gui_development/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/gui_development/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/gui_development/tasks/main_lin.yml b/roles/gui_development/tasks/main_lin.yml new file mode 100644 index 0000000..a47bfc0 --- /dev/null +++ b/roles/gui_development/tasks/main_lin.yml @@ -0,0 +1,35 @@ +- name: Install X11 development + apt: + name: + - libx11-dev + - libxext-dev + - x11-utils + state: latest + +- name: Install GTK development + apt: + name: + - libgtk-4-dev + - libgtk-3-dev + - libgtkmm-3.0-dev + state: latest + +- name: Install Wayland development + apt: + name: + - libwayland-dev + - libwlroots-dev + - qt6-wayland-dev + - qt6-wayland-dev-tools + - weston + state: latest + +- name: Install Glade + apt: + name: glade + state: latest + +- name: Install QT Creator + apt: + name: qtcreator + state: latest diff --git a/roles/gui_development/tasks/main_win.yml b/roles/gui_development/tasks/main_win.yml new file mode 100644 index 0000000..8276898 --- /dev/null +++ b/roles/gui_development/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Do not install GUI devel tools + debug: + msg: "Do not install GUI development libraries and tools" diff --git a/roles/haskell/tasks/main.yml b/roles/haskell/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/haskell/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/haskell/tasks/main_lin.yml b/roles/haskell/tasks/main_lin.yml new file mode 100644 index 0000000..a5f4818 --- /dev/null +++ b/roles/haskell/tasks/main_lin.yml @@ -0,0 +1,14 @@ +- name: install Haskell platform + apt: + name: haskell-platform + state: latest + +- name: install Haskell Tool Stack + apt: + name: haskell-stack + state: latest + +- name: install Haskell compiler + apt: + name: ghc + state: latest diff --git a/roles/haskell/tasks/main_win.yml b/roles/haskell/tasks/main_win.yml new file mode 100644 index 0000000..da6988e --- /dev/null +++ b/roles/haskell/tasks/main_win.yml @@ -0,0 +1,25 @@ +- name: Check Haskell install status + win_stat: + path: C:\ghcup\bin\ghc.exe + register: file + +- when: not file.stat.exists + block: + - name: Download Haskell + win_get_url: + url: "https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1" + dest: 'C:\' + register: download + + - name: Install Haskell + win_command: powershell.exe {{ download.dest }} -InBash -ExistingMsys2Dir C:\msys64 + + - name: Add Haskell to PATH + win_path: + elements: + C:\ghcup\bin + + - name: Remove temporary files + win_file: + path: "{{ download.dest }}" + state: absent diff --git a/roles/idea/tasks/main.yml b/roles/idea/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/idea/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/idea/tasks/main_lin.yml b/roles/idea/tasks/main_lin.yml new file mode 100644 index 0000000..89023cd --- /dev/null +++ b/roles/idea/tasks/main_lin.yml @@ -0,0 +1,12 @@ +- name: Install IDEA + block: + - name: Create destination for JetBrains IDEA + file: + path: /opt/IDEA + state: directory + - name: Download and unpack JetBrains IDEA + unarchive: + src: https://download.jetbrains.com/idea/ideaIC-2023.2.1.tar.gz + dest: /opt/IDEA + creates: /opt/IDEA/idea-IC-232.9559.62/build.txt + remote_src: yes diff --git a/roles/idea/tasks/main_win.yml b/roles/idea/tasks/main_win.yml new file mode 100644 index 0000000..2c6cf1b --- /dev/null +++ b/roles/idea/tasks/main_win.yml @@ -0,0 +1,9 @@ +- name: Set IDEA version + set_fact: + target_version: "2023.2.1" + +- name: Install IDEA + win_package: + path: "https://download.jetbrains.com/idea/ideaIC-{{ target_version }}.exe" + arguments: /S + creates_path: "%ProgramFiles(x86)%\\JetBrains\\IntelliJ IDEA Community Edition {{ target_version }}\\bin\\idea64.exe" diff --git a/roles/inkscape/tasks/main.yml b/roles/inkscape/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/inkscape/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/inkscape/tasks/main_lin.yml b/roles/inkscape/tasks/main_lin.yml new file mode 100644 index 0000000..bb5f749 --- /dev/null +++ b/roles/inkscape/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install Inkscape + apt: + name: inkscape + state: latest diff --git a/roles/inkscape/tasks/main_win.yml b/roles/inkscape/tasks/main_win.yml new file mode 100644 index 0000000..d8621f6 --- /dev/null +++ b/roles/inkscape/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install Inkscape + win_chocolatey: + name: inkscape diff --git a/roles/javafx/tasks/main.yml b/roles/javafx/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/javafx/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/javafx/tasks/main_lin.yml b/roles/javafx/tasks/main_lin.yml new file mode 100644 index 0000000..dd530f3 --- /dev/null +++ b/roles/javafx/tasks/main_lin.yml @@ -0,0 +1,8 @@ +- name: Install JavaFX + apt: + name: openjfx + state: latest +- name: Install JavaFX source + apt: + name: openjfx-source + state: latest diff --git a/roles/javafx/tasks/main_win.yml b/roles/javafx/tasks/main_win.yml new file mode 100644 index 0000000..9bc5d80 --- /dev/null +++ b/roles/javafx/tasks/main_win.yml @@ -0,0 +1,20 @@ +- name: Check javafx install + win_find: + paths: "C:\\Program Files\\Java" + patterns: ['javafx-sdk-*'] + file_type: directory + register: install + +- when: install.matched == 0 + block: + - name: Download javafx + win_get_url: + url: https://download2.gluonhq.com/openjfx/19/openjfx-19_windows-x64_bin-sdk.zip + dest: C:\ + register: download + + - name: Install javafx + win_unzip: + src: "{{ download.dest }}" + dest: "%ProgramFiles%\\Java" + delete_archive: yes diff --git a/roles/jdk/tasks/main.yml b/roles/jdk/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/jdk/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/jdk/tasks/main_lin.yml b/roles/jdk/tasks/main_lin.yml new file mode 100644 index 0000000..c393c2f --- /dev/null +++ b/roles/jdk/tasks/main_lin.yml @@ -0,0 +1,32 @@ +- name: Install OpenJDK 18 + apt: + name: openjdk-18-jdk + state: latest + +- name: Install OpenJDK 19 + apt: + name: openjdk-19-jdk + state: latest + +- name: Install OpenJDK 11 + apt: + name: openjdk-11-jdk + state: latest + +- name: Install default JDK + apt: + name: default-jdk + state: latest + + +- name: Install Oracle Java dependencies + apt: + name: + - libc6-i386 + - libc6-x32 + state: latest + +- name: Install Oracle JDK 20 + apt: + deb: "https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.deb" + diff --git a/roles/jdk/tasks/main_win.yml b/roles/jdk/tasks/main_win.yml new file mode 100644 index 0000000..c3e3dc6 --- /dev/null +++ b/roles/jdk/tasks/main_win.yml @@ -0,0 +1,29 @@ +- name: Install Oracle JDK + win_package: + path: https://download.oracle.com/java/20/latest/jdk-20_windows-x64_bin.msi + arguments: INSTALLLEVEL=3 + +- name: Find Java version + win_reg_stat: + path: HKLM:\SOFTWARE\JavaSoft\JDK + name: CurrentVersion + register: reg + +- name: Find Java home + win_reg_stat: + path: "HKLM:\\SOFTWARE\\JavaSoft\\JDK\\{{ reg['value'] }}" + name: JavaHome + register: reg + +- name: Set JAVA_HOME + win_environment: + name: JAVA_HOME + value: "{{ reg['raw_value'] }}" + level: machine + +- name: Disable Java updates + win_regedit: + path: HKLM:\SOFTWARE\WOW6432Node\JavaSoft\Java Update\Policy + name: EnableJavaUpdate + type: dword + data: 0 diff --git a/roles/jlink/tasks/main.yml b/roles/jlink/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/jlink/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/jlink/tasks/main_lin.yml b/roles/jlink/tasks/main_lin.yml new file mode 100644 index 0000000..2d7cb3f --- /dev/null +++ b/roles/jlink/tasks/main_lin.yml @@ -0,0 +1,2 @@ +apt: + deb: https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb diff --git a/roles/julia/tasks/main.yml b/roles/julia/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/julia/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/julia/tasks/main_lin.yml b/roles/julia/tasks/main_lin.yml new file mode 100644 index 0000000..0d9c800 --- /dev/null +++ b/roles/julia/tasks/main_lin.yml @@ -0,0 +1,12 @@ +- name: Install Julia from tarball + block: + - name: Create destination for Julia + file: + path: /opt/Julia + state: directory + - name: Download and unpack Eclipse + unarchive: + src: https://julialang-s3.julialang.org/bin/linux/x64/1.9/julia-1.9.3-linux-x86_64.tar.gz + dest: /opt/Julia + remote_src: yes + diff --git a/roles/julia/tasks/main_win.yml b/roles/julia/tasks/main_win.yml new file mode 100644 index 0000000..ed2164a --- /dev/null +++ b/roles/julia/tasks/main_win.yml @@ -0,0 +1,4 @@ +- name: Install Julia + win_package: + path: https://julialang-s3.julialang.org/bin/winnt/x64/1.9/julia-1.9.3-win64.exe + arguments: /VerySilent /AllUsers diff --git a/roles/jupyter/tasks/main.yml b/roles/jupyter/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/jupyter/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/jupyter/tasks/main_lin.yml b/roles/jupyter/tasks/main_lin.yml new file mode 100644 index 0000000..c0dc1ed --- /dev/null +++ b/roles/jupyter/tasks/main_lin.yml @@ -0,0 +1,16 @@ +- name: Install Jupyter + apt: + name: jupyter + state: latest +- name: Install Jupyter Console + apt: + name: jupyter-console + state: latest +- name: Install Jupyter QT Console + apt: + name: jupyter-qtconsole + state: latest +- name: Install Jupyter Notebook + apt: + name: jupyter-notebook + state: latest diff --git a/roles/jupyter/tasks/main_win.yml b/roles/jupyter/tasks/main_win.yml new file mode 100644 index 0000000..7a3001d --- /dev/null +++ b/roles/jupyter/tasks/main_win.yml @@ -0,0 +1,8 @@ +- name: Install Jupyter Notebook + win_command: pip install jupyter jupyterlab + +- name: Create Jupyter Notebook shortcut + win_shortcut: + dest: "C:\\Users\\Public\\Desktop\\Jupyter Notebook.lnk" + src: cmd.exe + arguments: /k jupyter notebook diff --git a/roles/libreoffice/tasks/main.yml b/roles/libreoffice/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/libreoffice/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/libreoffice/tasks/main_lin.yml b/roles/libreoffice/tasks/main_lin.yml new file mode 100644 index 0000000..c478e25 --- /dev/null +++ b/roles/libreoffice/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install LibreOffice + apt: + name: libreoffice + state: latest diff --git a/roles/libreoffice/tasks/main_win.yml b/roles/libreoffice/tasks/main_win.yml new file mode 100644 index 0000000..0a9b610 --- /dev/null +++ b/roles/libreoffice/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install LibreOffice + win_chocolatey: + name: libreoffice diff --git a/roles/linroom/tasks/main.yml b/roles/linroom/tasks/main.yml index 54eafb9..e69de29 100644 --- a/roles/linroom/tasks/main.yml +++ b/roles/linroom/tasks/main.yml @@ -1,2 +0,0 @@ -- import_tasks: fri_base.yml -- import_tasks: all_classes.yml diff --git a/roles/linroom_ad/tasks/main.yml b/roles/linroom_ad/tasks/main.yml index 2cc4095..55203f6 100644 --- a/roles/linroom_ad/tasks/main.yml +++ b/roles/linroom_ad/tasks/main.yml @@ -1,41 +1,4 @@ -- name: Install sssd + samba + keyutil - apt: - name: - - sssd - - sssd-ad - - realmd - - samba-common-bin - - smbclient - - cifs-utils - - smbclient - state: latest -- name: Install kerberos utils - apt: - name: - - keyutils - - krb5-user -- name: Install PAM modules - apt: - name: libpam-modules - state: latest -- 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: Join using realmd - expect: - command: realm join --user=ad.join@FRI1.UNI-LJ.SI --computer-ou=OU=Ucilnice FRI1.UNI-LJ.SI - responses: - (?i)Password: "{{ad_join_password}}" - ignore_errors: yes - when: realm_list_results.stdout == "" - -- name: Copy sssd config - template: - src: sssd.conf - dest: "/etc/sssd/sssd.conf" - owner: root - mode: 0600 - +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/logisim/tasks/main.yml b/roles/logisim/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/logisim/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/logisim/tasks/main_lin.yml b/roles/logisim/tasks/main_lin.yml new file mode 100644 index 0000000..bb46c19 --- /dev/null +++ b/roles/logisim/tasks/main_lin.yml @@ -0,0 +1,12 @@ +# TODO install logisim for linux +- name: Install Logisim + block: + - name: Create destination for Logisim + file: + path: /opt/logisim + state: directory + - name: Download and unpack Logisim + unarchive: + src: https://altushost-swe.dl.sourceforge.net/project/circuit/2.7.x/2.7.1/logisim-generic-2.7.1.jar + dest: /opt/logisim + remote_src: yes diff --git a/roles/logisim/tasks/main_win.yml b/roles/logisim/tasks/main_win.yml new file mode 100644 index 0000000..fa5ce2e --- /dev/null +++ b/roles/logisim/tasks/main_win.yml @@ -0,0 +1,19 @@ +- name: Create Logisim directory + win_file: + path: "%ProgramFiles%\\logisim" + state: directory + +- name: Install Logisim + win_get_url: + url: https://sourceforge.net/projects/circuit/files/2.7.x/2.7.1/logisim-generic-2.7.1.jar + dest: "%ProgramFiles%\\logisim\\logisim.jar" + +- name: Create Logisim shortcut + win_shortcut: + src: "%ProgramFiles%\\logisim\\logisim.jar" + dest: "C:\\Users\\Public\\Desktop\\Logisim.lnk" + +- name: Install Logisim-Evolution + win_package: + path: https://github.com/logisim-evolution/logisim-evolution/releases/download/v3.7.2/logisim-evolution-3.7.2.msi + product_id: b30fa00c-da3f-3769-aaea-6571cacf5c30 diff --git a/roles/ltspice/tasks/main.yml b/roles/ltspice/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/ltspice/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/ltspice/tasks/main_lin.yml b/roles/ltspice/tasks/main_lin.yml new file mode 100644 index 0000000..dec3a3f --- /dev/null +++ b/roles/ltspice/tasks/main_lin.yml @@ -0,0 +1 @@ +# TODO install LTSPice diff --git a/roles/ltspice/tasks/main_win.yml b/roles/ltspice/tasks/main_win.yml new file mode 100644 index 0000000..c6a8e9e --- /dev/null +++ b/roles/ltspice/tasks/main_win.yml @@ -0,0 +1 @@ +# TODO https://ltspice.analog.com/software/LTspice64.exe diff --git a/roles/matlab/tasks/main.yml b/roles/matlab/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/matlab/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/matlab/tasks/main_lin.yml b/roles/matlab/tasks/main_lin.yml new file mode 100644 index 0000000..13a29e3 --- /dev/null +++ b/roles/matlab/tasks/main_lin.yml @@ -0,0 +1,6 @@ +# TODO: usposobi install Matlaba na D: +# TODO: zamenjaj podvojene datoteke s symlinki +- name: Matlab + debug: + msg: "Matlab" + diff --git a/roles/matlab/tasks/main_win.yml b/roles/matlab/tasks/main_win.yml new file mode 100644 index 0000000..37b0734 --- /dev/null +++ b/roles/matlab/tasks/main_win.yml @@ -0,0 +1,26 @@ +- name: Set Matlab version + set_fact: + target_version: "r2022b" + +- name: Mount Matlab ISO + win_disk_image: + image_path: "{{ installers }}\\matlab\\matlab-{{ target_version }}.iso" + state: present + register: disk_image + +- name: Install Matlab + win_package: + path: "{{ disk_image.mount_paths[0] }}\\setup.exe" + arguments: -inputFile "{{ installers }}\\matlab\\installer_input.txt" + +- name: Unmount Matlab ISO + win_disk_image: + image_path: "{{ installers }}\\matlab\\matlab-{{ target_version }}.iso" + state: absent + +# TODO MATLAB throws license error -83 when run +- name: Install Matlab license + win_copy: + dest: "%ProgramFiles%\\MATLAB\\{{ target_version }}\\licenses\\network.lic" + src: "{{ installers }}\\matlab\\network.lic" + remote_src: yes diff --git a/roles/maven/tasks/main.yml b/roles/maven/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/maven/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/maven/tasks/main_lin.yml b/roles/maven/tasks/main_lin.yml new file mode 100644 index 0000000..cff5d45 --- /dev/null +++ b/roles/maven/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install maven + apt: + name: maven + state: latest diff --git a/roles/minecraft-education/tasks/main.yml b/roles/minecraft-education/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/minecraft-education/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/minecraft-education/tasks/main_lin.yml b/roles/minecraft-education/tasks/main_lin.yml new file mode 100644 index 0000000..ced1d4b --- /dev/null +++ b/roles/minecraft-education/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Do not install Minecraft + debug: + msg: "Do not install Minecraft" diff --git a/roles/minecraft-education/tasks/main_win.yml b/roles/minecraft-education/tasks/main_win.yml new file mode 100644 index 0000000..92b0dc3 --- /dev/null +++ b/roles/minecraft-education/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install Minecraft Education + win_chocolatey: + name: minecraft-education diff --git a/roles/msys2/tasks/main.yml b/roles/msys2/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/msys2/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/msys2/tasks/main_lin.yml b/roles/msys2/tasks/main_lin.yml new file mode 100644 index 0000000..e387d21 --- /dev/null +++ b/roles/msys2/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Do not install Msys2 + debug: + msg: "Do not install Msys2" diff --git a/roles/msys2/tasks/main_win.yml b/roles/msys2/tasks/main_win.yml new file mode 100644 index 0000000..0e22935 --- /dev/null +++ b/roles/msys2/tasks/main_win.yml @@ -0,0 +1,41 @@ +- name: Check msys2 install status + win_stat: + path: C:\msys64 + register: file + +- when: not file.stat.exists + block: + - name: Download msys2 + win_get_url: + url: "https://github.com/msys2/msys2-installer/releases/download/2022-09-04/msys2-x86_64-20220904.exe" + dest: 'C:\' + register: download + + - name: Install msys2 + win_package: + path: "{{ download.dest }}" + arguments: install --confirm-command --accept-messages --root C:\msys64 + + - name: Remove temporary files + win_file: + path: "{{ download.dest }}" + state: absent + + - name: Create desktop shortcut + win_shortcut: + src: "C:\\msys64\\msys2.exe" + dest: "C:\\Users\\Public\\Desktop\\msys2.lnk" + + - name: Update msys2 + win_command: C:\\msys64\\usr\\bin\\pacman -Syu --noconfirm + + - name: Install essentials + win_command: C:\\msys64\\usr\\bin\\pacman -S --noconfirm {{ item }} + loop: + - gcc + - git + - make + - nano + - rlwrap + - rsync + - vim diff --git a/roles/mysql-odbc-connector/tasks/main.yml b/roles/mysql-odbc-connector/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/mysql-odbc-connector/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/mysql-odbc-connector/tasks/main_lin.yml b/roles/mysql-odbc-connector/tasks/main_lin.yml new file mode 100644 index 0000000..ec89cef --- /dev/null +++ b/roles/mysql-odbc-connector/tasks/main_lin.yml @@ -0,0 +1,5 @@ +- name: Install MariaDB ODBC connector + apt: + name: odbc-mariadb + state: latest + diff --git a/roles/mysql-odbc-connector/tasks/main_win.yml b/roles/mysql-odbc-connector/tasks/main_win.yml new file mode 100644 index 0000000..f44a194 --- /dev/null +++ b/roles/mysql-odbc-connector/tasks/main_win.yml @@ -0,0 +1,12 @@ +- name: Install MySQL ODBC connector (32-bit) + win_package: + path: https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.33-win32.msi + # product_id: "8f52ac06-953a-49fc-95d9-58497892fa21" + product_id: "9F326F09-E926-444B-86E9-1BEA240886A2" + +- name: Install MySQL ODBC connector (64-bit) + win_package: + path: https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.33-winx64.msi + # product_id: "a02f5ad7-2744-4911-a102-8253913ca59c" + product_id: "9AC93A88-9070-47B0-9EFC-DDA915EF22BA" + diff --git a/roles/mysql_workbench/tasks/main.yml b/roles/mysql_workbench/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/mysql_workbench/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/mysql_workbench/tasks/main_lin.yml b/roles/mysql_workbench/tasks/main_lin.yml new file mode 100644 index 0000000..8290fa6 --- /dev/null +++ b/roles/mysql_workbench/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Install mysql workbench + apt: + deb: https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community_8.0.34-1ubuntu22.04_amd64.deb diff --git a/roles/mysql_workbench/tasks/main_win.yml b/roles/mysql_workbench/tasks/main_win.yml new file mode 100644 index 0000000..221ebab --- /dev/null +++ b/roles/mysql_workbench/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install MySQL workbench + win_package: + path: "https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-8.0.34-winx64.msi" diff --git a/roles/netbeans/tasks/main.yml b/roles/netbeans/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/netbeans/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/netbeans/tasks/main_lin.yml b/roles/netbeans/tasks/main_lin.yml new file mode 100644 index 0000000..91184a4 --- /dev/null +++ b/roles/netbeans/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Install NetBeans from .deb + apt: + deb: https://github.com/codelerity/netbeans-installers/releases/download/v19-build1/apache-netbeans_19-1_amd64.deb diff --git a/roles/netbeans/tasks/main_win.yml b/roles/netbeans/tasks/main_win.yml new file mode 100644 index 0000000..586bc69 --- /dev/null +++ b/roles/netbeans/tasks/main_win.yml @@ -0,0 +1,9 @@ +- name: Set Netbeans version + set_fact: + target_version: "15" + +- name: Install Netbeans + 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/ninja/tasks/main.yml b/roles/ninja/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/ninja/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/ninja/tasks/main_lin.yml b/roles/ninja/tasks/main_lin.yml new file mode 100644 index 0000000..aa207cb --- /dev/null +++ b/roles/ninja/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install Ninja + apt: + name: ninja-build + state: latest diff --git a/roles/ninja/tasks/main_win.yml b/roles/ninja/tasks/main_win.yml new file mode 100644 index 0000000..a1d2090 --- /dev/null +++ b/roles/ninja/tasks/main_win.yml @@ -0,0 +1,28 @@ +- name: Install Ninja + debug: + msg: "Do not install Ninja" + +- name: Check Ninja install status + win_stat: + path: "%ProgramFiles%\\Ninja-build\\ninja.exe" + register: file + +- when: not file.stat.exists + block: + - name: Download Ninja-build + win_get_url: + url: https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip + dest: 'C:\' + register: download + + - name: Create Ninja-build directory + win_file: + path: "%ProgramFiles%\\Ninja-build" + state: directory + + - name: Install Ninja-build + win_unzip: + src: "{{ download.dest }}" + dest: "%ProgramFiles%\\Ninja-build" + delete_archive: yes + diff --git a/roles/nodejs/tasks/main.yml b/roles/nodejs/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/nodejs/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/nodejs/tasks/main_lin.yml b/roles/nodejs/tasks/main_lin.yml new file mode 100644 index 0000000..f94b808 --- /dev/null +++ b/roles/nodejs/tasks/main_lin.yml @@ -0,0 +1,14 @@ +- name: Add NodeJS repo key + apt_key: + url: https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key + keyring: /etc/apt/keyrings/nodesource.gpg + +- name: Add NodeJS repo url + apt_repository: + repo: "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" + +- name: Install NodeJS + apt: + name: nodejs + state: latest + diff --git a/roles/notepad++/tasks/main.yml b/roles/notepad++/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/notepad++/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/notepad++/tasks/main_lin.yml b/roles/notepad++/tasks/main_lin.yml new file mode 100644 index 0000000..b45c1a2 --- /dev/null +++ b/roles/notepad++/tasks/main_lin.yml @@ -0,0 +1,18 @@ +# TODO install Notepad++ +# ansible_os_family: "Windows" / "Debian" +- name: Install notepad++ + debug: + msg: "Install Notepad++" +- name: Install Wine + apt: + name: wine-development + state: latest +- name: Install Wine binfmt support + apt: + name: wine-binfmt + state: latest +- name: Download and unpack Notepad++ + unarchive: + src: https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.5.7/npp.8.5.7.portable.x64.7z + dest: /opt/notepad++ + remote_src: yes diff --git a/roles/notepad++/tasks/main_win.yml b/roles/notepad++/tasks/main_win.yml new file mode 100644 index 0000000..ac1378d --- /dev/null +++ b/roles/notepad++/tasks/main_win.yml @@ -0,0 +1,4 @@ +# TODO disable update check +- name: Install Notepad++ + win_chocolatey: + name: notepadplusplus diff --git a/roles/ocaml/tasks/main.yml b/roles/ocaml/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/ocaml/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/ocaml/tasks/main_lin.yml b/roles/ocaml/tasks/main_lin.yml new file mode 100644 index 0000000..6695909 --- /dev/null +++ b/roles/ocaml/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install Ocaml + apt: + name: ocaml + state: latest diff --git a/roles/ocaml/tasks/main_win.yml b/roles/ocaml/tasks/main_win.yml new file mode 100644 index 0000000..fad0638 --- /dev/null +++ b/roles/ocaml/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Do not install OCaml + debug: + msg: "Do not install OCaml" diff --git a/roles/octave/tasks/main.yml b/roles/octave/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/octave/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/octave/tasks/main_lin.yml b/roles/octave/tasks/main_lin.yml new file mode 100644 index 0000000..0c6f8d0 --- /dev/null +++ b/roles/octave/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install Octave + apt: + name: octave + state: latest diff --git a/roles/octave/tasks/main_win.yml b/roles/octave/tasks/main_win.yml new file mode 100644 index 0000000..cf4f93c --- /dev/null +++ b/roles/octave/tasks/main_win.yml @@ -0,0 +1,10 @@ +# chocolatey package is broken +- name: Set Octave version + set_fact: + target_version: "7.2.0" + +- name: Install Octave + win_package: + path: https://ftpmirror.gnu.org/octave/windows/octave-{{ target_version }}-w64-installer.exe + arguments: /S /AllUsers + creates_path: C:\Program Files\GNU Octave\Octave-{{ target_version }} diff --git a/roles/omnetpp/tasks/main.yml b/roles/omnetpp/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/omnetpp/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/omnetpp/tasks/main_lin.yml b/roles/omnetpp/tasks/main_lin.yml new file mode 100644 index 0000000..c65404d --- /dev/null +++ b/roles/omnetpp/tasks/main_lin.yml @@ -0,0 +1,24 @@ +- name: Install OMNet++ + block: + - name: Create destination for Omnet++ + file: + path: /opt/omnetpp + state: directory + - name: Download and unpack Omnet++ + unarchive: + src: https://github.com/omnetpp/omnetpp/releases/download/omnetpp-6.0.1/omnetpp-6.0.1-linux-x86_64.tgz + dest: /opt/omnetpp + remote_src: yes + +# TODO install inet system-wide +- name: Install INET Framework + block: + - name: Create destination for INET Framework + file: + path: /opt/omnetpp-inet + state: directory + - name: Download and unpack INET Framework + unarchive: + src: https://github.com/inet-framework/inet/releases/download/v4.4.1/inet-4.4.1-src.tgz + dest: /opt/omnetpp-inet + remote_src: yes diff --git a/roles/omnetpp/tasks/main_win.yml b/roles/omnetpp/tasks/main_win.yml new file mode 100644 index 0000000..05d30b5 --- /dev/null +++ b/roles/omnetpp/tasks/main_win.yml @@ -0,0 +1,47 @@ +- name: Set OMNet++ version + set_fact: + target_version: "6.0.1" + target_dir: "C:\\OMNeT++" + +- name: Check OMNet++ install status + win_stat: + path: "{{ target_dir }}" + register: file + +- when: not file.stat.exists + block: + - name: Download OMNet++ + win_get_url: + 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: C:\ + delete_archive: yes + + - name: Move OMNet++ to final location + win_command: cmd.exe /c move "C:\\omnetpp-{{ target_version }}" "{{ target_dir }}" + + - name: Create OMNet++ compile script + win_copy: + src: "{{ target_dir }}\\mingwenv.cmd" + dest: "{{ target_dir }}\\mingwenv-install.cmd" + remote_src: yes + + - name: Fix OMNet++ compile script + win_lineinfile: + path: "{{ target_dir }}\\mingwenv-install.cmd" + insertbefore: "rem Open the MinGW" + 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" + + - name: Copy OMNet++ shortcut + win_copy: + src: "{{ target_dir }}\\OMNeT++ {{ target_version }} IDE.lnk" + dest: "C:\\Users\\Public\\Desktop" + remote_src: yes diff --git a/roles/openssl/tasks/main.yml b/roles/openssl/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/openssl/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/openssl/tasks/main_lin.yml b/roles/openssl/tasks/main_lin.yml new file mode 100644 index 0000000..c2de789 --- /dev/null +++ b/roles/openssl/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install OpenSSL + apt: + name: openssl + state: latest diff --git a/roles/openssl/tasks/main_win.yml b/roles/openssl/tasks/main_win.yml new file mode 100644 index 0000000..9687d1b --- /dev/null +++ b/roles/openssl/tasks/main_win.yml @@ -0,0 +1,4 @@ +# We have it at least in git and msys2 but what the hell. +- name: Install OpenSSL + win_chocolatey: + name: openssl diff --git a/roles/orange/tasks/main.yml b/roles/orange/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/orange/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/orange/tasks/main_lin.yml b/roles/orange/tasks/main_lin.yml new file mode 100644 index 0000000..1ffba8a --- /dev/null +++ b/roles/orange/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install orange + pip: + executable: pip3 + name: orange3 diff --git a/roles/orange/tasks/main_win.yml b/roles/orange/tasks/main_win.yml new file mode 100644 index 0000000..7da92bf --- /dev/null +++ b/roles/orange/tasks/main_win.yml @@ -0,0 +1,7 @@ +- name: Install Orange + win_package: + path: https://download.biolab.si/download/files/Orange3-3.32.0-Miniconda-x86_64.exe + arguments: /S /AllUsers + creates_path: C:\Program Files\Orange\python.exe + creates_version: 3.8.8150.1013 + diff --git a/roles/pandas/tasks/main.yml b/roles/pandas/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/pandas/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/pandas/tasks/main_win.yml b/roles/pandas/tasks/main_win.yml new file mode 100644 index 0000000..7e5fc51 --- /dev/null +++ b/roles/pandas/tasks/main_win.yml @@ -0,0 +1,2 @@ +- name: Install pandas + win_command: pip install pandas diff --git a/roles/pelles-c/tasks/main.yml b/roles/pelles-c/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/pelles-c/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/pelles-c/tasks/main_lin.yml b/roles/pelles-c/tasks/main_lin.yml new file mode 100644 index 0000000..15f1a9c --- /dev/null +++ b/roles/pelles-c/tasks/main_lin.yml @@ -0,0 +1,12 @@ +# TODO install Pelles +- name: Install Pelles + debug: + msg: "Install Pelles-C" +- name: Install Wine + apt: + name: wine-development + state: latest +- name: Install Wine binfmt support + apt: + name: wine-binfmt + state: latest diff --git a/roles/pelles-c/tasks/main_win.yml b/roles/pelles-c/tasks/main_win.yml new file mode 100644 index 0000000..cc66545 --- /dev/null +++ b/roles/pelles-c/tasks/main_win.yml @@ -0,0 +1,30 @@ +- name: Set PellesC version + set_fact: + target_version: "11.00" + target_checksum: "a8ae79f0e340e4c0cec0869dd72fcd875496acc470174aed8eb377eab8bbce96" + +- name: Check PellesC install status + win_stat: + path: C:\Program Files\PellesC\Bin\poide.exe + register: file + +- when: not file.stat.exists + block: + # win_package fails to download for some reason + - name: Download PellesC + win_get_url: + url: http://www.smorgasbordet.com/pellesc/{{ target_version | replace('.', '') }}/setup.exe + checksum_algorithm: sha256 + checksum: "{{ target_checksum }}" + dest: 'C:\' + register: download + + - name: Install PellesC + win_package: + path: "{{ download.dest }}" + arguments: /S + + - name: Remove temporary files + win_file: + path: "{{ download.dest }}" + state: absent diff --git a/roles/powerdesigner/tasks/main.yml b/roles/powerdesigner/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/powerdesigner/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/powerdesigner/tasks/main_lin.yml b/roles/powerdesigner/tasks/main_lin.yml new file mode 100644 index 0000000..4f8cb09 --- /dev/null +++ b/roles/powerdesigner/tasks/main_lin.yml @@ -0,0 +1,12 @@ +# TODO install PowerDesigner +- name: PowerDesigner + debug: + msg: "Install PowerDesigner" +- name: Install Wine + apt: + name: wine-development + state: latest +- name: Install Wine binfmt support + apt: + name: wine-binfmt + state: latest diff --git a/roles/powerdesigner/tasks/main_win.yml b/roles/powerdesigner/tasks/main_win.yml new file mode 100644 index 0000000..3afde4e --- /dev/null +++ b/roles/powerdesigner/tasks/main_win.yml @@ -0,0 +1 @@ +# TODO Which one? diff --git a/roles/processing/tasks/main.yml b/roles/processing/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/processing/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/processing/tasks/main_lin.yml b/roles/processing/tasks/main_lin.yml new file mode 100644 index 0000000..7ef2847 --- /dev/null +++ b/roles/processing/tasks/main_lin.yml @@ -0,0 +1,12 @@ +- name: Install Processing + block: + - name: Create destination for Processing + file: + path: /opt/processing + state: directory + - name: Download and unpack processing + unarchive: + src: https://github.com/processing/processing4/releases/download/processing-1286-4.0.1/processing-4.0.1-linux-x64.tgz + dest: /opt/processing + remote_src: yes + diff --git a/roles/processing/tasks/main_win.yml b/roles/processing/tasks/main_win.yml new file mode 100644 index 0000000..ba4555f --- /dev/null +++ b/roles/processing/tasks/main_win.yml @@ -0,0 +1,51 @@ +- name: Set Processing version + set_fact: + target_version: 4.0.1 + target_build: 1286 + +- name: Check Processing install status + win_stat: + path: C:\Program Files\Processing\lib\version.txt + register: file + +- name: Check Processing version + slurp: + src: C:\Program Files\Processing\lib\version.txt + register: version + when: file.stat.exists + +- when: not file.stat.exists or ((version.content | b64decode) != target_version) + block: + - name: Make Processing directory + win_file: + path: C:\Program Files\Processing + state: directory + - name: Download Processing + win_get_url: + 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: + 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\lib\defaults.txt + regexp: 'update.check' + line: 'update.check = false' + - name: Create Processing shortcut + win_shortcut: + src: "%ProgramFiles%\\Processing\\processing.exe" + dest: "C:\\Users\\Public\\Desktop\\Processing.lnk" + - name: Remove temporary files + win_file: + path: C:\Program Files\Processing\{{ item }} + state: absent + loop: + - processing.zip + - processing-{{ target_version }} diff --git a/roles/projectlibre/tasks/main.yml b/roles/projectlibre/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/projectlibre/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/projectlibre/tasks/main_lin.yml b/roles/projectlibre/tasks/main_lin.yml new file mode 100644 index 0000000..518d209 --- /dev/null +++ b/roles/projectlibre/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Install projectlibre + apt: + deb: https://downloads.sourceforge.net/project/projectlibre/ProjectLibre/1.9.3/projectlibre_1.9.3-1.deb diff --git a/roles/projectlibre/tasks/main_win.yml b/roles/projectlibre/tasks/main_win.yml new file mode 100644 index 0000000..1e6e06d --- /dev/null +++ b/roles/projectlibre/tasks/main_win.yml @@ -0,0 +1,4 @@ +- name: Install ProjectLibre + win_package: + path: "https://sourceforge.net/projects/projectlibre/files/ProjectLibre/1.9.3/projectlibre-1.9.3.exe" + arguments: /VerySilent diff --git a/roles/pycharm/tasks/main.yml b/roles/pycharm/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/pycharm/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/pycharm/tasks/main_lin.yml b/roles/pycharm/tasks/main_lin.yml new file mode 100644 index 0000000..b85c36b --- /dev/null +++ b/roles/pycharm/tasks/main_lin.yml @@ -0,0 +1,12 @@ +- name: Install PyCharm + block: + - name: Create destination for JetBrains PyCharm + file: + path: /opt/PyCharm + state: directory + - name: Download and unpack JetBrains PyCharm + unarchive: + src: https://download.jetbrains.com/python/pycharm-community-2023.2.1.tar.gz + dest: /opt/PyCharm + creates: /opt/PyCharm/pycharm-community-2023.2.1/build.txt + remote_src: yes diff --git a/roles/pycharm/tasks/main_win.yml b/roles/pycharm/tasks/main_win.yml new file mode 100644 index 0000000..46dbff1 --- /dev/null +++ b/roles/pycharm/tasks/main_win.yml @@ -0,0 +1,10 @@ +- name: Set PyCharm version + set_fact: + target_version: "2023.2.1" + +- name: Install PyCharm + win_chocolatey: + name: pycharm-community + version: "{{ target_version }}" + +# TODO set default project directory to H:\something diff --git a/roles/pyodbc/tasks/main.yml b/roles/pyodbc/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/pyodbc/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/pyodbc/tasks/main_lin.yml b/roles/pyodbc/tasks/main_lin.yml new file mode 100644 index 0000000..117bfab --- /dev/null +++ b/roles/pyodbc/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install pyodbc + apt: + name: python3-pyodbc + state: latest diff --git a/roles/pyodbc/tasks/main_win.yml b/roles/pyodbc/tasks/main_win.yml new file mode 100644 index 0000000..70e0fb8 --- /dev/null +++ b/roles/pyodbc/tasks/main_win.yml @@ -0,0 +1,2 @@ +- name: Install pyodbc + win_command: pip install pyodbc diff --git a/roles/python3/tasks/main.yml b/roles/python3/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/python3/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/python3/tasks/main_lin.yml b/roles/python3/tasks/main_lin.yml new file mode 100644 index 0000000..56ce94f --- /dev/null +++ b/roles/python3/tasks/main_lin.yml @@ -0,0 +1,10 @@ +- name: Install python3 + apt: + name: python3 + state: latest + +- name: Install ipython + apt: + name: python3-ipython + state: latest + diff --git a/roles/python3/tasks/main_win.yml b/roles/python3/tasks/main_win.yml new file mode 100644 index 0000000..60a44b2 --- /dev/null +++ b/roles/python3/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install Python + win_chocolatey: + name: python diff --git a/roles/qcadesigner-e/tasks/main.yml b/roles/qcadesigner-e/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/qcadesigner-e/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/qcadesigner-e/tasks/main_lin.yml b/roles/qcadesigner-e/tasks/main_lin.yml new file mode 100644 index 0000000..dd955bc --- /dev/null +++ b/roles/qcadesigner-e/tasks/main_lin.yml @@ -0,0 +1,30 @@ +- name: Install QCADesigner-E build deps + block: + - name: Install automake + apt: + name: automake + state: latest + - name: Install automake + apt: + name: libgtk2.0-dev + state: latest +- name: Create QCADesigner-E destination + file: + path: /opt/QCADesigner-E + state: directory +- name: Clone QCADesigner-E repo + # + ansible.builtin.git: + repo: https://github.com/FSillT/QCADesigner-E + force: yes + dest: /opt/QCADesigner-E +- name: Build QCADesigner-E + shell: + cmd: cd /opt/QCADesigner-E/QCADesignerE && chmod +x ./configure && ./configure && make +- name: Create QCADesigner-e symlink + file: + src: /opt/QCADesigner-E/QCADesignerE/src/QCADesigner + dest: /usr/local/bin/QCADesigner + state: link +# TODO create .desktop file + diff --git a/roles/qcadesigner-e/tasks/main_win.yml b/roles/qcadesigner-e/tasks/main_win.yml new file mode 100644 index 0000000..31a1cd2 --- /dev/null +++ b/roles/qcadesigner-e/tasks/main_win.yml @@ -0,0 +1,9 @@ +- name: Install GTK+ + win_package: + path: https://github.com/FSillT/QCADesigner-E/raw/master/Windows/gtk2-runtime-2.24.10-2012-10-10-ash.exe + arguments: /S + +- name: Install QCADesigner-E + win_package: + path: https://github.com/FSillT/QCADesigner-E/raw/master/Windows/QCADesignerE-2.2-setup.exe + arguments: /VerySilent diff --git a/roles/racket/tasks/main.yml b/roles/racket/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/racket/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/racket/tasks/main_lin.yml b/roles/racket/tasks/main_lin.yml new file mode 100644 index 0000000..a2ec494 --- /dev/null +++ b/roles/racket/tasks/main_lin.yml @@ -0,0 +1,5 @@ +- name: Install racket + apt: + name: racket + state: latest + diff --git a/roles/racket/tasks/main_win.yml b/roles/racket/tasks/main_win.yml new file mode 100644 index 0000000..b49e499 --- /dev/null +++ b/roles/racket/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install Racket + win_chocolatey: + name: racket diff --git a/roles/rlwrap/tasks/main.yml b/roles/rlwrap/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/rlwrap/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/rlwrap/tasks/main_lin.yml b/roles/rlwrap/tasks/main_lin.yml new file mode 100644 index 0000000..f843350 --- /dev/null +++ b/roles/rlwrap/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install rlwrap + apt: + name: rlwrap + state: latest diff --git a/roles/rlwrap/tasks/main_win.yml b/roles/rlwrap/tasks/main_win.yml new file mode 100644 index 0000000..0e64e55 --- /dev/null +++ b/roles/rlwrap/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Do not install rlwrap + debug: + msg: "Do not install rlwrap" diff --git a/roles/rstudio/tasks/main.yml b/roles/rstudio/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/rstudio/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/rstudio/tasks/main_lin.yml b/roles/rstudio/tasks/main_lin.yml new file mode 100644 index 0000000..a21785b --- /dev/null +++ b/roles/rstudio/tasks/main_lin.yml @@ -0,0 +1,14 @@ +- 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 + state: latest diff --git a/roles/rstudio/tasks/main_win.yml b/roles/rstudio/tasks/main_win.yml new file mode 100644 index 0000000..59722b2 --- /dev/null +++ b/roles/rstudio/tasks/main_win.yml @@ -0,0 +1,85 @@ +- name: Install R + win_chocolatey: + name: r.project + package_params: /AddToPath + +- name: Find R directory + win_find: + paths: C:\Program Files\R + patterns: ['R-*'] + file_type: directory + register: base + +- name: Add R to path + win_path: + elements: + - "{{ base.files[0].path }}\\bin" + +- name: Find installed R libraries + win_find: + paths: "{{ base.files[0].path }}\\library" + file_type: directory + register: libs + +- name: Install R packages + win_command: Rscript - + args: + stdin: install.packages(c("{{ item }}"), repos = "http://cran.rstudio.com") + when: item not in (libs.files|map(attribute='filename')) + loop: + - CORElearn + - DEoptim + - DEoptimR + - GenSA + - MASS + - NMF + - RSNNS + - Radviz + - adabag + - aplpack + - arules + - arulesViz + - bnlearn + - caret + - class + - cluster + - e1071 + - graphics + - igraph + - ipred + - keras + - kernlab + - kknn + - lattice + - lpSolveAPI + - metaheuristicOpt + - neuralnet + - nnet + - quadprog + - randomForest + - reshape2 + - rpart + - rpart.plot + - smotefamily + - tabuSearch + - tidyverse + - viridisLite + +- name: Install RStudio + win_chocolatey: + name: r.studio + +- name: Create configuration directory + win_file: + path: "%PROGRAMDATA%\\RStudio" + state: directory + +- name: Disable crash reporting + win_copy: + dest: "%PROGRAMDATA%\\RStudio\\crash-handler.conf" + content: crash-handling-enabled=0 + +- name: Disable update notifications + win_copy: + dest: "%PROGRAMDATA%\\RStudio\\rstudio-prefs.json" + content: { "check_for_updates": false } diff --git a/roles/sagemath/tasks/main.yml b/roles/sagemath/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/sagemath/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/sagemath/tasks/main_lin.yml b/roles/sagemath/tasks/main_lin.yml new file mode 100644 index 0000000..9b757ef --- /dev/null +++ b/roles/sagemath/tasks/main_lin.yml @@ -0,0 +1,9 @@ +- name: Install SageMath + apt: + name: sagemath + state: latest + +- name: Install SageMath - Jupyter + apt: + name: sagemath-jupyter + state: latest diff --git a/roles/sagemath/tasks/main_win.yml b/roles/sagemath/tasks/main_win.yml new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/roles/sagemath/tasks/main_win.yml @@ -0,0 +1 @@ +# TODO diff --git a/roles/scenebuilder/tasks/main.yml b/roles/scenebuilder/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/scenebuilder/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/scenebuilder/tasks/main_lin.yml b/roles/scenebuilder/tasks/main_lin.yml new file mode 100644 index 0000000..861edcd --- /dev/null +++ b/roles/scenebuilder/tasks/main_lin.yml @@ -0,0 +1 @@ +# TODO install SceneBuilder diff --git a/roles/scenebuilder/tasks/main_win.yml b/roles/scenebuilder/tasks/main_win.yml new file mode 100644 index 0000000..293c724 --- /dev/null +++ b/roles/scenebuilder/tasks/main_win.yml @@ -0,0 +1,4 @@ +- name: Install SceneBuilder + win_package: + path: https://download2.gluonhq.com/scenebuilder/18.0.0/install/win/SceneBuilder-18.0.0.msi + arguments: INSTALLDIR="C:\Program Files\SceneBuilder" ALLUSERS=1 diff --git a/roles/sifive/tasks/main.yml b/roles/sifive/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/sifive/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/sifive/tasks/main_lin.yml b/roles/sifive/tasks/main_lin.yml new file mode 100644 index 0000000..0a887bd --- /dev/null +++ b/roles/sifive/tasks/main_lin.yml @@ -0,0 +1,4 @@ +# SiFive je bil nekoc prosto dostopen. +# Sedaj hocejo, da se registriras... da prides do kode +# Potem pa ti ne dajo izvorne kode. +# ucilnice_install/2022-23/ORS_VGRS_Bulic diff --git a/roles/smlnj/tasks/main.yml b/roles/smlnj/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/smlnj/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/smlnj/tasks/main_lin.yml b/roles/smlnj/tasks/main_lin.yml new file mode 100644 index 0000000..7096389 --- /dev/null +++ b/roles/smlnj/tasks/main_lin.yml @@ -0,0 +1,13 @@ +- name: Install SML/NJ + apt: + name: smlnj + state: latest +- name: Install SML/NJ + apt: + name: smlnj + state: latest +- name: Install Emacs extension for SML + apt: + name: elpa-sml-mode + state: latest + diff --git a/roles/smlnj/tasks/main_win.yml b/roles/smlnj/tasks/main_win.yml new file mode 100644 index 0000000..3de06e4 --- /dev/null +++ b/roles/smlnj/tasks/main_win.yml @@ -0,0 +1,8 @@ +- name: Set SML/NJ + set_fact: + target_version: "110.99.3" + +- name: Install SML/NJ + win_package: + path: "https://smlnj.org/dist/working/{{ target_version }}/smlnj-{{ target_version }}.msi" + creates_path: "%ProgramFiles(x86)%\\SMLNJ\\bin\\sml.bat" diff --git a/roles/solidworks/tasks/main.yml b/roles/solidworks/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/solidworks/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/solidworks/tasks/main_lin.yml b/roles/solidworks/tasks/main_lin.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/solidworks/tasks/main_win.yml b/roles/solidworks/tasks/main_win.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/stm32cube/tasks/main.yml b/roles/stm32cube/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/stm32cube/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/stm32cube/tasks/main_lin.yml b/roles/stm32cube/tasks/main_lin.yml new file mode 100644 index 0000000..05a9768 --- /dev/null +++ b/roles/stm32cube/tasks/main_lin.yml @@ -0,0 +1,3 @@ +# TODO download stm32; deb install +# https://www.st.com/en/development-tools/stm32cubeide.html#get-software + diff --git a/roles/stm32cube/tasks/main_win.yml b/roles/stm32cube/tasks/main_win.yml new file mode 100644 index 0000000..15f430f --- /dev/null +++ b/roles/stm32cube/tasks/main_win.yml @@ -0,0 +1,23 @@ +- name: Check WinIDEA install status + win_stat: + path: C:\iSYSTEM\winIDEA9\winIDEA.exe + register: file + +- when: not file.stat.exists + block: + - name: Install CubeIDE + win_package: + path: "D:\\RAVINOR\\st-stm32cubeide_1.10.1_12716_20220707_0928_x86_64.exe" + arguments: /S + + - name: Set CubeIDE default workspace + win_lineinfile: + path: C:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE\stm32cubeide.ini + regexp: "osgi.instance.area.default" + line: "-Dosgi.instance.area.default=D:/RAVINOR/CubeIDE_Workspace" + + # 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/sublime-text/tasks/main.yml b/roles/sublime-text/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/sublime-text/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/sublime-text/tasks/main_lin.yml b/roles/sublime-text/tasks/main_lin.yml new file mode 100644 index 0000000..f7dd75b --- /dev/null +++ b/roles/sublime-text/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Do not install Sublime + debug: + msg: "Do not install Sublime" diff --git a/roles/sublime-text/tasks/main_win.yml b/roles/sublime-text/tasks/main_win.yml new file mode 100644 index 0000000..5ab7212 --- /dev/null +++ b/roles/sublime-text/tasks/main_win.yml @@ -0,0 +1,4 @@ +- name: Install Sublime Text + win_chocolatey: + name: sublimetext4 + state: present diff --git a/roles/sumatrapdf/tasks/main.yml b/roles/sumatrapdf/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/sumatrapdf/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/sumatrapdf/tasks/main_lin.yml b/roles/sumatrapdf/tasks/main_lin.yml new file mode 100644 index 0000000..6359ff1 --- /dev/null +++ b/roles/sumatrapdf/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Do not install SumatraPDF + debug: + msg: "Do not install SumatraPDF" diff --git a/roles/sumatrapdf/tasks/main_win.yml b/roles/sumatrapdf/tasks/main_win.yml new file mode 100644 index 0000000..25b81d3 --- /dev/null +++ b/roles/sumatrapdf/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install SumatraPDF + win_chocolatey: + name: sumatrapdf diff --git a/roles/swi-prolog/tasks/main.yml b/roles/swi-prolog/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/swi-prolog/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/swi-prolog/tasks/main_lin.yml b/roles/swi-prolog/tasks/main_lin.yml new file mode 100644 index 0000000..f1357e4 --- /dev/null +++ b/roles/swi-prolog/tasks/main_lin.yml @@ -0,0 +1,8 @@ +- name: Install SWI-Prolog + apt: + name: swi-prolog + state: latest +- name: Install SWI-Prolog - X support + apt: + name: swi-prolog-x + state: latest diff --git a/roles/swi-prolog/tasks/main_win.yml b/roles/swi-prolog/tasks/main_win.yml new file mode 100644 index 0000000..d7fbd07 --- /dev/null +++ b/roles/swi-prolog/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install SWI-Prolog + win_chocolatey: + name: swi-prolog diff --git a/roles/thonny/tasks/main.yml b/roles/thonny/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/thonny/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/thonny/tasks/main_lin.yml b/roles/thonny/tasks/main_lin.yml new file mode 100644 index 0000000..769384b --- /dev/null +++ b/roles/thonny/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install cmake + apt: + name: thonny + state: latest diff --git a/roles/thonny/tasks/main_win.yml b/roles/thonny/tasks/main_win.yml new file mode 100644 index 0000000..6a14128 --- /dev/null +++ b/roles/thonny/tasks/main_win.yml @@ -0,0 +1,27 @@ +- name: Set Thonny version + set_fact: + target_version: 4.0.1 + +- name: Check Thonny install status + win_stat: + path: C:\Program Files (x86)\Thonny\thonny.exe + register: file + +- when: not file.stat.exists + block: + # win_package fails to download for some reason + - name: Download Thonny + win_get_url: + url: https://github.com/thonny/thonny/releases/download/v{{ target_version }}/thonny-{{ target_version }}.exe + dest: 'C:\' + register: download + + - name: Install Thonny + win_package: + path: "{{ download.dest }}" + arguments: /Verysilent /AllUsers + + - name: Remove temporary files + win_file: + path: "{{ download.dest }}" + state: absent diff --git a/roles/unity/tasks/main.yml b/roles/unity/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/unity/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/unity/tasks/main_lin.yml b/roles/unity/tasks/main_lin.yml new file mode 100644 index 0000000..c13b36c --- /dev/null +++ b/roles/unity/tasks/main_lin.yml @@ -0,0 +1,12 @@ +# TODO install Unity +- name: PowerDesigner + debug: + msg: "Unity" +- name: Install Wine + apt: + name: wine-development + state: latest +- name: Install Wine binfmt support + apt: + name: wine-binfmt + state: latest diff --git a/roles/unity/tasks/main_win.yml b/roles/unity/tasks/main_win.yml new file mode 100644 index 0000000..a73fcde --- /dev/null +++ b/roles/unity/tasks/main_win.yml @@ -0,0 +1,7 @@ +- name: Install Unity + win_chocolatey: + name: unity + +# Don’t install Unity Hub because it wants a login when run. + +# TODO Figure out license stuff. diff --git a/roles/virtualbox/tasks/main.yml b/roles/virtualbox/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/virtualbox/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/virtualbox/tasks/main_lin.yml b/roles/virtualbox/tasks/main_lin.yml new file mode 100644 index 0000000..4ee58e4 --- /dev/null +++ b/roles/virtualbox/tasks/main_lin.yml @@ -0,0 +1,12 @@ +- name: "Install VirtualBox" + apt: + name: virtualbox + state: latest +- name: "Install VirtualBox GUI" + apt: + name: virtualbox-qt + state: latest +- name: "Install VirtualBox kernel module" + apt: + name: virtualbox-dkms + state: latest diff --git a/roles/virtualbox/tasks/main_win.yml b/roles/virtualbox/tasks/main_win.yml new file mode 100644 index 0000000..3c2fd69 --- /dev/null +++ b/roles/virtualbox/tasks/main_win.yml @@ -0,0 +1,4 @@ +- name: Install Virtualbox + win_chocolatey: + name: virtualbox + state: present diff --git a/roles/visual2/tasks/main.yml b/roles/visual2/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/visual2/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/visual2/tasks/main_lin.yml b/roles/visual2/tasks/main_lin.yml new file mode 100644 index 0000000..d2d8620 --- /dev/null +++ b/roles/visual2/tasks/main_lin.yml @@ -0,0 +1,13 @@ +# TODO install PowerDesigner +- name: Install VisUAL2 + debug: + msg: "Install Visual2" +- name: Create dest dir + file: + path: /opt/VisUAL2 + state: directory +- name: Install AppImage + get_url: + url: https://github.com/scc416/Visual2/releases/download/1.7.0/VisUAL2.1.7.0.AppImage + dest: /opt/VisUAL2/VisUAL2.1.7.0.AppImage + mode: 'u=rwx,g=rx,o=rx' diff --git a/roles/visual2/tasks/main_win.yml b/roles/visual2/tasks/main_win.yml new file mode 100644 index 0000000..df47755 --- /dev/null +++ b/roles/visual2/tasks/main_win.yml @@ -0,0 +1,32 @@ +- name: Set Visual2 version + set_fact: + target_version: "1.06.10" + +- name: Check Visual2 install status + win_stat: + path: "%ProgramFiles%\\VisUAL2\\VisUAL2.exe" + register: file + +- when: not file.stat.exists + block: + - name: Download Visual2 + win_get_url: + url: https://github.com/tomcl/V2releases/releases/download/{{ target_version }}/visual2-win32-x64.zip + dest: 'C:\' + register: download + + - name: Create Visual2 directory + win_file: + path: "%ProgramFiles%\\VisUAL2" + state: directory + + - name: Install Visual2 + win_unzip: + src: "{{ download.dest }}" + dest: "%ProgramFiles%\\VisUAL2" + delete_archive: yes + + - name: Create Visual2 shortcut + win_shortcut: + src: "%ProgramFiles%\\Visual2\\VisUAL2.exe" + dest: "C:\\Users\\Public\\Desktop\\VisUAL2.lnk" diff --git a/roles/visual_studio/tasks/main.yml b/roles/visual_studio/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/visual_studio/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/visual_studio/tasks/main_lin.yml b/roles/visual_studio/tasks/main_lin.yml new file mode 100644 index 0000000..b62bc89 --- /dev/null +++ b/roles/visual_studio/tasks/main_lin.yml @@ -0,0 +1,2 @@ +# TODO kako namestiti Visual Studio + build tools +# diff --git a/roles/visual_studio/tasks/main_win.yml b/roles/visual_studio/tasks/main_win.yml new file mode 100644 index 0000000..27bcd8a --- /dev/null +++ b/roles/visual_studio/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install Visual Studio 2022 Build Tools + win_chocolatey: + name: visualstudio2022buildtools diff --git a/roles/vivado/tasks/main.yml b/roles/vivado/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/vivado/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/vivado/tasks/main_lin.yml b/roles/vivado/tasks/main_lin.yml new file mode 100644 index 0000000..64a9d54 --- /dev/null +++ b/roles/vivado/tasks/main_lin.yml @@ -0,0 +1,5 @@ +# TODO pripravi install Vivado +# https://www.xilinx.com/member/forms/download/xef.html?filename=Xilinx_Unified_2022.1_0420_0327_Lin64.bin +- name: Install Vivado + debug: + msg: "Install Vivado, rodistvori dodatnih 70+G diska na računalnik" diff --git a/roles/vivado/tasks/main_win.yml b/roles/vivado/tasks/main_win.yml new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/roles/vivado/tasks/main_win.yml @@ -0,0 +1 @@ +# TODO diff --git a/roles/vlc/tasks/main.yml b/roles/vlc/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/vlc/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/vlc/tasks/main_win.yml b/roles/vlc/tasks/main_win.yml new file mode 100644 index 0000000..a3ba667 --- /dev/null +++ b/roles/vlc/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install VLC + win_chocolatey: + name: vlc diff --git a/roles/vmware_player/tasks/main.yml b/roles/vmware_player/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/vmware_player/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/vmware_player/tasks/main_lin.yml b/roles/vmware_player/tasks/main_lin.yml new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/roles/vmware_player/tasks/main_lin.yml @@ -0,0 +1 @@ + diff --git a/roles/vmware_player/tasks/main_win.yml b/roles/vmware_player/tasks/main_win.yml new file mode 100644 index 0000000..eb93833 --- /dev/null +++ b/roles/vmware_player/tasks/main_win.yml @@ -0,0 +1,3 @@ +- name: Install VMware Player + win_chocolatey: + name: vmware-workstation-player diff --git a/roles/vscode/tasks/main.yml b/roles/vscode/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/vscode/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/vscode/tasks/main_lin.yml b/roles/vscode/tasks/main_lin.yml new file mode 100644 index 0000000..08ae21d --- /dev/null +++ b/roles/vscode/tasks/main_lin.yml @@ -0,0 +1,21 @@ +- name: Add VS repo key + apt_key: + url: https://packages.microsoft.com/keys/microsoft.asc + keyring: /etc/apt/trusted.gpg.d/microsoft.gpg + +- name: Add VS repo url + apt_repository: + repo: "deb https://packages.microsoft.com/repos/vscode stable main" + +- name: Install VSCode + apt: + name: code + state: latest + +- name: Include VS code extension list + 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 "{{ item }}" + loop: "{{VSCode_Extensions}}" + notify: fix VS code extensions diff --git a/roles/vscode/tasks/main_win.yml b/roles/vscode/tasks/main_win.yml new file mode 100644 index 0000000..6a7a345 --- /dev/null +++ b/roles/vscode/tasks/main_win.yml @@ -0,0 +1,20 @@ +- name: Install VS Code + win_chocolatey: + name: vscode + +- name: Add firewall rule for VS Code + win_firewall_rule: + name: "Allow inbound traffic for VS Code" + program: "%ProgramFiles%\\Microsoft VS Code\\code.exe" + action: allow + direction: in + +- name: Include VS code extension list + include_vars: vscode_extensions.yml + +- name: Install VS Code extensions + win_shell: code --extensions-dir "C:\\Program Files\\Microsoft VS Code\\resources\\app\\extensions" --install-extension "{{ item }}" + args: + chdir: "%ProgramFiles%\\Microsoft VS Code\\bin" + loop: "{{VSCode_Extensions}}" + diff --git a/roles/vscode/tasks/vscode_extensions.yml b/roles/vscode/tasks/vscode_extensions.yml new file mode 100644 index 0000000..f42ef76 --- /dev/null +++ b/roles/vscode/tasks/vscode_extensions.yml @@ -0,0 +1,19 @@ +VSCode_Extensions: + - VisualStudioExptTeam.vscodeintellicode + - arthurwang.vsc-prolog + - dramforever.vscode-ghc-simple + - eamodio.gitlens + - justusadam.language-haskell + - ms-dotnettools.csdevkit # IS-63714 + - ms-python.python + - ms-vscode.cpptools + - ocamllabs.ocaml-platform + - stonebuddha.vscode-better-sml + - vscode-icons-team.vscode-icons + - vscjava.vscode-java-pack + - dan-c-underwood.arm # RA-63703 + - marus25.cortex-debug # RA-63703 + - NateAGeek.memory-viewer # RA-63703 + - ms-vscode.cpptools-extension-pack # RA-63703 + - platformio.platformio-ide # ORS-63218 + - stmicroelectronics.stm32-vscode-extension # RA-63703 diff --git a/roles/weka/tasks/main.yml b/roles/weka/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/weka/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/weka/tasks/main_lin.yml b/roles/weka/tasks/main_lin.yml new file mode 100644 index 0000000..ff4a71a --- /dev/null +++ b/roles/weka/tasks/main_lin.yml @@ -0,0 +1,4 @@ +- name: Install Weka 3.6+ + apt: + name: weka + state: latest diff --git a/roles/weka/tasks/main_win.yml b/roles/weka/tasks/main_win.yml new file mode 100644 index 0000000..be3b036 --- /dev/null +++ b/roles/weka/tasks/main_win.yml @@ -0,0 +1,9 @@ +- name: Set Weka version + set_fact: + target_version: "3-8-6" + +- name: Install Weka + win_package: + path: "https://prdownloads.sourceforge.net/weka/weka-{{ target_version }}-azul-zulu-windows.exe" + arguments: /S + creates_path: "%ProgramFiles%\\Weka-{{ target_version }}\\weka.jar" diff --git a/roles/wfdb/tasks/main.yml b/roles/wfdb/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/wfdb/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/wfdb/tasks/main_lin.yml b/roles/wfdb/tasks/main_lin.yml new file mode 100644 index 0000000..3235389 --- /dev/null +++ b/roles/wfdb/tasks/main_lin.yml @@ -0,0 +1,27 @@ +# Dobi se jo na: https://www.physionet.org/content/wfdb/10.7.0/ 1. razpakiraj arhiv 2. pojdi v direktorij. 3. poženi .-configure lahko z dodatnimi parametri glede na željeno lokacijo knjižnice 4. poženi make 5. poženi sudo make install +- name: Install libFLAC + apt: + name: libflac-dev + state: latest +- name: Install libcurl + apt: + name: libcurl4-openssl-dev +- name: Install GCC + apt: + name: gcc +- name: Install make + apt: + name: make +- name: Create WFDB destination + file: + path: /opt/wfdb + state: directory +- name: Download WFDB + unarchive: + src: https://www.physionet.org/physiotools/archives/wfdb-10.7/wfdb-10.7.0.tar.gz + dest: /opt/wfdb + creates: /opt/wfdb/wfdb-10.7.0/README + remote_src: yes +- name: Build and install WFDB + shell: + cmd: cd /opt/wfdb/wfdb-10.7.0 && ./configure && make && make install diff --git a/roles/wfdb/tasks/main_win.yml b/roles/wfdb/tasks/main_win.yml new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/roles/wfdb/tasks/main_win.yml @@ -0,0 +1 @@ +# TODO diff --git a/roles/winidea-frisms/tasks/main.yml b/roles/winidea-frisms/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/winidea-frisms/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/winidea-frisms/tasks/main_lin.yml b/roles/winidea-frisms/tasks/main_lin.yml new file mode 100644 index 0000000..f4d4312 --- /dev/null +++ b/roles/winidea-frisms/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Do not install WinIdea for FRISMS + debug: + msg: "Do not install WinIdea for FRISMS" diff --git a/roles/winidea-frisms/tasks/main_win.yml b/roles/winidea-frisms/tasks/main_win.yml new file mode 100644 index 0000000..2e64ffd --- /dev/null +++ b/roles/winidea-frisms/tasks/main_win.yml @@ -0,0 +1,34 @@ +- name: Check WinIDEA-FRISMS install status + win_stat: + path: C:\iSYSTEM\winIDEA_FRISMS\winIDEA.exe + register: file + +- when: not file.stat.exists + block: + - name: Install WinIDEA-FRISMS + win_package: + path: "https://www.isystem.com/downloads/winIDEA/setup/winIDEA(x64)9_12_256.exe" + arguments: /q APPDIR=c:\iSYSTEM\winIDEA_FRISMS + + - name: Download GCC for WinIDEA-FRISMS + win_get_url: + url: "https://launchpadlibrarian.net/143626040/gcc-arm-none-eabi-4_7-2013q2-20130614-win32.zip" + dest: C:\iSYSTEM\winIDEA_FRISMS\ + register: download + + - name: Unpack GCC for WinIDEA-FRISMS + win_unzip: + src: "{{ download.dest }}" + dest: C:\iSYSTEM\winIDEA_FRISMS\gcc + delete_archive: yes + + - name: Install GCC for WinIDEA-FRISMS + win_copy: + dest: C:\iSYSTEM\winIDEA_FRISMS\gcc\arm + src: C:\iSYSTEM\winIDEA_FRISMS\gcc\GNU Tools ARM Embedded\4.7 2013q2\ + remote_src: yes + + - name: Remove source files + win_file: + path: C:\iSYSTEM\winIDEA_FRISMS\gcc\GNU Tools ARM Embedded + state: absent diff --git a/roles/winidea/tasks/main.yml b/roles/winidea/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/winidea/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/winidea/tasks/main_lin.yml b/roles/winidea/tasks/main_lin.yml new file mode 100644 index 0000000..543373a --- /dev/null +++ b/roles/winidea/tasks/main_lin.yml @@ -0,0 +1,5 @@ +- name: Install WinIdea snap + community.general.snap: + name: + - winidea + classic: true diff --git a/roles/winidea/tasks/main_win.yml b/roles/winidea/tasks/main_win.yml new file mode 100644 index 0000000..aa4b9c8 --- /dev/null +++ b/roles/winidea/tasks/main_win.yml @@ -0,0 +1,33 @@ +- name: Check WinIDEA install status + win_stat: + path: C:\iSYSTEM\winIDEA9\winIDEA.exe + register: file + +- when: not file.stat.exists + block: + - name: Install WinIDEA + win_package: + path: "https://www.isystem.com/downloads/winIDEA/setup/winIDEA(x64)9_21_110_138559.exe" + arguments: /q + + - name: Download QEMU + win_get_url: + url: "https://www.isystem.si/SWUpdates/qemu/qemu.7z" + dest: C:\iSYSTEM\winIDEA9 + + - name: Unpack QEMU + win_command: 7z x qemu.7z + args: + chdir: "C:\\iSYSTEM\\winIDEA9" + + - name: Download GCC + win_get_url: + url: "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-win32.zip" + dest: C:\iSYSTEM\winIDEA9 + register: download + + - name: Unpack GCC + win_unzip: + src: "{{ download.dest }}" + dest: C:\iSYSTEM\winIDEA9\gcc + delete_archive: yes diff --git a/roles/winroom/tasks/main.yml b/roles/winroom/tasks/main.yml index 4d5777e..55203f6 100644 --- a/roles/winroom/tasks/main.yml +++ b/roles/winroom/tasks/main.yml @@ -1,4 +1,4 @@ -- import_tasks: settings.yml -- import_tasks: util.yml -# - import_tasks: all_classes.yml -- import_tasks: TIS-63216.yml +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/wireshark/tasks/main.yml b/roles/wireshark/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/wireshark/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/wireshark/tasks/main_lin.yml b/roles/wireshark/tasks/main_lin.yml new file mode 100644 index 0000000..fe4e91c --- /dev/null +++ b/roles/wireshark/tasks/main_lin.yml @@ -0,0 +1,10 @@ +- name: Enable non-privileged users to run wireshark + ansible.builtin.debconf: + name: wireshark + question: wireshark-common/install-setuid + value: true + vtype: boolean +- name: "Install Wireshark" + apt: + name: wireshark-qt + state: latest diff --git a/roles/wireshark/tasks/main_win.yml b/roles/wireshark/tasks/main_win.yml new file mode 100644 index 0000000..5c38680 --- /dev/null +++ b/roles/wireshark/tasks/main_win.yml @@ -0,0 +1,20 @@ +# 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 Wireshark + win_chocolatey: + name: wireshark + +- name: Touch Wireshark preferences + win_file: + path: "%ProgramFiles%\\Wireshark\\preferences" + state: touch + +- name: Disable Wireshark auto updates + win_lineinfile: + path: "%ProgramFiles%\\Wireshark\\preferences" + line: "gui.update.enabled: FALSE" diff --git a/roles/xampp/tasks/main.yml b/roles/xampp/tasks/main.yml new file mode 100644 index 0000000..55203f6 --- /dev/null +++ b/roles/xampp/tasks/main.yml @@ -0,0 +1,4 @@ +- import_tasks: main_win.yml + when: ansible_connection == 'winrm' +- import_tasks: main_lin.yml + when: ansible_connection == 'ssh' diff --git a/roles/xampp/tasks/main_lin.yml b/roles/xampp/tasks/main_lin.yml new file mode 100644 index 0000000..4a7facf --- /dev/null +++ b/roles/xampp/tasks/main_lin.yml @@ -0,0 +1,3 @@ +- name: Install XAMPP + debug: + msg: Namesto XAMPP bi verjetno LAMP? diff --git a/roles/xampp/tasks/main_win.yml b/roles/xampp/tasks/main_win.yml new file mode 100644 index 0000000..44bbc71 --- /dev/null +++ b/roles/xampp/tasks/main_win.yml @@ -0,0 +1,28 @@ +- name: Install XAMPP + win_chocolatey: + name: xampp-81 + +- name: Make XAMPP config world writable + win_acl: + user: 'Authenticated Users' + path: "C:\\xampp\\xampp-control.ini" + type: allow + rights: Write + +- name: Add firewall rules for XAMPP + win_firewall_rule: + name: "Allow inbound traffic for XAMPP: {{ item }}" + program: "%SystemDrive%\\xampp\\{{ item }}" + action: allow + direction: in + protocol: tcp + loop: + - "apache\\bin\\httpd.exe" + - "mysql\\bin\\mysqld.exe" + - "FileZillaFTP\\FileZillaServer.exe" + - "MercuryMail\\mercury.exe" + +# XAMPP insists on looking for Java and failing without this. +- name: Set registry key for OpenJDK + win_regedit: + path: HKLM:\SOFTWARE\JavaSoft\Java Development Kit diff --git a/winsetup.yml b/winsetup.yml new file mode 100644 index 0000000..0226c6d --- /dev/null +++ b/winsetup.yml @@ -0,0 +1,13 @@ +- hosts: classroom + become: true + become_method: runas + vars: + 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 + roles: + - all_classes +