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 ฉันจะขอบคุณมากสำหรับตัวอย่างเล็ก ๆ ที่ทำให้เข้าใจวิธีแก้ปัญหามากขึ้น