Fix / extend README
This commit is contained in:
parent
0d1e32c626
commit
93b01e5d53
11 changed files with 267 additions and 32 deletions
35
README.md
35
README.md
|
@ -1,7 +1,40 @@
|
|||
# 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.
|
||||
- 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).
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
- name: "Rename"
|
||||
# Racunalnik najprej preimenujmo, da ne bosta v domeni obenem 2 z istim imenom
|
||||
hostname:
|
||||
name: "{{inventory_hostname}}"
|
||||
name: "{{inventory_hostname}}-linux"
|
||||
register: hostname_res
|
||||
|
||||
- name: Check whether we already joined
|
||||
|
@ -33,7 +33,7 @@
|
|||
|
||||
- name: Join using realmd
|
||||
expect:
|
||||
command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} FRI1.UNI-LJ.SI
|
||||
command: realm join --user={{ad_join_user}} --computer-ou={{ou_path}} {{domain_name}}
|
||||
responses:
|
||||
(?i)Password: "{{ad_join_password}}"
|
||||
ignore_errors: yes
|
||||
|
|
|
@ -36,8 +36,8 @@
|
|||
|
||||
- name: "Join domain"
|
||||
win_domain_membership:
|
||||
domain_admin_user: "{{adjoin_user}}"
|
||||
domain_admin_password: "{{adjoin_password}}"
|
||||
domain_admin_user: "{{ad_join_user}}"
|
||||
domain_admin_password: "{{ad_join_password}}"
|
||||
dns_domain_name: "{{domain_name}}"
|
||||
domain_ou_path: "{{ou_path}}"
|
||||
hostname: "{{inventory_hostname}}"
|
||||
|
|
|
@ -12,4 +12,4 @@
|
|||
win_lineinfile:
|
||||
path: "%ProgramFiles%\\Eclipse {{ target_version }}\\eclipse\\eclipse.ini"
|
||||
regexp: "osgi.instance.area.default"
|
||||
line: "-Dosgi.instance.area.default=H:/Documents/eclipse-workspace"
|
||||
line: "-Dosgi.instance.area.default=D:/Documents/eclipse-workspace"
|
||||
|
|
|
@ -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: C:\matlab
|
||||
dest_dir: "{{ large_prog_dir }}\\matlab"
|
||||
|
||||
- name: Set ISO path
|
||||
set_fact:
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
state: upgrade
|
||||
version: "{{ target_version }}"
|
||||
|
||||
# TODO set default project directory to H:\something
|
||||
# TODO set default project directory to {{large_prog_dir}}\something
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
- name: Set SiFive Studio install location
|
||||
set_fact:
|
||||
download_filedest: C:\FreedomStudio-4.18.0.2021-04-1-x86_64-w64-mingw32.zip
|
||||
download_filedest: "{{ large_prog_dir }}\\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: C:\SiFive\
|
||||
creates: C:\SiFive\plugins
|
||||
dest: "{{ large_prog_dir }}\\SiFive\\"
|
||||
creates: "{{ large_prog_dir }}\\SiFive\\plugins"
|
||||
delete_archive: yes
|
||||
|
||||
- name: Create desktop shortcut
|
||||
win_shortcut:
|
||||
description: "SiFive Freedom Studio"
|
||||
src: C:\SiFive\FreedomStudio.exe
|
||||
src: "{{ large_prog_dir }}\\SiFive\\FreedomStudio.exe"
|
||||
dest: '%public%\Desktop\SiFive.lnk'
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
|
||||
- name: Create STM32Duino directory
|
||||
win_file:
|
||||
path: "D:\\RAVINOR\\STM32Duino"
|
||||
path: "{{large_prog_dir}}\\RAVINOR\\STM32Duino"
|
||||
state: directory
|
||||
|
||||
- name: Install preinstalled STM32Duino & Arduino environment
|
||||
win_get_url:
|
||||
url: "https://unilj-my.sharepoint.com/:u:/g/personal/rozman_fri1_uni-lj_si/EYTFhlsJOFtFk9xsaViP0eYBtILVS24ZF_dlkgodu_L9Nw?e=geavvJ"
|
||||
dest: "D:\\RAVINOR\\STM32Duino"
|
||||
dest: "{{large_prog_dir}}\\RAVINOR\\STM32Duino"
|
||||
# TODO Don't know if unzipping is required?
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
- name: Install XAMPP
|
||||
win_chocolatey:
|
||||
name: xampp-81
|
||||
install_args: ""
|
||||
|
||||
- name: Make XAMPP config world writable
|
||||
win_acl:
|
||||
|
@ -12,7 +13,7 @@
|
|||
- name: Add firewall rules for XAMPP
|
||||
win_firewall_rule:
|
||||
name: "Allow inbound traffic for XAMPP: {{ item }}"
|
||||
program: "%SystemDrive%\\xampp\\{{ item }}"
|
||||
program: "C:\\xampp\\{{ item }}"
|
||||
action: allow
|
||||
direction: in
|
||||
protocol: tcp
|
||||
|
|
10
setup.yml
10
setup.yml
|
@ -13,8 +13,16 @@
|
|||
debugger: on_failed
|
||||
vars_files:
|
||||
- vars/software_keys.yml
|
||||
- vars/dirs.yml
|
||||
roles:
|
||||
- all_classes
|
||||
# - all_classes
|
||||
# - fri_base
|
||||
- android_studio
|
||||
# - jdk
|
||||
# - powerdesigner
|
||||
# - solidworks
|
||||
#
|
||||
# - omnetpp
|
||||
# - stm32cube
|
||||
# - processing
|
||||
# - powerdesigner
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue