Page MenuHomeDevCentral

D3712.id9605.diff
No OneTemporary

D3712.id9605.diff

diff --git a/roles/mailserver/init.sls b/pillar/core/certificates/hervil.sls
copy from roles/mailserver/init.sls
copy to pillar/core/certificates/hervil.sls
--- a/roles/mailserver/init.sls
+++ b/pillar/core/certificates/hervil.sls
@@ -1,12 +1,15 @@
# -------------------------------------------------------------
-# Salt — Mail
+# Let's Encrypt Certificates
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Project: Nasqueron
# License: Trivial work, not eligible to copyright
# -------------------------------------------------------------
-include:
- - .dovecot
- - .dkim
- - .postfix
- - .vimbadmin
+certificates:
+ - hervil.nasqueron.org
+ - mail.nasqueron.org
+ - admin.mail.nasqueron.org
+
+certificates_options:
+ mail.nasqueron.org:
+ shared_group: mail
diff --git a/pillar/tower.sls b/pillar/tower.sls
--- a/pillar/tower.sls
+++ b/pillar/tower.sls
@@ -9,6 +9,7 @@
# -------------------------------------------------------------
base:
+ - certificates/{{ minion_id }}.sls
- dns/{{ minion_id }}/*.sls
- paas/alkane/{{ minion_id }}/*.sls
- paas/docker/{{ minion_id }}/*.sls
diff --git a/roles/core/certificates/acmesh.sls b/roles/core/certificates/acmesh.sls
--- a/roles/core/certificates/acmesh.sls
+++ b/roles/core/certificates/acmesh.sls
@@ -7,14 +7,37 @@
{% from "map.jinja" import dirs with context %}
+{% set certificates = pillar.get("certificates", []) %}
+{% set certificates_options = pillar.get("certificates_options", {}) %}
+
acme.sh:
pkg.installed
+/var/certificates:
+ file.directory:
+ - user: acme
+ - mode: 711
+
/var/certificates/general:
file.directory:
- user: acme
- mode: 700
- - makedirs: True
+
+{% for domain in pillar.get("certificates", []) %}
+{% set options = certificates_options.get(domain, {}) %}
+
+/var/certificates/{{ domain }}:
+ file.directory:
+ - user: acme
+
+ {% if "shared_group" in options %}
+ - group: {{ options.shared_group }}
+ - mode: 750
+ {% else %}
+ - mode: 700
+ {% endif %}
+
+{% endfor %}
/usr/local/etc/newsyslog.conf.d/acme.sh.conf:
file.managed:
diff --git a/roles/core/init.sls b/roles/core/init.sls
--- a/roles/core/init.sls
+++ b/roles/core/init.sls
@@ -7,7 +7,6 @@
include:
- .rc
- - .certificates
- .hostname
- .login
- .network
@@ -27,6 +26,7 @@
- .users
# Depends on users or groups
+ - .certificates
- .deploy
- .userland-home
diff --git a/roles/mailserver/coordination/init.sls b/roles/mailserver/coordination/init.sls
new file mode 100644
--- /dev/null
+++ b/roles/mailserver/coordination/init.sls
@@ -0,0 +1,20 @@
+# -------------------------------------------------------------
+# Salt — Coordination among mail services
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+# -------------------------------------------------------------
+# Common group for mail services
+#
+# Allows reading common TLS certificates and keys.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+mail_group:
+ group.present:
+ - name: mail
+ - addusers:
+ - dovecot
+ - postfix
+ - acme
diff --git a/roles/mailserver/init.sls b/roles/mailserver/init.sls
--- a/roles/mailserver/init.sls
+++ b/roles/mailserver/init.sls
@@ -10,3 +10,6 @@
- .dkim
- .postfix
- .vimbadmin
+
+ # Depends on all software installed
+ - .coordination

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 24, 22:47 (21 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3013453
Default Alt Text
D3712.id9605.diff (3 KB)

Event Timeline