- 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