aboutsummaryrefslogtreecommitdiff
path: root/run.yml
blob: d461d30f0ca44027677bb75dae2e1afc3af6ba49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
- name: setup
  hosts: mail_server
  become: yes

  tasks:
  - name: set system hostname
    hostname:
      name: "{{ mail_domain }}"

  - name: install packages
    package:
      name:
        - ufw
        - gnupg
        - certbot
      state: latest

  - name: allow http for certificate challenges
    ufw:
      rule: allow
      port: '80'
      proto: tcp

  - name: allow smtp
    ufw:
      rule: allow
      port: '25'
      proto: tcp

  - name: allow smtps
    become: yes
    ufw:
      rule: allow
      port: '465'
      proto: tcp

  - name: allow imaps
    ufw:
      rule: allow
      port: '993'
      proto: tcp

  - name: get certificate
    command:
      cmd: "certbot certonly --standalone -d {{ mail_domain }} -m {{ cert_email }} --non-interactive --agree-tos --no-eff-email"

- name: configure services
  hosts: mail_server
  become: yes
  roles:
    - postfix
    - dovecot
    - opendkim
    - opendmarc
    - postgrey
    - spamassassin
    - policyd_spf

- name: get dns recordV
  hosts: mail_server
  become: yes
  
  tasks:
    - name: get dns entries
      shell: |
        pubkey="$(tr -d '\n' </etc/dkimkeys/{{ dkim_selector }}.txt | sed "s/^.*p=/p=/;s/\" )  ;.*$//" | tr -d "\"[:space:]")"
        dkimdns="{{ dkim_selector }}._domainkey IN TXT \"v=DKIM1; k=rsa; $pubkey\""
        dmarcdns="_dmarc IN TXT \"v=DMARC1; p=reject; rua=mailto:dmarc@{{ domain }}; fo=1\""
        spfdns="@ IN TXT \"v=spf1 a:{{ mail_domain }} -all\""

        echo "DNS Entries
        DKIM:   $dkimdns
        DMARC:  $dmarcdns
        SPF:  $spfdns" > $HOME/dns_records
      register: dns_result

    - name: inform where to get records
      debug:
        msg: "You can now find the DNS records you need to set at /home/root/dns_records"