First commit
This commit is contained in:
commit
43a457a2ed
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Ansible playbooks for deploying classroom computers. Run with something like:
|
||||||
|
|
||||||
|
ansible-playbook --user <AD admin> --ask-pass \
|
||||||
|
--become --become-method=runas --become-user=<local admin>
|
||||||
|
--inventory hosts setup.yml
|
108
TODO.md
Normal file
108
TODO.md
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
# Done
|
||||||
|
|
||||||
|
- 7-zip
|
||||||
|
- Audacity
|
||||||
|
- Blender
|
||||||
|
- Chrome
|
||||||
|
- Emacs
|
||||||
|
- Gimp
|
||||||
|
- GIT
|
||||||
|
- GIT-Extensions
|
||||||
|
- Inkscape
|
||||||
|
- Mozilla Firefox
|
||||||
|
- Notepad++
|
||||||
|
- OpenJDK
|
||||||
|
- Orange
|
||||||
|
- Pelles C for Windows
|
||||||
|
- Python (latest)
|
||||||
|
- SWI-Prolog
|
||||||
|
- Thonny
|
||||||
|
- VirtualBox
|
||||||
|
- Wireshark
|
||||||
|
|
||||||
|
# To do
|
||||||
|
|
||||||
|
- Haskell
|
||||||
|
- GNS3
|
||||||
|
- IntelliJ IDEA Community Edition
|
||||||
|
- JetBrains PyCharm Community Edition
|
||||||
|
- Android Studio
|
||||||
|
- Logisim
|
||||||
|
- Unity 2019.1.10f1
|
||||||
|
- MeshLab
|
||||||
|
- Mathlab
|
||||||
|
- Adobe Acrobat Reader
|
||||||
|
- Eclipse IDE for Java
|
||||||
|
- WinHIPsim
|
||||||
|
- APS2-Vaje
|
||||||
|
- Windows Subsystem for Linux (Ubuntu)
|
||||||
|
- Gcc
|
||||||
|
- G++
|
||||||
|
- Xcode
|
||||||
|
- Julia
|
||||||
|
- Jupyter notebook/lab
|
||||||
|
- Python knjižnice numpy, matplotlib in scipy, sqlite3 in pyodbc
|
||||||
|
- WinIdea
|
||||||
|
- gcc-arm
|
||||||
|
- VisUAL
|
||||||
|
- IntelliJ IDEA Ultimate
|
||||||
|
- Docker Toolbox (Docker for Windows uporablja HyperV virtualizacijo, ta pa zaklene VT-x samo za sebe ne glede na to ali je pognan ali ne)
|
||||||
|
- Apache Maven
|
||||||
|
- CUDA Toolkit 8.0 (na HP-jih)
|
||||||
|
- Asistentov Asisten
|
||||||
|
- FFmpeg (Windows) for Audacity
|
||||||
|
- LAME
|
||||||
|
- Heidi SQL
|
||||||
|
- IAR Embedded Workbench for ARM
|
||||||
|
- LTspice IV
|
||||||
|
- Microsoft Visual Studio Code
|
||||||
|
- RStudio
|
||||||
|
- SafeExamBrowser
|
||||||
|
- Scala Programming Language Distribution
|
||||||
|
- VMware Workstation
|
||||||
|
- XAMPP
|
||||||
|
- Xilinx Desing Tools ISE WebPACK
|
||||||
|
- Weka
|
||||||
|
- TortoiseSVN
|
||||||
|
- Tableau
|
||||||
|
- Sybase PowerDesigner
|
||||||
|
- SoapUI
|
||||||
|
- Scilab
|
||||||
|
- Racket
|
||||||
|
- Standard ML of New Jersey
|
||||||
|
- R for Windows
|
||||||
|
- PyQt for Python
|
||||||
|
- Oracle VM VirtualBox
|
||||||
|
- Octave
|
||||||
|
- NetBeans IDE
|
||||||
|
- MySQL Workbench CE
|
||||||
|
- Microsoft Web Deploy
|
||||||
|
- Microsoft Visual Studio Enterprise 2017 (Lahko Community)
|
||||||
|
- Microsoft Visual Studio Enterprise 2015 (Na HP-jih)
|
||||||
|
- Naložiti modul za C++
|
||||||
|
- Node.js LTS
|
||||||
|
- SolidWorks
|
||||||
|
- Gnuplot
|
||||||
|
- Gv
|
||||||
|
- Imagemagick
|
||||||
|
- OpenModelica
|
||||||
|
- Postman
|
||||||
|
- Python knjižnice Biopython, skfusion, networkx, pandas, scikit-learn
|
||||||
|
- OCaml
|
||||||
|
- Podatkovne baze na WAFL
|
||||||
|
- Mendeley for Desktop
|
||||||
|
- Mendeley Web Importer for Chrome
|
||||||
|
- Omnetpp
|
||||||
|
- Arduino IDE + esp 8266
|
||||||
|
- QUcs
|
||||||
|
- Office 2016
|
||||||
|
- StarEEvaluation software-FKKT
|
||||||
|
- AutoCAD-FKKT
|
||||||
|
- PathFinder 2018-FKKT
|
||||||
|
- Processing v 3.3.7
|
||||||
|
- Microsoft project Professional 2016
|
||||||
|
- Autodesk Maya
|
||||||
|
- JRE 8u181 in JRE 8u181 (x64) in JDK 10.2
|
||||||
|
|
||||||
|
# nonfree
|
||||||
|
- Sublime Text
|
5
group_vars/classroom/vars.yml
Normal file
5
group_vars/classroom/vars.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
ansible_connection: winrm
|
||||||
|
ansible_winrm_transport: ntlm
|
||||||
|
ansible_winrm_server_cert_validation: ignore
|
||||||
|
ansible_port: 5985
|
||||||
|
logon_type: interactive
|
6
hosts
Normal file
6
hosts
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
all:
|
||||||
|
children:
|
||||||
|
classroom:
|
||||||
|
hosts:
|
||||||
|
prototip:
|
||||||
|
ansible_host: 10.32.231.3
|
3
roles/classroom/tasks/7zip.yml
Normal file
3
roles/classroom/tasks/7zip.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install 7-zip
|
||||||
|
win_chocolatey:
|
||||||
|
name: 7zip
|
3
roles/classroom/tasks/audacity.yml
Normal file
3
roles/classroom/tasks/audacity.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install Audacity
|
||||||
|
win_chocolatey:
|
||||||
|
name: audacity
|
3
roles/classroom/tasks/blender.yml
Normal file
3
roles/classroom/tasks/blender.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install Blender
|
||||||
|
win_package:
|
||||||
|
path: https://ftp.nluug.nl/pub/graphics/blender/release/Blender3.3/blender-3.3.0-windows-x64.msi
|
10
roles/classroom/tasks/chrome.yml
Normal file
10
roles/classroom/tasks/chrome.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
- name: Install Chrome
|
||||||
|
win_chocolatey:
|
||||||
|
name: googlechrome
|
||||||
|
|
||||||
|
- name: Disable Chrome updates
|
||||||
|
win_regedit:
|
||||||
|
path: HKLM:\SOFTWARE\Policies\Google\Update
|
||||||
|
name: AutoUpdateCheckPeriodMinutes
|
||||||
|
type: dword
|
||||||
|
data: 0
|
4
roles/classroom/tasks/emacs.yml
Normal file
4
roles/classroom/tasks/emacs.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
- name: Install Emacs
|
||||||
|
win_chocolatey:
|
||||||
|
name: emacs.install
|
||||||
|
state: present
|
26
roles/classroom/tasks/firefox.yml
Normal file
26
roles/classroom/tasks/firefox.yml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
- name: Install Firefox
|
||||||
|
win_chocolatey:
|
||||||
|
name: firefox
|
||||||
|
- name: Create Firefox policy directory
|
||||||
|
win_file:
|
||||||
|
dest: C:\Program Files\Mozilla Firefox\distribution
|
||||||
|
state: directory
|
||||||
|
- name: Set Firefox policies
|
||||||
|
copy:
|
||||||
|
dest: C:\Program Files\Mozilla Firefox\distribution\policies.json
|
||||||
|
content: |
|
||||||
|
{
|
||||||
|
"policies": {
|
||||||
|
"DisableAppUpdate": true,
|
||||||
|
"DisableSystemAddonUpdate": true,
|
||||||
|
"DisableTelemetry": true,
|
||||||
|
"UserMessaging": {
|
||||||
|
"WhatsNew": false,
|
||||||
|
"ExtensionRecommendations": false,
|
||||||
|
"FeatureRecommendations": false,
|
||||||
|
"UrlbarInterventions": false,
|
||||||
|
"SkipOnboarding": true,
|
||||||
|
"MoreFromMozilla": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
roles/classroom/tasks/gimp.yml
Normal file
3
roles/classroom/tasks/gimp.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install GIMP
|
||||||
|
win_chocolatey:
|
||||||
|
name: gimp
|
8
roles/classroom/tasks/git.yml
Normal file
8
roles/classroom/tasks/git.yml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
- name: Install git
|
||||||
|
win_chocolatey:
|
||||||
|
name: git.install
|
||||||
|
package_params: /GitAndUnixToolsOnPath
|
||||||
|
|
||||||
|
- name: Install git-extensions
|
||||||
|
win_chocolatey:
|
||||||
|
name: gitextensions, kdiff3
|
3
roles/classroom/tasks/inkscape.yml
Normal file
3
roles/classroom/tasks/inkscape.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install Inkscape
|
||||||
|
win_chocolatey:
|
||||||
|
name: inkscape
|
19
roles/classroom/tasks/main.yml
Normal file
19
roles/classroom/tasks/main.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
- import_tasks: 7zip.yml
|
||||||
|
- import_tasks: audacity.yml
|
||||||
|
- import_tasks: blender.yml
|
||||||
|
- import_tasks: chrome.yml
|
||||||
|
- import_tasks: emacs.yml
|
||||||
|
- import_tasks: inkscape.yml
|
||||||
|
- import_tasks: firefox.yml
|
||||||
|
- import_tasks: gimp.yml
|
||||||
|
- import_tasks: git.yml
|
||||||
|
- import_tasks: notepad++.yml
|
||||||
|
- import_tasks: openjdk.yml
|
||||||
|
- import_tasks: orange.yml
|
||||||
|
- import_tasks: pelles-c.yml
|
||||||
|
- import_tasks: processing.yml
|
||||||
|
- import_tasks: python.yml
|
||||||
|
- import_tasks: swi-prolog.yml
|
||||||
|
- import_tasks: thonny.yml
|
||||||
|
- import_tasks: virtualbox.yml
|
||||||
|
- import_tasks: wireshark.yml
|
4
roles/classroom/tasks/notepad++.yml
Normal file
4
roles/classroom/tasks/notepad++.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# TODO disable update check
|
||||||
|
- name: Install Notepad++
|
||||||
|
win_chocolatey:
|
||||||
|
name: notepadplusplus
|
3
roles/classroom/tasks/openjdk.yml
Normal file
3
roles/classroom/tasks/openjdk.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install OpenJDK
|
||||||
|
win_chocolatey:
|
||||||
|
name: openjdk
|
7
roles/classroom/tasks/orange.yml
Normal file
7
roles/classroom/tasks/orange.yml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
- name: Install Orange
|
||||||
|
win_package:
|
||||||
|
path: https://download.biolab.si/download/files/Orange3-3.32.0-Miniconda-x86_64.exe
|
||||||
|
arguments: /S /AllUsers
|
||||||
|
creates_path: C:\Program Files\Orange\python.exe
|
||||||
|
creates_version: 3.8.8150.1013
|
||||||
|
|
31
roles/classroom/tasks/pelles-c.yml
Normal file
31
roles/classroom/tasks/pelles-c.yml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# TODO switch to chocolatey once they fix the installer and upgrade to 11
|
||||||
|
- name: Set PellesC version
|
||||||
|
set_fact:
|
||||||
|
target_version: "11.00"
|
||||||
|
target_checksum: "a8ae79f0e340e4c0cec0869dd72fcd875496acc470174aed8eb377eab8bbce96"
|
||||||
|
|
||||||
|
- name: Check PellesC install status
|
||||||
|
win_stat:
|
||||||
|
path: C:\Program Files\PellesC\Bin\poide.exe
|
||||||
|
register: file
|
||||||
|
|
||||||
|
- when: not file.stat.exists
|
||||||
|
block:
|
||||||
|
# win_package fails to download for some reason
|
||||||
|
- name: Download PellesC
|
||||||
|
win_get_url:
|
||||||
|
url: http://www.smorgasbordet.com/pellesc/{{ target_version | replace('.', '') }}/setup.exe
|
||||||
|
checksum_algorithm: sha256
|
||||||
|
checksum: "{{ target_checksum }}"
|
||||||
|
dest: 'C:\'
|
||||||
|
register: download
|
||||||
|
|
||||||
|
- name: Install PellesC
|
||||||
|
win_package:
|
||||||
|
path: "{{ download.dest }}"
|
||||||
|
arguments: /S
|
||||||
|
|
||||||
|
- name: Remove temporary files
|
||||||
|
win_file:
|
||||||
|
path: "{{ download.dest }}"
|
||||||
|
state: absent
|
47
roles/classroom/tasks/processing.yml
Normal file
47
roles/classroom/tasks/processing.yml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
- name: Set Processing version
|
||||||
|
set_fact:
|
||||||
|
target_version: 4.0.1
|
||||||
|
target_build: 1286
|
||||||
|
|
||||||
|
- name: Check Processing install status
|
||||||
|
win_stat:
|
||||||
|
path: C:\Program Files\Processing\lib\version.txt
|
||||||
|
register: file
|
||||||
|
|
||||||
|
- name: Check Processing version
|
||||||
|
slurp:
|
||||||
|
src: C:\Program Files\Processing\lib\version.txt
|
||||||
|
register: version
|
||||||
|
when: file.stat.exists
|
||||||
|
|
||||||
|
- when: not file.stat.exists or ((version.content | b64decode) != target_version)
|
||||||
|
block:
|
||||||
|
- name: Make Processing directory
|
||||||
|
win_file:
|
||||||
|
path: C:\Program Files\Processing
|
||||||
|
state: directory
|
||||||
|
- name: Download Processing
|
||||||
|
win_get_url:
|
||||||
|
dest: 'C:\Program Files\Processing\processing.zip'
|
||||||
|
url: https://github.com/processing/processing4/releases/download/processing-{{ target_build }}-{{ target_version }}/processing-{{ target_version }}-windows-x64.zip
|
||||||
|
- name: Unzip Processing
|
||||||
|
win_unzip:
|
||||||
|
dest: 'C:\Program Files\Processing'
|
||||||
|
src: 'C:\Program Files\Processing\processing.zip'
|
||||||
|
- name: Install Processing
|
||||||
|
win_copy:
|
||||||
|
dest: C:\Program Files\Processing\
|
||||||
|
src: 'C:\Program Files\Processing\processing-{{ target_version }}\'
|
||||||
|
remote_src: yes
|
||||||
|
- name: Disable telemetry
|
||||||
|
win_lineinfile:
|
||||||
|
path: C:\Program Files\Processing\lib\defaults.txt
|
||||||
|
regexp: 'update.check'
|
||||||
|
line: 'update.check = false'
|
||||||
|
- name: Remove temporary files
|
||||||
|
win_file:
|
||||||
|
path: C:\Program Files\Processing\{{ item }}
|
||||||
|
state: absent
|
||||||
|
loop:
|
||||||
|
- processing.zip
|
||||||
|
- processing-{{ target_version }}
|
3
roles/classroom/tasks/python.yml
Normal file
3
roles/classroom/tasks/python.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install Python
|
||||||
|
win_chocolatey:
|
||||||
|
name: python
|
3
roles/classroom/tasks/swi-prolog.yml
Normal file
3
roles/classroom/tasks/swi-prolog.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
- name: Install SWI-Prolog
|
||||||
|
win_chocolatey:
|
||||||
|
name: swi-prolog
|
28
roles/classroom/tasks/thonny.yml
Normal file
28
roles/classroom/tasks/thonny.yml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# TODO switch to chocolatey once they upgrade to Thonny≥4
|
||||||
|
- name: Set Thonny version
|
||||||
|
set_fact:
|
||||||
|
target_version: 4.0.1
|
||||||
|
|
||||||
|
- name: Check Thonny install status
|
||||||
|
win_stat:
|
||||||
|
path: C:\Program Files (x86)\Thonny\thonny.exe
|
||||||
|
register: file
|
||||||
|
|
||||||
|
- when: not file.stat.exists
|
||||||
|
block:
|
||||||
|
# win_package fails to download for some reason
|
||||||
|
- name: Download Thonny
|
||||||
|
win_get_url:
|
||||||
|
url: https://github.com/thonny/thonny/releases/download/v{{ target_version }}/thonny-{{ target_version }}.exe
|
||||||
|
dest: 'C:\'
|
||||||
|
register: download
|
||||||
|
|
||||||
|
- name: Install Thonny
|
||||||
|
win_package:
|
||||||
|
path: "{{ download.dest }}"
|
||||||
|
arguments: /Verysilent /AllUsers
|
||||||
|
|
||||||
|
- name: Remove temporary files
|
||||||
|
win_file:
|
||||||
|
path: "{{ download.dest }}"
|
||||||
|
state: absent
|
4
roles/classroom/tasks/virtualbox.yml
Normal file
4
roles/classroom/tasks/virtualbox.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
- name: Install Virtualbox
|
||||||
|
win_chocolatey:
|
||||||
|
name: virtualbox
|
||||||
|
state: present
|
9
roles/classroom/tasks/wireshark.yml
Normal file
9
roles/classroom/tasks/wireshark.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# npcap=0.96 is the last version to support silent installation
|
||||||
|
- name: Install npcap
|
||||||
|
win_package:
|
||||||
|
path: https://npcap.com/dist/npcap-0.96.exe
|
||||||
|
arguments: /S
|
||||||
|
|
||||||
|
- name: Install Wireshark
|
||||||
|
win_chocolatey:
|
||||||
|
name: wireshark
|
Loading…
Reference in a new issue