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'] }}>"
|
||||
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."
|
||||
# only when school-network is reachable
|
||||
if nslookup "${SEEDBOX_HOST}"; then
|
||||
sudo /usr/local/bin/desktop-sync
|
||||
check_images
|
||||
fi
|
||||
if [[ "${NEWCLONE}" = 1 ]] || [[ ! -f "${VM_DIR}/${VM_NAME}-clone.qcow2" ]]; then
|
||||
|
|
|
@ -7,10 +7,3 @@
|
|||
ansible.builtin.systemd_service:
|
||||
daemon_reload: true
|
||||
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"
|
||||
{% 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
|
||||
ansible.builtin.copy:
|
||||
dest: /usr/local/bin/virt-manager
|
||||
|
|
Loading…
Add table
Reference in a new issue