playbook ของฉัน ansible มีหลายบทบาท ตัวอย่างเช่น นกพิราบ
, โพสต์ฟิกซ์
, โพสต์เกรส
และ ตอบกลับ
. ทั้งหมดนี้ต้องการใบรับรอง SSL ซึ่งสร้างขึ้นโดย ใบรับรอง
(ให้เข้ารหัส) บทบาท ด้วยเหตุผลนี้และเพื่อการจัดการบทบาททั้งหมดได้ง่ายขึ้น ให้ทำตามโครงสร้างข้อมูลเดียวกันเพื่อกำหนดใบรับรอง SSL ด้วยข้อกำหนดที่แตกต่างกัน:
certbot_domains: []
dovecot_domains:
- ชื่อ: imap1.example.com
หัวเรื่อง_ทางเลือก_ชื่อ: []
- ชื่อ: imap1.department-a.example.com
หัวเรื่อง_ทางเลือก_ชื่อ: []
- ชื่อ: pop3.example.com
หัวเรื่อง_ทางเลือก_ชื่อ: []
- ชื่อ: pop3.department-a.example.com
หัวเรื่อง_ทางเลือก_ชื่อ: []
postfix_domains:
- ชื่อ: smtp1.example.com
subject_alternative_names:
- smtp1.department-a.example.com
postgres_domains:
- ชื่อ: postgres.example.com
หัวเรื่อง_ทางเลือก_ชื่อ: []
rspamd_domains:
- ชื่อ: rspamd.example.com
subject_alternative_names:
- rspamd.department-a.example.com
อย่างไรก็ตาม ฉันต้องการหลีกเลี่ยงการรวมบทบาท ใบรับรอง
ในบทบาท นกพิราบ
, โพสต์ฟิกซ์
, โพสต์เกรส
และ ตอบกลับ
ซึ่งจะสร้างใบรับรองโดยอัตโนมัติ เพราะในแต่ละครั้งจะถูกติดตั้ง จิงซ์
, vhosts.conf สำหรับแต่ละโดเมนและตัวอย่างบางส่วนเพื่อระบุเส้นทาง /.well-known/acme-challenge
เป็นนามแฝง
เพื่อหลีกเลี่ยงการติดตั้งแต่ละครั้ง จิงซ์
กำหนดค่าส่วนย่อย และอื่นๆ ควรเป็นงานที่รันเพียงครั้งเดียว ตัวแปร certbot_domains
จะขยายเวลาโดย dovecot_domains
, postfix_domains
, postgres_domains
และ rspamd_domains
และการติดตั้ง nginx และ vhosts ควรเป็นงานสุดท้าย บางทีกราฟิกต่อไปนี้สามารถอธิบายปัญหาได้แม่นยำยิ่งขึ้น
หากมีบางอย่างจาก ansible ฉันจะขอบคุณมากสำหรับตัวอย่างเล็ก ๆ ที่ทำให้เข้าใจวิธีแก้ปัญหามากขึ้น