219 lines
5.9 KiB
YAML
219 lines
5.9 KiB
YAML
- hosts: localhost
|
|
tasks:
|
|
- name: Disable login screen during install
|
|
command: systemctl stop systemd-logind.service
|
|
- name: Update apt repo and cache
|
|
apt:
|
|
update_cache: yes
|
|
force_apt_get: yes
|
|
cache_valid_time: 0
|
|
|
|
- name: Upgrade all packages
|
|
apt:
|
|
upgrade: dist
|
|
force_apt_get: yes
|
|
|
|
- name: Install general packages
|
|
apt:
|
|
name:
|
|
- geany
|
|
- nfs-common
|
|
- thunderbird
|
|
state: latest
|
|
- name: Firefox snap
|
|
command: snap install firefox
|
|
|
|
- name: Enable home directory creation for new users
|
|
command: pam-auth-update --enable mkhomedir
|
|
|
|
- name: TeXlive
|
|
apt:
|
|
name:
|
|
- texlive-luatex
|
|
- texlive-latex-recommended
|
|
- texlive-latex-extra
|
|
- texlive-extra-utils
|
|
- texlive-publishers
|
|
- texlive-lang-english
|
|
- texlive-lang-german
|
|
- texlive-pictures
|
|
- texstudio
|
|
- texstudio-l10n
|
|
- name: ensures /etc/firefox/policies dir exists
|
|
file:
|
|
path: "/etc/firefox/policies"
|
|
state: directory
|
|
- name: Add Firefox bookmarks
|
|
copy:
|
|
src: firefox-policies.json
|
|
dest: /etc/firefox/policies/policies.json
|
|
|
|
- name: Add jammy-proposed
|
|
apt_repository:
|
|
repo: deb http://de.archive.ubuntu.com/ubuntu jammy-proposed universe
|
|
state: present
|
|
filename: jammy-proposed
|
|
|
|
- name: Avoid normal upgrades from jammy-proposed
|
|
copy:
|
|
dest: "/etc/apt/preferences.d/proposed-updates"
|
|
content: |
|
|
# Configure apt to allow selective installs of packages from proposed
|
|
Package: *
|
|
Pin: release a=jammy-proposed
|
|
Pin-Priority: 400
|
|
|
|
- name: Install Bacula File Daemon
|
|
apt:
|
|
name: bacula-fd
|
|
default_release: jammy-proposed
|
|
|
|
- name: Install script for bacula-fd configuration
|
|
copy:
|
|
src: bacula-conf.py
|
|
dest: /usr/local/bin/bacula-conf.py
|
|
mode: 0700
|
|
|
|
#- name: run configuration for bacula-fd
|
|
# command: /usr/local/bin/bacula-conf.py
|
|
#- name: Restart service bacula-fd
|
|
# service:
|
|
# name: bacula-fd
|
|
# state: restarted
|
|
|
|
- name: Install MATLAB dependencies
|
|
# source: https://github.com/mathworks-ref-arch/container-images/blob/main/matlab-deps/r2023b/ubuntu22.04/base-dependencies.txt
|
|
apt:
|
|
name:
|
|
- ca-certificates
|
|
- libasound2
|
|
- libc6
|
|
- libcairo-gobject2
|
|
- libcairo2
|
|
- libcap2
|
|
- libcups2
|
|
- libdrm2
|
|
- libgbm1
|
|
- libgdk-pixbuf-2.0-0
|
|
- libgl1
|
|
- libglib2.0-0
|
|
- libgstreamer-plugins-base1.0-0
|
|
- libgstreamer1.0-0
|
|
- libgtk-3-0
|
|
- libice6
|
|
- libltdl7
|
|
- libnspr4
|
|
- libnss3
|
|
- libpam0g
|
|
- libpango-1.0-0
|
|
- libpangocairo-1.0-0
|
|
- libpangoft2-1.0-0
|
|
- libsndfile1
|
|
- libuuid1
|
|
- libwayland-client0
|
|
- libxcomposite1
|
|
- libxcursor1
|
|
- libxdamage1
|
|
- libxfixes3
|
|
- libxft2
|
|
- libxinerama1
|
|
- libxrandr2
|
|
- libxt6
|
|
- libxtst6
|
|
- libxxf86vm1
|
|
- locales
|
|
- locales-all
|
|
- make
|
|
- net-tools
|
|
- procps
|
|
- sudo
|
|
- unzip
|
|
- zlib1g
|
|
- name: Install MATLAB license file
|
|
copy:
|
|
dest: /etc/matlab_license.dat
|
|
content: |
|
|
SERVER lic64-1.hrz.tu-darmstadt.de 005056bf0915 1718
|
|
SERVER lic64-2.hrz.tu-darmstadt.de 000102f14cdc 1718
|
|
SERVER lic64-3.hrz.tu-darmstadt.de 0060b0328d82 1718
|
|
USE_SERVER
|
|
|
|
- name: Mount MATLAB install media
|
|
command: mount -o ro 192.168.0.129:/srv/saltmine/matlab2023b /mnt
|
|
|
|
- name: MATLAB installation
|
|
command: /mnt/install -inputFile /mnt/installer_input.txt
|
|
|
|
- name: unmount MATLAB install media
|
|
command: umount /mnt
|
|
|
|
- name: Define MATLAB path
|
|
copy:
|
|
dest: "/etc/profile.d/matlab.sh"
|
|
content: |
|
|
PATH=$PATH:"/opt/matlab/R2023b/bin"
|
|
|
|
- name: Add MATLAB desktop entry
|
|
copy:
|
|
dest: /usr/share/applications/matlab.desktop
|
|
content: |
|
|
[Desktop Entry]
|
|
Version=1.0
|
|
Type=Application
|
|
Terminal=false
|
|
Exec=/opt/matlab/R2023b/bin/matlab -desktop
|
|
Name=MATLAB
|
|
Icon=/opt/matlab/R2023b/bin/glnxa64/cef_resources/matlab_icon.png
|
|
Categories=Development;Math;Science
|
|
Comment=Scientific computing environment
|
|
Comment[zh_CN] = 科学计算环境
|
|
StartupNotify=true
|
|
StartupWMClass=com-mathworks-util-PostVMInit
|
|
- name: ensures "/etc/dconf/db/ipkm.d" dir exists
|
|
file:
|
|
path: "/etc/dconf/db/ipkm.d"
|
|
state: directory
|
|
- name: Copy default dock configuration (1)
|
|
copy:
|
|
src: dconf/db/ipkm.d/00-ipkm-settings
|
|
dest: /etc/dconf/db/ipkm.d/00-ipkm-settings
|
|
- name: Copy default dock configuration (2)
|
|
copy:
|
|
src: dconf/profile/user
|
|
dest: /etc/dconf/profile/user
|
|
- name: Update default dock confuguration
|
|
command: dconf update
|
|
|
|
- name: Search for inventory in file
|
|
command:
|
|
cmd: grep -oP inventory_number=\\K\\d+ /etc/inventory_number.cmdline
|
|
register: result
|
|
# Since it is a reporting task
|
|
# which needs to deliver a result in any case
|
|
failed_when: result.rc != 0 and result.rc != 1
|
|
check_mode: false
|
|
changed_when: false
|
|
- name: Show result, if any
|
|
copy:
|
|
dest: /etc/inventory_number
|
|
content: |
|
|
{{ result.stdout_lines[0] }}
|
|
when: result.rc == 0
|
|
|
|
- name: Search for hostname in file
|
|
command:
|
|
cmd: grep -oP inventory_number=\\K\\w+ /etc/inventory_number.cmdline
|
|
register: result_hostname
|
|
# Since it is a reporting task
|
|
# which needs to deliver a result in any case
|
|
failed_when: result_hostname.rc != 0 and result_hostname.rc != 1
|
|
check_mode: false
|
|
changed_when: false
|
|
- name: Set hostname
|
|
command: hostnamectl set-hostname {{ result_hostname.stdout_lines[0] }}
|
|
when: result_hostname.rc == 0
|
|
|
|
|
|
- name: Enable login screen after install
|
|
command: systemctl start systemd-logind.service
|