Compare commits

..

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

131 changed files with 266 additions and 1864 deletions

View file

@ -1,39 +1,5 @@
# Using the ansible scripts
Ansible playbooks for deploying classroom computers. Run with something like:
ansible-playbook --user <local admin> -k -K -i inventory.yml setup.py
or, for Apple computers:
ansible-playbook --user <local admin> -k -K -i inventory.yml macsetup.py
# How classroom computers are prepared at FRI
The computers are prepared as follows:
- Ask teachers to check their requirements.
- Fix ansible scripts according to the requirements.
- Set up a fresh Windows and Linux install on a VM, using files in unattended\_install.
- Use ansible to deploy the software, fixing fresh bugs due to changes in the install processes along the way.
- Fix root filesystem UUIDs to what they were last year so the network-booted menu still works.
- Create partition table image and partition images using [FRI Backup](https://github.com/UL-FRI/ansible_classroom_deploy/tree/main/fri_backup).
- Deploy the images on separate VMs - one for Linux, one for Windows.
- Have teachers check their software in the VMs, report any problems.
- Fix problems on the VMs.
- Create partition images for Windows on one VM, for Linux on the other.
- Deploy the images on a limited number of computers in the classrooms using FRI Backup.
- Test the newly deployed computers, fix identified problems on the VMs.
- Join the Linux VM into AD. One AD account is used for all computers.
- Deploy the partition tables and partitions to the classrooms using [custom ansible scripts](https://github.com/UL-FRI/ansible_classroom_deploy/tree/main/polz_scripts) running FRI Backup and [UDPCast](https://www.udpcast.linux.lu/cmd.html).
- Join Windows into AD.
# Immutable computers
Some pieces of modern software assume that a computer is only used by one user who has practically unlimited space in their home folder. Examples of such software are Android Studio, Visual Studio Code, Matlab, Windows Subsystem for Linux (WSUS) and others. Instead of trying to get the software to work, we might just give up and have everyone use the same account on each computer, then wipe all data after they log out / reboot.
## Windows
We intend to use [UWF](https://learn.microsoft.com/en-us/windows/configuration/wcd/wcd-unifiedwritefilter).
## Linux
We intend to use [snapper](https://wiki.archlinux.org/title/Snapper).
ansible-playbook --user <local admin> -k -K -i inventory.yml macsetup.py

View file

@ -1,19 +0,0 @@
- name: Gather facts / setup connection
hosts: '*'
gather_facts: false
become: false
vars_files:
- vars/credentials.yml
roles:
- facts
- name: Join AD
hosts: '*'
become: true
debugger: on_failed
vars_files:
- vars/credentials.yml
vars:
domain_name: "FRI1.UNI-LJ.SI"
roles:
- ad_joined

View file

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

View file

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

View file

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

View file

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

View file

@ -1,10 +1,10 @@
# Načrtovanje digitalnih naprav
# Miran.Koprivec@fri.uni-lj.si, Miha.Moskon@fri.uni-lj.si, ratko.pilipovic@fri.uni-lj.si
# Miran.Koprivec@fri.uni-lj.si, Miha.Moskon@fri.uni-lj.si
# Windows, Vivado 2022.1
# Načrtovanje digitalnih naprav
# Miha.Moskon@fri.uni-lj.si
# Windows, Vivado 2022.1
dependencies:
- role: putty
- role: vivado
- role: cp2102_driver
- role: cocotb
- role: iverilog
- role: surfer-project

View file

@ -3,7 +3,7 @@
# Windows, Logisim, Logisim Evolution, RAVINOR, CubeIDE + Tools, VSCode + ST plugin, Putty
dependencies:
- role: logisim
# - role: stm32cube
- role: stm32cube
- role: vscode
- role: putty
- role: stm32duino

View file

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

View file

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

View file

@ -1,18 +0,0 @@
# Podatkovno rudarjenje
# rok.gomiscek@fri.uni-lj.si
#
dependencies:
- role: jupyter
- role: pandas
- role: matplotlib
- role: plotly
- role: seaborn
- role: altair
- role: scikit-learn
- role: mlxtend
- role: networkx
- role: transformers
- role: datasets
- role: evaluate
- role: torch # includes torchvision
- role: streamlit

View file

@ -2,7 +2,7 @@
# Ziga.Pusnik@fri.uni-lj.si, Robert.Rozman@fri.uni-lj.si
# Windows, CubeIDE + tools, STMDuino, VSCode, WinIdea 9.21 + GCC + QEMU, Visual2
dependencies:
# - role: stm32cube # (CubeMonitor sem vzel samo exe)
- role: stm32cube # (CubeMonitor sem vzel samo exe)
- role: stm32duino
- role: vscode
- role: putty

View file

@ -2,7 +2,7 @@
# Robert.Rozman@fri.uni-lj.si
# Windows, CubeIDE + Tools, STMDuino, VSCode, LTSpice, PulseView,Putty, STM32 Algobuilder & Unicleo GUI
dependencies:
#- role: stm32cube
- role: stm32cube
- role: stm32duino
- role: vscode
- role: ltspice

View file

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

View file

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
<!-- Example using CIFS -->
<debug enable="0" />
<volume
fstype="cifs"
server="ucilnicesmb.fri1.uni-lj.si"
path="profiles/%(DOMAIN_USER).%(DOMAIN_NAME)"
mountpoint="~/"
options="sec=krb5i,cruid=%(USERUID),nobrl,sfu,mfsymlinks"
>
<not>
<or>
<user>local_admin</user>
<user>root</user>
<user>lightdm</user>
<sgrp>users</sgrp>
</or>
</not>
</volume>
<!-- <volume
fstype="cifs"
server="ucilnicesmb.fri1.uni-lj.si"
path="profiles/%(DOMAIN_USER).V6"
mountpoint="~/win_profile"
options="sec=krb5i,cruid=%(USERUID)"
>
<not>
<or>
<user>local_admin</user>
<user>root</user>
<sgrp>users</sgrp>
</or>
</not>
</volume> -->
</pam_mount>

View file

@ -1,39 +1,25 @@
- name: Install required packages
apt:
name:
- realmd
- sssd
- libpam-mount
- heimdal-clients
- name: Remove krb5-user
apt:
name:
krb5-user
state: absent
- name: Set OU
set_fact:
ou_path: "OU={{locations[0]}},OU=Ucilnice"
- name: Show state
debug:
msg: "Host: {{inventory_hostname}}, OU: {{ou_path}}"
# - import_tasks: ne_sysprep.yaml
- name: "Rename"
# Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
hostname:
name: "{{inventory_hostname}}-linux"
register: hostname_res
- name: Enable create homedir on login
command: pam-auth-update --enable mkhomedir
become: true
- name: Check whether we already joined
command: /bin/bash -c "/usr/sbin/realm list"
register: realm_list_results
- name: Set OU
set_fact:
ou_path: "OU={{locations[0]}},OU=Ucilnice"
- name: Show state
debug:
msg: "Host: {{inventory_hostname}}, OU: {{ou_path}}"
# - import_tasks: ne_sysprep.yaml
- name: "Rename"
# Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
hostname:
name: "{{inventory_hostname}}"
register: hostname_res
- name: Join using realmd
expect:
command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} {{domain_name}}
command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} FRI1.UNI-LJ.SI
responses:
(?i)Password: "{{ad_join_password}}"
ignore_errors: yes
@ -46,20 +32,3 @@
owner: root
mode: 0600
- name: Configure libpam-mount
copy:
src: pam_mount.conf.xml
dest: /etc/security/pam_mount.conf.xml
- name: Enable libpam-mount
command: pam-auth-update --enable libpam-mount
become: true
- name: Disable libpam-mkhomedir
command: pam-auth-update --disable mkhomedir
become: true
- name: Restart sssd
service:
name: sssd
state: restarted

View file

@ -1,22 +1,18 @@
- name: Set OU
set_fact:
ou_path: "OU={{locations[0]}},OU=Ucilnice,DC=fri1,DC=uni-lj,DC=si"
- name: "Rename"
# Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
win_hostname:
name: "{{inventory_hostname}}"
register: hostname_res
- name: "Reboot after hostname change"
win_reboot:
when: hostname_res.reboot_required
- name: Stop Windows Update Service
win_service:
name: wuauserv
state: stopped
- name: Clear WSUS ID from registry
win_regedit:
path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
@ -28,40 +24,25 @@
- AccountDomainSid
- SusClientId
- SusClientIDValidation
- name: Start Windows Update Service
win_service:
name: wuauserv
state: started
- name: "Join domain"
win_domain_membership:
domain_admin_user: "{{ad_join_user}}"
domain_admin_password: "{{ad_join_password}}"
domain_admin_user: "{{adjoin_user}}"
domain_admin_password: "{{adjoin_password}}"
dns_domain_name: "{{domain_name}}"
domain_ou_path: "{{ou_path}}"
hostname: "{{inventory_hostname}}"
state: domain
register: domain_state
- name: Reset WSUS authorization
win_command: wuauclt.exe /resetauthorization /detectnow
ignore_errors: yes
- name: Update windows
win_command: wuauclt.exe /updatenow
ignore_errors: yes
- name: Fix broken display settings - start CDPSvc
win_regedit:
path: "{{item}}"
name: "Start"
type: dword
data: 0x00000002
with_items:
- HKLM\SYSTEM\CurrentControlSet\Services\CDPSvc
- HKLM\SYSTEM\CurrentControlSet\Services\CDPUserSvc
- name: Reboot
win_command: "shutdown /r"
when: domain_state.reboot_required

View file

@ -3,7 +3,6 @@ config_file_version = 2
domains = fri1.uni-lj.si
enable_files_domain = False
services = nss, pam
default_domain_suffix = student.uni-lj.si
[nss]
filtered_groups = root
@ -28,7 +27,5 @@ krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
full_name_format = %1$s@%3$s
fallback_homedir = /home/%u@%d
access_provider = ad
krb5_ccname_template = FILE:%d/krb5cc_%U

View file

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

View file

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

View file

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

View file

@ -1,80 +1,27 @@
- name: Set Android Studio version
set_fact:
studio_path: "{{ large_prog_dir }}\\android-studio"
sdk_path: "{{ large_prog_dir }}\\android-sdk"
studio_version: "2025.1.2.13"
tools_version: "13114758_latest"
- name: Set Android command-line tools path
set_fact:
tools_path: "{{ studio_path }}\\cmdline-tools\\latest"
- name: Check Android Studio
win_stat:
path: "{{ studio_path }}\\bin\\studio64.exe"
register: studio
- when: not studio.stat.exists
block:
- name: Download Android Studio
win_get_url:
url: "https://redirector.gvt1.com/edgedl/android/studio/ide-zips/{{ studio_version }}/android-studio-{{ studio_version }}-windows.zip"
dest: "{{ large_prog_dir }}\\"
- name: Extract Android Studio
win_unzip:
src: "{{ large_prog_dir }}\\android-studio-{{ studio_version }}-windows.zip"
dest: "{{ large_prog_dir }}\\"
delete_archive: yes
sdk_path: C:\android-sdk
studio_version: "2025.1.2.11"
tools_version: "latest"
- name: Check Android Studio tools
win_stat:
path: "{{ tools_path }}\\bin\\sdkmanager.bat"
path: "{{ sdk_path }}\\platform-tools\\adb.exe"
register: tools
- when: not tools.stat.exists
block:
- name: Download Android Studio tools
win_get_url:
url: "https://dl.google.com/android/repository/commandlinetools-win-{{ tools_version }}.zip"
# url: "https://dl.google.com/android/repository/platform-tools-{{ tools_version }}-windows.zip"
dest: "{{ studio_path }}"
# url: "https://dl.google.com/android/repository/commandlinetools-win-{{ tools_version }}.zip"
url: "https://dl.google.com/android/repository/platform-tools-{{ tools_version }}-windows.zip"
dest: C:\
- name: Extract Android Studio tools
win_unzip:
# src: "{{ large_prog_dir }}\\platform-tools-{{ tools_version }}-windows.zip"
src: "{{ studio_path}}\\commandlinetools-win-{{ tools_version }}.zip"
dest: "{{ studio_path }}\\cmdline-tools\\"
src: "C:\\platform-tools-{{ tools_version }}-windows.zip"
dest: "{{ sdk_path }}\\"
delete_archive: yes
- name: Move cmdline-tools to expected location
ansible.windows.win_powershell:
script: move "{{ studio_path }}\\cmdline-tools\\cmdline-tools" "{{ tools_path }}"
- name: Create Android Studio data directory
win_file:
path: "{{ large_prog_dir }}\\.android"
state: directory
- name: Create Android Studio SDK directory
win_file:
path: "{{ sdk_path }}"
state: directory
- name: Create Android Studio shortcut
win_shortcut:
dest: "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Android Studio\\Android Studio.lnk"
src: "{{ studio_path }}\\bin\\studio64.exe"
- name: Set Android Studio environment variables
win_environment:
level: machine
variables:
ANDROID_HOME: "{{ studio_path }}"
ANDROID_SDK_ROOT: "{{ sdk_path }}"
ANDROID_PREFS_ROOT: "{{ large_prog_dir }}\\"
GRADLE_USER_HOME: "{{ large_prog_dir }}\\.gradle"
# - name: Accept Android SDK licenses
# win_shell: sh -c "yes | /c/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager.bat --licenses"
@ -82,21 +29,35 @@
- name: Include Android SDK packages
include_vars: androidsdk_packages.yml
- name: Install Android SDK packages
win_shell: |
{{ tools_path }}\bin\sdkmanager.bat --install "{{ item }}"
loop: "{{ AndroidSDK_packages }}"
#- name: Install Android SDK
# win_shell: |
# {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "{{ item }}"
# loop: "{{ AndroidSDK_packages }}"
# {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "{{ AndroidSDK_packages | join(' ') }}"
# {{ sdk_path }}\\cmdline-tools\\cmdline-tools\\bin\\sdkmanager --install "build-tools;33.0.0" "cmdline-tools;latest" "emulator" "ndk-bundle" "ndk;25.1.8937393" "platform-tools" "platforms;android-33" "sources;android-33" "system-images;android-33;google_apis;arm64-v8a" "system-images;android-33;google_apis;x86_64"
#- name: Install Android Studio
# win_package:
# path: "https://redirector.gvt1.com/edgedl/android/studio/install/{{ studio_version }}/android-studio-{{ studio_version }}-windows.exe"
# arguments: /S /AllUsers
# expected_return_code: [0, 1223, 3010]
# creates_path: "%ProgramFiles%\\Android\\Android Studio\\bin\\studio64.exe"
- name: 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"

View file

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

View file

@ -1,32 +1,4 @@
#- name: Add blender PPA
# command: add-apt-repository -y ppa:savoury1/blender
#- name: Add blender PPA
# apt_repository:
# repo: ppa:savoury1/blender
# state: present
# update_cache: True
#- name: Install blender
# apt:
# name: blender
# state: latest
- name: Download and unpack blender
unarchive:
src: https://download.blender.org/release/Blender4.5/blender-4.5.3-linux-x64.tar.xz
dest: /usr/local/lib/
remote_src: yes
creates: /usr/local/lib/blender-4.5.3-linux-x64/blender-launcher
- name: Create blender symlink
file:
src: /usr/local/lib/blender-4.5.3-linux-x64/blender-launcher
dest: /usr/local/bin/blender
state: link
- name: Copy blender .desktop file
copy:
src: "/usr/local/lib/blender-4.5.3-linux-x64/blender.desktop"
dest: "/usr/local/share/applications"
remote_src: yes
- name: Install blender
apt:
name: blender
state: latest

View file

@ -1,3 +1,3 @@
- name: Install Blender
win_package:
path: https://ftp.nluug.nl/pub/graphics/blender/release/Blender4.5/blender-4.5.3-windows-x64.msi
path: https://ftp.nluug.nl/pub/graphics/blender/release/Blender3.3/blender-3.3.0-windows-x64.msi

View file

@ -8,10 +8,6 @@
# state: present
# update_cache: True
# validate_certs: False
- name: Remove Chromium snap
community.general.snap:
name: chromium
state: absent
- name: Install Chromium instead of Chrome
apt:

View file

@ -1,11 +0,0 @@
[Desktop Entry]
Name=CLion
GenericName=CLion
Comment=JetBrains CLion IDE
MimeType=text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-moc;text/x-c;text/x-c++;
Exec=/opt/CLion/bin/clion.sh
Icon=clion
Terminal=false
Type=Application
Categories=Education;Development;ComputerScience;
StartupNotify=true

View file

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

View file

@ -1,32 +0,0 @@
- name: Install CLion
block:
- name: Create destination for JetBrains CLion
file:
path: /opt/CLion
state: directory
- name: Download and unpack JetBrains CLion
unarchive:
src: https://data.services.jetbrains.com/products/download?code=CL&platform=linux
dest: /opt/CLion
extra_opts: --strip-components=1
creates: /opt/CLion/build.txt
remote_src: yes
- name: Install icon
block:
- file:
path: /usr/local/share/icons
state: directory
- copy:
src: /opt/CLion/bin/clion.svg
remote_src: true
dest: /usr/local/share/icons/clion.svg
- name: Create .desktop file
block:
- file:
path: /usr/local/share/applications
state: directory
- copy:
dest: /usr/local/share/applications/clion.desktop
src: clion.desktop

View file

@ -1,7 +0,0 @@
# TODO fix / test this
- name: Install Clion
win_package:
path: "https://data.services.jetbrains.com/products/download?code=CL&platform=windows"
arguments: /S
creates_path: "%ProgramFiles(x86)%\\JetBrains\\IntelliJ IDEA Community Edition {{ target_version }}\\bin\\idea64.exe"

View file

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

View file

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

View file

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

View file

@ -2,5 +2,3 @@
win_chocolatey:
ignore_checksums: true
name: cp210x-vcp-drivers-win10
#TODO remove ignore_errors once the package is repaired/updated
ignore_errors: true

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -12,4 +12,4 @@
win_lineinfile:
path: "%ProgramFiles%\\Eclipse {{ target_version }}\\eclipse\\eclipse.ini"
regexp: "osgi.instance.area.default"
line: "-Dosgi.instance.area.default=D:/Documents/eclipse-workspace"
line: "-Dosgi.instance.area.default=H:/Documents/eclipse-workspace"

View file

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

View file

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

View file

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

View file

@ -1,17 +0,0 @@
{
"policies": {
"OverrideFirstRunPage": "https://ucilnica.fri.uni-lj.si",
"OverridePostUpdatePage": "https://ucilnica.fri.uni-lj.si",
"DisableAppUpdate": true,
"DisableSystemAddonUpdate": true,
"DisableTelemetry": true,
"UserMessaging": {
"WhatsNew": false,
"ExtensionRecommendations": false,
"FeatureRecommendations": false,
"UrlbarInterventions": false,
"SkipOnboarding": true,
"MoreFromMozilla": false
}
}
}

View file

@ -31,13 +31,3 @@
- firefox
state: latest
allow_downgrade: True
- name: Create Firefox policies directory
file:
path: /etc/firefox/policies
state: directory
- name: Set Firefox policies
copy:
dest: /etc/firefox/policies/policies.json
src: policies.json

View file

@ -8,4 +8,19 @@
- name: Set Firefox policies
copy:
dest: C:\Program Files\Mozilla Firefox\distribution\policies.json
src: policies.json
content: |
{
"policies": {
"DisableAppUpdate": true,
"DisableSystemAddonUpdate": true,
"DisableTelemetry": true,
"UserMessaging": {
"WhatsNew": false,
"ExtensionRecommendations": false,
"FeatureRecommendations": false,
"UrlbarInterventions": false,
"SkipOnboarding": true,
"MoreFromMozilla": false
}
}
}

View file

@ -1,5 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM2Tn8+rH+fkFkBycxYrJ7TzhXQhuf3U+w23JFlZoRiX polz@povzpetnik"
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDRpoWIH5u2g12IM39WNRzLsPksfSjfL/82fPnuZwZ7H polz@it-polz"
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCq7NrrDD53pe9Zpn/dRSPxWQLDIZ9INS0kz/ps/9fGsM8/H/J7jr/ecj0j0jfYig6QdV8G7VnpLWjcuJ65ul3u2rnQSN78Ms/hxlAhmyahQtBA2q2D2zqI2PDWsKAySWmfFg+2W5fYmE1+F9GEB0OWNOuClmfo2A1c8Ve76qSiehHgjYo0G1CQrXkmE00GBLqyqkbyyStLa9DUfaDwrbOu4tJChHo4jDGuLH5QCYcN+RRXjwPQKgk0L2yfu1479L0XqhbEo+KHoIZH501fkoE+gUKVyLERvkhKSiCgPhJmAgRN1bRsiyTwvQzoED4q1RwFmG0AKg0U5bHnAAOd77uyuIYmcFiaRGHROQ9ZbyB9tJ07QrFlzRkderDd5Z18mO7LtgDjFZ2B2DlRY6zxMiUqJyDRnHjDF3+3DTlHIUCC3aEtoYS8MPyRL1b8XenIqswXkM+vkYFeKh2ynjNu3C6VqDCXZFvIi6f1X0ojZXRrDmbiON8Y74HjxP0z6TB1U30= polz@ucilnicenfs-2020
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDRpoWIH5u2g12IM39WNRzLsPksfSjfL/82fPnuZwZ7H polz@it-polz

View file

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

View file

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

View file

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

View file

@ -1,55 +1,6 @@
- name: Enable multiarch
command: dpkg --add-architecture i386
- name: Create swap btrfs subvolume
command: btrfs subvolume create /swap
ignore_errors: True
- name: Create swap directory if it does not exist
file:
path: /swap
state: directory
- name: Create btrfs swap
command: btrfs filesystem mkswapfile --size 4g /swap/swap.img
ignore_errors: True
- name: Create swap image if it does not exist
shell: fallocate -l 4G /swap/swap.img && mkswap /swap/swap.img
args:
creates: /swap/swap.img
ignore_errors: True
- name: Change swap file permissions
file: path="/swap/swap.img"
owner=root
group=root
mode=0600
- name: Write swap entry in fstab
mount: name=none
src=/swap/swap.img
fstype=swap
opts=sw
passno=0
dump=0
state=present
- name: Activate swap
command: "swapon /swap/swap.img"
ignore_errors: True
- name: Make sure default swap entry does not exist
mount:
path: none
src: /swap.img
fstype: swap
state: absent
- name: Make sure default swap is not used
command: swapoff /swap/swap.img
ignore_errors: True
- name: Install generally useful packages
apt:
name:
@ -62,6 +13,7 @@
- kwrite
- kate
- krita
- blender
- inkscape
- pcmanfm-qt
- qutebrowser
@ -72,13 +24,9 @@
- qemu-utils
- virt-manager
- wine
- wine64
- wine32:i386
- wine-binfmt
- dosbox
- htop
- btop
- iotop
# - webext-ublock-origin-chromium
# - webext-ublock-origin-firefox
- nethack-console
@ -101,11 +49,8 @@
- neovim-qt
- binwalk
- iotop
- evince
- okular
- htop
- jdupes
- snapper
state: latest
update_cache: yes
@ -114,33 +59,8 @@
name:
- xfce4-screensaver
- xscreensaver
- thunderbird
- kmail
state: absent
- name: Set volumes for snapper
set_fact:
snapper_volumes:
- { confname: 'root', subvolume: '/'}
- { confname: 'opt', subvolume: '/opt'}
- name: Create snapper configs
command: snapper -c {{item.confname}} create-config {{item.subvolume}}
ignore_errors: true
loop: "{{snapper_volumes}}"
- name: Overwrite snapper configs
template:
src: snapper
dest: /etc/snapper/configs/{{item.confname}}
loop: "{{ snapper_volumes }}"
- name: Disable APT snapshots for snapper
lineinfile:
path: /etc/default/snapper
regexp: '^DISABLE_APT_SNAPSHOT='
line: 'DISABLE_APT_SNAPSHOT="yes"'
- name: Set up additional groups for students
vars:
additional_groups:
@ -180,7 +100,7 @@
mount:
boot: true
fstype: ntfs-3g
src: "PARTLABEL=Basic\\040data\\040partition"
src: UUID=A09E30889E30594C
path: /mnt/C
state: mounted
opts: defaults,nofail
@ -189,7 +109,7 @@
mount:
boot: true
fstype: ntfs-3g
src: "PARTLABEL=D:"
src: "LABEL=D:"
path: /mnt/D
state: mounted
opts: defaults,nofail
@ -224,42 +144,3 @@
copy:
dest: /etc/udev/rules.d/
src: 99-wakeonlan.rules
- name: Put dconf files in XDG_RUNTIME_DIR so dconf works on network-mounted homes
block:
- file:
path: /etc/dconf/profile
state: directory
- copy:
dest: /etc/dconf/profile/user
src: user.dconf
- name: Shorten PS1 prompt
replace:
path: "{{ item }}"
regexp: 'PS1=(.*)\\u@\\h'
replace: PS1=\1${USER%@*}
loop:
- /etc/skel/.bashrc
- /etc/profile
- /etc/bash.bashrc
- name: Hide users in lightdm
lineinfile:
path: /etc/lightdm/lightdm.conf
regexp: "#?greeter-hide-users="
line: greeter-hide-users=true
- name: Hide users in sddm
copy:
dest: /etc/sddm.conf.d/
src: hide_users.conf
- name: Copy authorized_keys
become: false
ansible.posix.authorized_key:
user: "{{ ansible_user }}"
key: "{{ lookup('file', 'authorized_keys') }}"
state: present
exclusive: true

View file

@ -36,15 +36,5 @@
allow_clobber: true
state: present
- name: Copy admin ssh keys to authorized_keys
win_copy:
src: authorized_keys
dest: "%USERPROFILE%\\.ssh"
- name: Copy admin keys to administrators_authorized_keys
win_copy:
src: authorized_keys
dest: C:\ProgramData\ssh\administrators_authorized_keys
# TODO: turn on GPO to allow guest SMB logins
# TODO: open firewall for Samba

View file

@ -1,11 +0,0 @@
[Desktop Entry]
Name=IDEA
GenericName=IDEA
Comment=JetBrains IDEA
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/opt/IDEA/bin/idea.sh
Icon=idea
Terminal=false
Type=Application
Categories=Development;ComputerScience;
StartupNotify=true

View file

@ -6,27 +6,7 @@
state: directory
- name: Download and unpack JetBrains IDEA
unarchive:
src: https://data.services.jetbrains.com/products/download?code=IIU&platform=linux
src: https://download.jetbrains.com/idea/ideaIC-2023.2.1.tar.gz
dest: /opt/IDEA
extra_opts: --strip-components=1
creates: /opt/IDEA/build.txt
creates: /opt/IDEA/idea-IC-232.9559.62/build.txt
remote_src: yes
- name: Install icon
block:
- file:
path: /usr/local/share/icons
state: directory
- copy:
src: /opt/IDEA/bin/idea.svg
remote_src: true
dest: /usr/local/share/icons/idea.svg
- name: Create .desktop file
block:
- file:
path: /usr/local/share/applications
state: directory
- copy:
dest: /usr/local/share/applications/idea.desktop
src: idea.desktop

View file

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

View file

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

View file

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

View file

@ -1,11 +1,6 @@
- name: Install latest OpenJDK (25)
- name: Install OpenJDK 21
apt:
name: openjdk-25-jdk
state: latest
- name: Install latest Java docs
apt:
name: openjdk-25-doc
name: openjdk-21-jdk
state: latest
- name: Install OpenJDK 17

View file

@ -28,13 +28,6 @@
state: present
scope: machine
- name: Add Java bin dir to PATH
win_path:
name: PATH
elements: "{{ reg['raw_value'] }}\\bin"
state: present
scope: machine
- name: Disable Java updates
win_regedit:
path: HKLM:\SOFTWARE\WOW6432Node\JavaSoft\Java Update\Policy

View file

@ -11,10 +11,6 @@
dest: /opt/logisim
remote_src: yes
creates: /opt/logisim/META-INF/MANIFEST.MF
- name: Create destination for Logisim - Evolution
file:
path: /opt/logisim-evolution
state: directory
- name: Download and unpack Logisim - Evolution
unarchive:
src: https://github.com/logisim-evolution/logisim-evolution/releases/download/v3.9.0/logisim-evolution-3.9.0-all.jar

View file

@ -2,7 +2,7 @@
set_fact:
target_version: "R2025a_Update_1"
license_path: \\ucilnicesmb.fri1.uni-lj.si\ucilnice_d\install\matlab\network.lic
dest_dir: "{{ large_prog_dir }}\\matlab"
dest_dir: C:\matlab
- name: Set ISO path
set_fact:

View file

@ -1,11 +1,4 @@
- name: Install matplotlib
- name: Install maptplotlib
apt:
name:
- python3-matplotlib
- python3-matplotlib-inline
- python3-matplotlib-venn
- python3-mpl-animators
- python3-mpl-scatter-density
- python3-mplcursors
- python3-mplexporter
state: latest
name: matplotlib
state: latest

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,14 +2,3 @@
apt:
name: ocaml
state: latest
- name: Install opam
apt:
name: opam
state: latest
- name: Init opam home
command: opam init --reinit --root=/opt/opam --dot-profile=/etc/profile.d/opam.sh --comp=4.14.2 -a
- name: Install required opam packages
shell: source /etc/profile.d/opam.sh; eval $(opam env --root=/opt/opam --set-root --switch=4.14.2); opam install --yes ocaml-lsp-server odoc ocamlformat utop dune menhir

View file

@ -3,7 +3,7 @@
- name: Set OMNet++ version
set_fact:
target_version: "6.2.0"
target_dir: "{{large_prog_dir}}\\OMNeT++"
target_dir: "C:\\OMNeT++"
- name: Check OMNet++ install status
win_stat:
@ -15,23 +15,17 @@
- name: Download OMNet++
win_get_url:
url: "https://github.com/omnetpp/omnetpp/releases/download/omnetpp-{{ target_version }}/omnetpp-{{ target_version }}-windows-x86_64.7z"
dest: "{{ large_prog_dir }}"
dest: C:\
register: download
- name: Unzip OMNet++
win_unzip:
src: "{{ download.dest }}"
dest: "{{ large_prog_dir }}"
dest: C:\
delete_archive: yes
- name: Move OMNet++ to final location
ansible.windows.win_powershell:
script: move "{{ large_prog_dir }}\omnetpp-{{ target_version }}" "{{ target_dir }}"
# win_robocopy:
# src: "{{ large_prog_dir }}\\omnetpp-{{ target_version }}"
# dest: "{{ target_dir }}"
# flags: "/move"
# win_command: cmd.exe /c move "c:\omnetpp-{{ target_version }}" "{{ target_dir }}"
win_command: cmd.exe /c move "C:\omnetpp-{{ target_version }}" "{{ target_dir }}"
- name: Create OMNet++ compile script
win_copy:
@ -46,7 +40,7 @@
line: call "%HOME%\\tools\\win32.x86_64\\msys2_shell.cmd" -mingw64 -c "./configure && make -j4" & exit
- name: Compile OMNet++
win_command: cmd.exe /c "{{ target_dir }}\mingwenv-install.cmd"
win_command: cmd.exe /c "{{ target_dir }}\\mingwenv-install.cmd"
- name: Copy OMNet++ shortcut
win_copy:

View file

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

View file

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

View file

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

View file

@ -1,13 +1,9 @@
# The installer does not work from powershell in silent mode.
#
- name: Prepare PowerDesigner setup.iss
template:
src: setup.iss
dest: c:\powerdesigner_setup.iss
- name: Install PowerDesigner
win_shell: |
{{ installers }}\PowerDesigner_12.5\cd1\setup\setup.exe /s /f1"c:\powerdesigner_setup.iss" /f2"C:\powerdesigner_log.iss"
{{ installers }}\PowerDesigner_12.5\cd1\setup\setup.exe /s /f1"{{ installers }}\PowerDesigner_12.5\setup.iss" /f2"C:\powerdesigner_log.iss"
args:
executable: cmd

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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