175 lines
4.5 KiB
YAML
175 lines
4.5 KiB
YAML
---
|
|
|
|
- name: Set current_host_config variable to access parameters referencing this host
|
|
set_fact:
|
|
current_host_config: "{{ item.value }}"
|
|
when: item.value.hostname == ansible_fqdn
|
|
with_dict: "{{ configs.host_config }}"
|
|
|
|
- name: install python-setuptools for Python interpreter
|
|
package:
|
|
name: python-setuptools
|
|
state: present
|
|
become: true
|
|
when: ansible_distribution_major_version == "7"
|
|
|
|
- name: Deinstall postfix
|
|
package:
|
|
name: postfix
|
|
state: absent
|
|
become: true
|
|
ignore_errors: true
|
|
|
|
- name: Install python 3.6
|
|
package:
|
|
name: python36
|
|
state: present
|
|
become: true
|
|
when: ansible_distribution == "CentOS"
|
|
|
|
#Pip module has a parameter for system packages but it was added in 2.17 which might
|
|
# be to new for some developer work stations
|
|
#
|
|
- name: Install aiosmtpd for pip3
|
|
command: pip3 install --break-system-packages aiosmtpd
|
|
become: true
|
|
when: ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "24"
|
|
|
|
- name: Install aiosmtpd for pip3
|
|
command: pip3 install aiosmtpd
|
|
become: true
|
|
when: (ansible_distribution == "Ubuntu" and (ansible_distribution_major_version == "20" or ansible_distribution_major_version == "22"))
|
|
|
|
- name: Install aiosmtpd for pip3
|
|
command: pip3 install aiosmtpd
|
|
become: true
|
|
when: ((ansible_os_family == "RedHat" and (ansible_distribution_major_version == "7" or ansible_distribution_major_version == "8")) or ansible_distribution == "Rocky" )
|
|
|
|
- name: Create smtplog directory
|
|
file:
|
|
path: "{{ remote_deployment_dir }}/smtplog"
|
|
state: directory
|
|
|
|
- name: Find smtpservices package
|
|
local_action:
|
|
module: find
|
|
paths: "{{ configs.deployment_dir }}"
|
|
patterns: "smtplog*.zip"
|
|
file_type: file
|
|
register: found_packages
|
|
become: false
|
|
|
|
- name: Order packages to install
|
|
set_fact:
|
|
latest_package: "{{ found_packages.files | sort(attribute='mtime',reverse=true) | first }}"
|
|
|
|
- name: Unpack smtpservice
|
|
unarchive:
|
|
src: "{{ latest_package.path }}"
|
|
dest: "{{ remote_deployment_dir }}/smtplog"
|
|
|
|
- name: Set the smtplog/smtpweb script location
|
|
find:
|
|
path: "{{ remote_deployment_dir }}/smtplog"
|
|
pattern: "smtplog*"
|
|
file_type: directory
|
|
register: smtplog_deploy_dir
|
|
|
|
- name: Set smtplog/smtpweb path
|
|
set_fact:
|
|
smtplog_path: "{{ smtplog_deploy_dir.files | map(attribute='path') | join('') }}"
|
|
|
|
- name: Install smtplog script
|
|
copy:
|
|
src: "{{ smtplog_path }}/smtplog.py"
|
|
dest: /usr/local/bin/smtplog.py
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
remote_src: true
|
|
become: true
|
|
|
|
- name: Install smtplog systemd unit
|
|
copy:
|
|
src: "{{ smtplog_path }}/smtplog.service"
|
|
dest: "{{ smtplog_service_file }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
remote_src: true
|
|
become: true
|
|
|
|
- name: Set smtplog log directory
|
|
lineinfile:
|
|
dest: "{{ smtplog_service_file }}"
|
|
regexp: '^WorkingDirectory.*$'
|
|
line: "WorkingDirectory={{ smtplog_logdir }}"
|
|
state: present
|
|
become: true
|
|
|
|
- name: Set smtplog service start command line
|
|
lineinfile:
|
|
dest: "{{ smtplog_service_file }}"
|
|
regexp: '^ExecStart.*$'
|
|
line: "ExecStart={{ smtplog_dir }}/smtplog.py -a {{ current_host_config.smtplog_server_ip | default(current_host_config.ip) }} -d {{smtplog_maildir}} -p {{ smtplog_port }}"
|
|
state: present
|
|
become: true
|
|
|
|
- name: Create log directory
|
|
file:
|
|
path: "{{ smtplog_logdir }}"
|
|
state: directory
|
|
mode: 0755
|
|
become: true
|
|
|
|
- name: Install smtpweb script
|
|
copy:
|
|
src: "{{ smtplog_path }}/smtpweb.py"
|
|
dest: /usr/local/bin/smtpweb.py
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
remote_src: true
|
|
become: true
|
|
|
|
- name: Install smtpweb systemd unit
|
|
copy:
|
|
src: "{{ smtplog_path }}/smtpweb.service"
|
|
dest: "{{ smtpweb_service_file }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
remote_src: true
|
|
become: true
|
|
|
|
- name: Set smtpweb log directory
|
|
lineinfile:
|
|
dest: "{{ smtpweb_service_file }}"
|
|
regexp: '^WorkingDirectory.*$'
|
|
line: "WorkingDirectory={{ smtpweb_logdir }}"
|
|
state: present
|
|
become: true
|
|
|
|
- name: Set smtpweb service start command line
|
|
lineinfile:
|
|
dest: "{{ smtpweb_service_file }}"
|
|
regexp: '^ExecStart.*$'
|
|
line: "ExecStart={{ smtplog_dir }}/smtpweb.py -a 127.0.0.1 -d {{smtplog_maildir}} -p {{ smtpweb_port }}"
|
|
state: present
|
|
become: true
|
|
|
|
- name: Create smptweb log directory
|
|
file:
|
|
path: "{{ smtpweb_logdir }}"
|
|
state: directory
|
|
mode: 0755
|
|
become: true
|
|
|
|
- name: Start and enable smtplog
|
|
service: name={{ item }} state=started enabled=True
|
|
with_items:
|
|
- smtplog
|
|
- smtpweb
|
|
become: true
|
|
|
|
# vim:ft=ansible
|