Caietul meu de joc ansible include mai multe roluri, de exemplu porumbar
, postfix
, postgres
și rspamd
. Toate necesită certificate SSL, care sunt generate de certbot
(permite criptare) rol. Din acest motiv și pentru o manipulare mai ușoară, toate rolurile urmează aceeași structură de date pentru a defini certificate SSL cu cerințe diferite:
certbot_domains: []
dovecot_domains:
- nume: imap1.example.com
nume_alternative_subiect: []
- nume: imap1.department-a.example.com
nume_alternative_subiect: []
- nume: pop3.example.com
nume_alternative_subiect: []
- nume: pop3.department-a.example.com
nume_alternative_subiect: []
postfix_domains:
- nume: smtp1.example.com
nume_alternative_subiect:
- smtp1.department-a.example.com
postgres_domains:
- nume: postgres.example.com
nume_alternative_subiect: []
rspamd_domains:
- nume: rspamd.example.com
nume_alternative_subiect:
- rspamd.department-a.example.com
Cu toate acestea, vreau să evit să includ rolul certbot
în roluri porumbar
, postfix
, postgres
și rspamd
care creează automat certificatul, deoarece de fiecare dată va fi instalat nginx
, fișiere vhosts.conf pentru fiecare domeniu și câteva fragmente pentru a furniza calea /.cunoscut/acme-challange
ca alias.
Pentru a evita de fiecare dată instalarea nginx
, configurați fragmentele și așa mai departe, sarcinile ar trebui să fie rulate o singură dată. Variabila certbot_domains
va fi prelungit de porumbele_domenii
, postfix_domains
, postgres_domains
și rspamd_domains
iar instalarea nginx și a vhost-urilor lor ar trebui să fie ultima sarcină. Poate că următorul grafic poate descrie problema mai precis.
Dacă există deja ceva de la ansible, aș fi foarte recunoscător pentru un mic fragment care face soluția mai de înțeles.