Sync application starters on boot and separate ansible tasks from lmn_vm role
This commit is contained in:
parent
39da308ff7
commit
a6eadce948
11 changed files with 101 additions and 45 deletions
20
roles/lmn_fvs/files/lmn-sync
Normal file
20
roles/lmn_fvs/files/lmn-sync
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
#
|
||||||
|
# Synchronize local program directory and desktop starters
|
||||||
|
#
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
if ! nslookup server; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#[[ -d /usr/local/lmn ]] || mkdir -p /usr/local/lmn
|
||||||
|
#rsync -rlptD --chown=pgmadmin:root --chmod=F755,D755 rsync://server:/local-program/ /usr/local/lmn
|
||||||
|
|
||||||
|
RSYNC_COMMAND=$(rsync -ai --delete --exclude=mimeinfo.cache \
|
||||||
|
--chown=root:root --chmod=F644,D755 "rsync://server:/desktopstarter" \
|
||||||
|
/usr/local/share/applications/ | sed '/ \.\//d')
|
||||||
|
if [[ $? -eq 0 ]] && [[ -n "${RSYNC_COMMAND}" ]]; then
|
||||||
|
echo "${RSYNC_COMMAND}"
|
||||||
|
update-desktop-database /usr/local/share/applications
|
||||||
|
fi
|
6
roles/lmn_fvs/files/lmn-sync.service
Normal file
6
roles/lmn_fvs/files/lmn-sync.service
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Synchronize program data and desktop starters
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/sbin/lmn-sync
|
9
roles/lmn_fvs/files/lmn-sync.timer
Normal file
9
roles/lmn_fvs/files/lmn-sync.timer
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Run lmn-sync after boot
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnBootSec=0min
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
7
roles/lmn_fvs/handlers/main.yml
Normal file
7
roles/lmn_fvs/handlers/main.yml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
- name: Run update-desktop-database
|
||||||
|
command: update-desktop-database "{{ item }}"
|
||||||
|
loop:
|
||||||
|
- /usr/local/share/applications
|
||||||
|
- /usr/local/share/desktop-directories
|
||||||
|
- /etc/xdg/menus/applications-merged
|
|
@ -305,3 +305,6 @@
|
||||||
text: sddm.hostName + " | <{{ ansible_date_time['date'] }}>"
|
text: sddm.hostName + " | <{{ ansible_date_time['date'] }}>"
|
||||||
font.pointSize: config.fontSize
|
font.pointSize: config.fontSize
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- name: Include sync
|
||||||
|
ansible.builtin.include_tasks: sync.yml
|
||||||
|
|
56
roles/lmn_fvs/tasks/sync.yml
Normal file
56
roles/lmn_fvs/tasks/sync.yml
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
- name: Create directory for local .desktop-Files
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
loop:
|
||||||
|
- /usr/local/share/applications
|
||||||
|
- /usr/local/share/desktop-directories
|
||||||
|
notify: Run update-desktop-database
|
||||||
|
|
||||||
|
- name: Copy fvs.directory
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: fvs.directory
|
||||||
|
dest: /usr/local/share/desktop-directories/
|
||||||
|
notify: Run update-desktop-database
|
||||||
|
|
||||||
|
- name: Copy fvs.menu
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: fvs.menu
|
||||||
|
dest: /etc/xdg/menus/applications-merged/
|
||||||
|
notify: Run update-desktop-database
|
||||||
|
|
||||||
|
- name: Copy lmn-sync script
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: lmn-sync
|
||||||
|
dest: /usr/local/sbin/
|
||||||
|
mode: 0755
|
||||||
|
register: lmn_sync
|
||||||
|
|
||||||
|
- name: Run lmn-sync script
|
||||||
|
ansible.builtin.shell: /usr/local/sbin/lmn-sync
|
||||||
|
when: lmn_sync.changed
|
||||||
|
|
||||||
|
- name: Deploy sudo configurations (lmn-sync for role-teacher)
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /etc/sudoers.d/90-lmn-sync
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0700'
|
||||||
|
content: |
|
||||||
|
%role-teacher ALL=(root) NOPASSWD: /usr/local/sbin/lmn-sync
|
||||||
|
|
||||||
|
- name: Provide lmn-sync service and timer
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "/etc/systemd/system/{{ item }}"
|
||||||
|
mode: 0644
|
||||||
|
loop:
|
||||||
|
- lmn-sync.service
|
||||||
|
- lmn-sync.timer
|
||||||
|
|
||||||
|
- name: Enable lmn-sync.timer
|
||||||
|
systemd:
|
||||||
|
name: lmn-sync.timer
|
||||||
|
enabled: true
|
|
@ -301,7 +301,6 @@ if ! virsh --connect="${QEMU}" list | grep "${VM_NAME}-clone"; then
|
||||||
echo "VM not yet running."
|
echo "VM not yet running."
|
||||||
# only when school-network is reachable
|
# only when school-network is reachable
|
||||||
if nslookup "${SEEDBOX_HOST}"; then
|
if nslookup "${SEEDBOX_HOST}"; then
|
||||||
sudo /usr/local/bin/desktop-sync
|
|
||||||
check_images
|
check_images
|
||||||
fi
|
fi
|
||||||
if [[ "${NEWCLONE}" = 1 ]] || [[ ! -f "${VM_DIR}/${VM_NAME}-clone.qcow2" ]]; then
|
if [[ "${NEWCLONE}" = 1 ]] || [[ ! -f "${VM_DIR}/${VM_NAME}-clone.qcow2" ]]; then
|
||||||
|
|
|
@ -7,10 +7,3 @@
|
||||||
ansible.builtin.systemd_service:
|
ansible.builtin.systemd_service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
listen: daemon reload
|
listen: daemon reload
|
||||||
|
|
||||||
- name: Run update-desktop-database
|
|
||||||
command: update-desktop-database "{{ item }}"
|
|
||||||
loop:
|
|
||||||
- /usr/local/share/applications
|
|
||||||
- /usr/local/share/desktop-directories
|
|
||||||
- /etc/xdg/menus/applications-merged
|
|
||||||
|
|
|
@ -268,43 +268,6 @@
|
||||||
SUBSYSTEMS=="net", KERNELS=="macvtap-{{ interface[3:9] }}", MODE="0666"
|
SUBSYSTEMS=="net", KERNELS=="macvtap-{{ interface[3:9] }}", MODE="0666"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
- name: Create directory for local .desktop-Files
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
mode: '0755'
|
|
||||||
loop:
|
|
||||||
- /usr/local/share/applications
|
|
||||||
- /usr/local/share/desktop-directories
|
|
||||||
notify: Run update-desktop-database
|
|
||||||
|
|
||||||
- name: Copy fvs.directory
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: fvs.directory
|
|
||||||
dest: /usr/local/share/desktop-directories/
|
|
||||||
notify: Run update-desktop-database
|
|
||||||
|
|
||||||
- name: Copy fvs.menu
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: fvs.menu
|
|
||||||
dest: /etc/xdg/menus/applications-merged/
|
|
||||||
notify: Run update-desktop-database
|
|
||||||
|
|
||||||
- name: check if sync.desktop is installed
|
|
||||||
stat: path=/usr/local/share/applications/sync.desktop
|
|
||||||
register: syncdesktop
|
|
||||||
|
|
||||||
- name: remove deprecated desktop-files
|
|
||||||
ansible.builtin.shell: rm -f /usr/local/share/applications/*.desktop
|
|
||||||
when: not syncdesktop.stat.exists
|
|
||||||
notify: Run update-desktop-database
|
|
||||||
|
|
||||||
- name: Copy initial sync starter
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: sync.desktop
|
|
||||||
dest: /usr/local/share/applications/
|
|
||||||
notify: Run update-desktop-database
|
|
||||||
|
|
||||||
- name: Start virt-manager in session mode by default
|
- name: Start virt-manager in session mode by default
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: /usr/local/bin/virt-manager
|
dest: /usr/local/bin/virt-manager
|
||||||
|
|
Loading…
Add table
Reference in a new issue