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.