roles-lists: Initial version of role
Add support for archiving mailing lists from roles.
This commit is contained in:
parent
cb4292f5d0
commit
32e4f82ff2
5 changed files with 89 additions and 0 deletions
27
roles/roles-lists/files/archiver.sh
Executable file
27
roles/roles-lists/files/archiver.sh
Executable 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
|
BIN
roles/roles-lists/files/sendmail-spamc.pp
Normal file
BIN
roles/roles-lists/files/sendmail-spamc.pp
Normal file
Binary file not shown.
14
roles/roles-lists/files/sendmail-spamc.te
Normal file
14
roles/roles-lists/files/sendmail-spamc.te
Normal 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 };
|
5
roles/roles-lists/meta/main.yml
Normal file
5
roles/roles-lists/meta/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
|
||||
dependencies:
|
||||
- {role: "selinux"}
|
||||
- {role: "sendmail"}
|
43
roles/roles-lists/tasks/main.yml
Normal file
43
roles/roles-lists/tasks/main.yml
Normal 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'
|
Loading…
Add table
Add a link
Reference in a new issue