Compare commits
No commits in common. "master" and "master" have entirely different histories.
131 changed files with 266 additions and 1864 deletions
36
README.md
36
README.md
|
@ -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
|
||||
|
|
19
join_ad.yml
19
join_ad.yml
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -7,6 +7,3 @@
|
|||
dependencies:
|
||||
- role: jupyter
|
||||
- role: openssl
|
||||
- role: cryptodome
|
||||
- role: pwntools
|
||||
- role: python3
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -6,4 +6,3 @@ dependencies:
|
|||
- role: gedit
|
||||
- role: mono
|
||||
- role: vscode
|
||||
- role: notepad++
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
# Tomaz.Dobravec@fri.uni-lj.si
|
||||
# Windows, Pelles C
|
||||
dependencies:
|
||||
- role: clion
|
||||
- role: pelles-c
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -14,5 +14,4 @@ dependencies:
|
|||
- role: jdk
|
||||
- role: jupyter
|
||||
- role: pycharm
|
||||
- role: cryptography
|
||||
- role: flask
|
||||
|
|
|
@ -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>
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install altair
|
||||
apt:
|
||||
name: python3-altair
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install altair
|
||||
win_command: pip install altair
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -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
|
|
@ -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"
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install Cocotb
|
||||
pip:
|
||||
executable: pipx
|
||||
name: cocotb[bus]
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install cocoTB
|
||||
win_command: pip install cocotb[bus]
|
|
@ -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
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,5 +0,0 @@
|
|||
- name: Install python-pycryptodome
|
||||
apt:
|
||||
name:
|
||||
- python3-pycryptodome
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install python3-pycryptodome
|
||||
win_command: pip install pycryptodome
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,5 +0,0 @@
|
|||
- name: Install python-cryptography
|
||||
apt:
|
||||
name:
|
||||
- python3-cryptography
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install python3-cryptography
|
||||
win_command: pip install cryptography
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install datasets
|
||||
pip:
|
||||
executable: pipx
|
||||
name: datasets
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install datasets
|
||||
win_command: pip install datasets
|
|
@ -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"
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install evaluate
|
||||
pip:
|
||||
executable: pipx
|
||||
name: evaluate
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install evaluate
|
||||
win_command: pip install evaluate
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
[Users]
|
||||
MinimumUid=999
|
||||
MaximumUid=999
|
||||
RememberLastUser=false
|
|
@ -1 +0,0 @@
|
|||
service-db:keyfile/user
|
|
@ -9,4 +9,3 @@ dependencies:
|
|||
- role: sumatrapdf
|
||||
- role: vlc
|
||||
- role: wget
|
||||
- role: prometheus-exporter
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install Icarus
|
||||
apt:
|
||||
name: iverilog
|
||||
state: latest
|
|
@ -1,5 +0,0 @@
|
|||
- name: Install Icarus Verilog
|
||||
win_chocolatey:
|
||||
name: iverilog
|
||||
version: '11.0'
|
||||
state: present
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install mlxtend
|
||||
pip:
|
||||
executable: pipx
|
||||
name: mlxtend
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install pandas
|
||||
win_command: pip install mlxtend
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install networkx
|
||||
apt:
|
||||
name: python3-networkx
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install networkx
|
||||
win_command: pip install networkx
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,5 +0,0 @@
|
|||
- name: Install numpy
|
||||
apt:
|
||||
name:
|
||||
- python3-numpy
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install numpy
|
||||
win_command: pip install numpy
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install plotly
|
||||
apt:
|
||||
name: python3-plotly
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install plotly
|
||||
win_command: pip install plotly
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,5 +0,0 @@
|
|||
- name: Install prometheus-exporter
|
||||
apt:
|
||||
name:
|
||||
- prometheus-node-exporter
|
||||
state: latest
|
|
@ -1,3 +0,0 @@
|
|||
- name: Install prometheus exporter
|
||||
win_chocolatey:
|
||||
name: prometheus-windows-exporter.install
|
|
@ -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 }}"
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,5 +0,0 @@
|
|||
- name: Install python-pwntools
|
||||
apt:
|
||||
name:
|
||||
- python3-pwntools
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install python3-pwntools
|
||||
win_command: pip install pwntools
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -10,7 +10,3 @@
|
|||
- ipython3
|
||||
state: latest
|
||||
|
||||
- name: Install generally useful libraries
|
||||
apt:
|
||||
name:
|
||||
- python3-tqdm
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,6 +0,0 @@
|
|||
- name: Install scikit
|
||||
apt:
|
||||
name:
|
||||
- python3-sklearn
|
||||
- python3-sklearn-pandas
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install scikit
|
||||
win_command: pip install scikit-learn
|
|
@ -1,4 +0,0 @@
|
|||
- import_tasks: main_win.yml
|
||||
when: ansible_os_family == 'Windows'
|
||||
- import_tasks: main_lin.yml
|
||||
when: ansible_os_family == 'Debian'
|
|
@ -1,4 +0,0 @@
|
|||
- name: Install seaborn
|
||||
apt:
|
||||
name: python3-seaborn
|
||||
state: latest
|
|
@ -1,2 +0,0 @@
|
|||
- name: Install seaborn
|
||||
win_command: pip install seaborn
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue