ansible/liebchen.yml

205 lines
5.4 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 string 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: Enable login screen after install
command: systemctl start systemd-logind.service