From 465ba8e053c183b58fe7ddb6fa071ce7568f9af4 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 8 May 2026 09:25:10 -0700 Subject: [PATCH] Create notification system for workstations to know when Ansible has been run. --- facts/general/system.yml | 3 ++ local.yml | 38 ++++++++++++++++++--- tasks/general/acct_mgmt/notify.yml | 8 +++++ tasks/general/acct_mgmt/users.yml | 10 ++++++ tasks/workstation/shared/settings/gnome.yml | 2 +- 5 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 tasks/general/acct_mgmt/notify.yml diff --git a/facts/general/system.yml b/facts/general/system.yml index 674050b..481d8b7 100644 --- a/facts/general/system.yml +++ b/facts/general/system.yml @@ -11,10 +11,13 @@ git_repo_http: https://{{ git_host }}/{{ git_user }}/{{ git_project }} git_repo_ssh: ssh://git@{{ git_host }}:{{ git_ssh_port }}/{{ git_user }}/{{ git_project }} shared_rc_install_dir: ~/.git-env-shared + notify_log: "ansible.notify.log" - name: General | Facts | System | Global [2/2] set_fact: shared_rc_bin: "{{ shared_rc_install_dir }}/bin-shared" + notify_log_file: /var/log/{{ notify_log }} + notify_log_file_wip: /tmp/{{ notify_log }}.wip - name: General | Facts | System | Linux set_fact: diff --git a/local.yml b/local.yml index 516f871..c9d6c31 100644 --- a/local.yml +++ b/local.yml @@ -21,6 +21,19 @@ - include_tasks: facts/general/user.yml + ####### Start ####### + + - name: Main | Start + block: + + - name: Main | Start | Notify | Touch File + include_tasks: tasks/general/acct_mgmt/notify.yml + + - name: Main | Start | Notify | Add Message + shell : echo "'Ansible' 'Provisioning started @ `date`'" >> "{{ notify_log_file }}" + + when: workstation == true + ####### NixOS ####### # Install the .nix files and do a little data setup. @@ -246,8 +259,25 @@ ####### Reporting ####### # Provide information for analysis. - - include_tasks: tasks/general/software/telegraf.yml + - name: Main | Reporting + block: - - include_tasks: tasks/general/tests/services.yml - - include_tasks: tasks/general/tests/lynis.yml - - include_tasks: tasks/general/tests/nmap.yml + - include_tasks: tasks/general/software/telegraf.yml + + - include_tasks: tasks/general/tests/services.yml + - include_tasks: tasks/general/tests/lynis.yml + - include_tasks: tasks/general/tests/nmap.yml + + + ####### Finish ####### + + - name: Main | Finish + block: + + - name: Main | Finish | Notify | Touch File + include_tasks: tasks/general/acct_mgmt/notify.yml + + - name: Main | Finish | Notify | Add Message + shell : echo "'Ansible' 'Provisioning finished @ `date`'" >> "{{ notify_log_file }}" + + when: workstation == true diff --git a/tasks/general/acct_mgmt/notify.yml b/tasks/general/acct_mgmt/notify.yml new file mode 100644 index 0000000..462ddcb --- /dev/null +++ b/tasks/general/acct_mgmt/notify.yml @@ -0,0 +1,8 @@ +--- +# Create and manage permissions for notify log. + +- name: General | Notify | Update File + shell: "{{ item }}" + loop: + - touch "{{ notify_log_file }}" + - chmod 777 "{{ notify_log_file }}" diff --git a/tasks/general/acct_mgmt/users.yml b/tasks/general/acct_mgmt/users.yml index 95c80cf..dd19462 100644 --- a/tasks/general/acct_mgmt/users.yml +++ b/tasks/general/acct_mgmt/users.yml @@ -1099,6 +1099,15 @@ if [ -f ~/.rc_shared ]; then source ~/.rc_shared fi + process_notify_log: | + if [[ -e {{ notify_log_file }} ]]; then + cp "{{ notify_log_file }}" "{{ notify_log_file_wip }}" 1>/dev/null + echo -n "" > "{{ notify_log_file }}" + cat "{{ notify_log_file_wip }}" | while read title message; do + notify-send "$title" "$message" + done + sh -c "rm '{{ notify_log_file_wip }}'" + fi - name: General | Account Management | Users | Files | Common Variable @@ -1181,6 +1190,7 @@ {{ alias_flatpak_clean }} {{ alias_commit }} {{ function_loop }} + {{ process_notify_log }} - name: General | Account Management | Users | Files | .bashrc blockinfile: diff --git a/tasks/workstation/shared/settings/gnome.yml b/tasks/workstation/shared/settings/gnome.yml index c6474b2..432200c 100644 --- a/tasks/workstation/shared/settings/gnome.yml +++ b/tasks/workstation/shared/settings/gnome.yml @@ -247,7 +247,7 @@ true && inc_dconf && dconf write /org/gnome/desktop/notifications/show-banners \ - false && inc_dconf && + true && inc_dconf && dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution-alarm-notify/enable-sound-alerts \ false && inc_dconf && dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution-alarm-notify/enable \