roles-lists: Initial version of role

Add support for archiving mailing lists from roles.
This commit is contained in:
Timo Makinen 2021-03-12 17:09:46 +00:00
parent cb4292f5d0
commit 32e4f82ff2
5 changed files with 89 additions and 0 deletions

View file

@ -0,0 +1,27 @@
#!/bin/bash
function err {
echo "$*" | mail -s "archiver: mail archiving failed" root
exit 1
}
_group=$1
_list=$2
if [ -z "$_group" ] || [ -z "$_list" ]; then
echo "Usage: $(basename "$0") <group> <list>"
exit 1
fi
_dir="/roles/${_group}/library/archive/${_list}"
_mbox="${_dir}/$(date +%Y-%m)"
if [ ! -d "$_dir" ]; then
if ! mkdir -p "$_dir" ; then
err "ERROR: Failed to create archive directory '${_dir}'"
fi
fi
if ! "/usr/bin/spamc" >> "${_mbox}" ; then
err "ERROR: Failed to archive mail into '${_mbox}'"
fi

Binary file not shown.

View file

@ -0,0 +1,14 @@
module sendmail-spamc 1.0;
require {
type spamc_exec_t;
type sendmail_t;
class file { execute execute_no_trans getattr map open read };
}
#============= sendmail_t ==============
#!!!! This avc can be allowed using the boolean 'domain_can_mmap_files'
allow sendmail_t spamc_exec_t:file map;
allow sendmail_t spamc_exec_t:file { execute execute_no_trans getattr open read };

View file

@ -0,0 +1,5 @@
---
dependencies:
- {role: "selinux"}
- {role: "sendmail"}

View file

@ -0,0 +1,43 @@
---
- name: install archiver
copy:
dest: /etc/smrsh/archiver
src: archiver.sh
mode: 0755
owner: root
group: "{{ ansible_wheel }}"
- name: link legacy archiver
file:
dest: /etc/smrsh/archiver.pl
src: /etc/smrsh/archiver
state: link
owner: root
group: "{{ ansible_wheel }}"
follow: false
- name: copy selinux module
copy:
dest: /usr/local/share/selinux/sendmail-spamc.pp
src: sendmail-spamc.pp
mode: 0644
owner: root
group: "{{ ansible_wheel }}"
- name: check if selinux module is loaded
command:
argv:
- semodule
- -l
register: result
check_mode: false
changed_when: false
- name: insall selinux module
command:
argv:
- semodule
- -i
- /usr/local/share/selinux/sendmail-spamc.pp
when: '"sendmail-spamc" not in result.stdout_lines'