Ansible ช่วยให้การจัดโครงสร้างสินค้าคงคลัง vars และงานได้หลายวิธี พัฒนาความคิดเห็นของคุณเองว่าจะวางสิ่งต่าง ๆ ไว้ตรงไหนอย่างสมเหตุสมผล โดยพิจารณาจากปลั๊กอิน Ansible ต่าง ๆ ที่คาดหวัง
ห้องปฏิบัติการอยู่ใน VLAN ที่ปลอดภัย ซึ่งหมายถึงการเรียกใช้สคริปต์จาก
ระยะไกล ฉันต้องเชื่อมต่อกับเครื่องด้วย IP ไม่ใช่ด้วย
FQDN และข้อมูลรับรองการจัดหาของพวกเขา
เท็จ. DNS เป็นไปได้สำหรับทุกสภาพแวดล้อม อาจมอบหมายโซน hiddai.lab.example.net
ไปยังเซิร์ฟเวอร์ DNS ของห้องปฏิบัติการทดสอบ และโฮสต์ใช้ FQDN ในโซนนี้
ที่กล่าวว่า ansible_host
สามารถระบุตัวแปรแทนที่ชื่อโฮสต์หรือที่อยู่ IP สำหรับปลั๊กอินการเชื่อมต่อที่จะใช้
อย่าใช้ที่อยู่ IP ที่จัดสรรสำหรับผู้ใช้รายอื่น 1.1.1.1 ไม่ใช่ของคุณ แต่เป็น Cloudflare DNS ใช้ที่อยู่ IP จริงของคุณหรือเครือข่ายทดสอบเอกสาร เช่น 192.0.2.0/24 198.51.100.0/24 203.0.113.0/24
นอกจากนี้ ฉันต้องตัดสินใจว่าผลิตภัณฑ์ของฉันจะติดตั้งอย่างปลอดภัยหรือ
ไม่ได้อยู่ในห้องทดลองของฉัน (โปรโตคอลใด - HTTPS หรือ HTTP)
ปลอดภัยเสมอ ดังนั้น HTTPS การตั้งค่าแล็บสามารถผ่อนคลายมากขึ้นด้วย PKI, CA แบบธรรมดาส่วนบุคคล, ใบรับรองที่ลงนามด้วยตนเอง
ยกเว้นรายชื่อโฮสต์และที่อยู่ IP ในสินค้าคงคลัง ansible yaml
ไฟล์ เป็นไปได้ไหมที่จะเพิ่มตัวแปรหรือคีย์ เช่น:
"ข้อมูลประจำตัว", "โปรโตคอล", "ไฟล์", "ประเภทเครื่อง" ฯลฯ...
ไม่ รายชื่อโฮสต์แยกต่างหากจากข้อมูลการกำหนดค่าแอปพลิเคชันระดับบทบาท สิ่งนี้ทำให้มีสินค้าคงคลังหลายรายการ ข้อมูลซ้ำซ้อนน้อยที่สุดระหว่างห้องปฏิบัติการ การจัดเตรียม และสินค้าคงคลังการผลิต
จำกัดสินค้าคงคลังไว้เฉพาะสิ่งที่จำเป็นสำหรับการเชื่อมต่อกับโฮสต์: ชื่อโฮสต์ ผู้ใช้ อาจเป็นข้อมูลประจำตัว ปลั๊กอินการเชื่อมต่อ ใส่รายละเอียดการสมัครไว้ที่อื่น เช่น group_vars
เครดิต:
ผู้ใช้:
ผ่าน: 1
เมื่อพูดถึงข้อมูลรับรอง ฉันถือว่ารหัสผ่านหนึ่งอักขระสั้นจนยอมรับไม่ได้ อย่ามีมันเป็นตัวอย่างปลอม แทนที่รหัสผ่านการรับรองความถูกต้องด้วยสิ่งที่ดีกว่า เช่น คีย์หรือการรับรองความถูกต้องตามใบรับรอง หรือข้อความรหัสผ่านแบบคำยาวเป็นอย่างน้อย เช่น เคราะห์ร้ายเสแสร้งครอบครองไตรมาส
.
เส้นทางไฟล์ของคุณดูเหมือนจะเป็น Windows อ่าน เอกสาร winrm ของ Ansible และพิจารณาตัวเลือกของคุณสำหรับการรับรองความถูกต้อง
การจัดเก็บเครดิตในคลังหมายถึงใครก็ตามที่มีไฟล์คลังสามารถเรียกใช้คำสั่งได้ รักษาความปลอดภัยของไฟล์อย่างเหมาะสม พิจารณาการจัดเก็บเครดิตในไฟล์คีย์แยกต่างหาก หรือในระบบลับบางระบบที่คุณสามารถเข้าถึงได้ด้วยการค้นหาแบบ Ansible
ไฟล์ vars ของคุณคือ YAML แต่ไม่ได้อยู่ในโครงสร้าง ปลั๊กอินสินค้าคงคลัง YAML แบบคงที่ของ Ansible คาดหวัง บางทีอาจจะเป็นแบบนี้ก็ได้ สินค้าคงคลัง/lab.yml
ฉันได้เปลี่ยนค่าบางอย่างเป็นตัวอย่างจริงต่ออินเทอร์เน็ต RFCs
---
ทั้งหมด:
เด็ก:
หน้าต่าง:
# กลุ่มที่มีเฉพาะโฮสต์ Windows เท่านั้นที่อนุญาต
# ตัวแปรการรับรองความถูกต้องและการเชื่อมต่อเฉพาะ Windows
วาร์:
ansible_user: ก
ansible_password: โชคไม่ดี-เสแสร้ง-ครอบครอง-ไตรมาส
ansible_connection: winrm
ansible_winrm_transport: เครดิต
เด็ก:
ฐานข้อมูล:
# FQDN เป็น inventory_hostname ควรแก้ไขหากอยู่ใน DNS
# Ansible แยกป้ายกำกับด้านบนออกให้คุณเป็นพิเศษ var inventory_hostname_short
เจ้าภาพ:
center-db.hiddai.lab.example.net:
# ansible_host จะแทนที่สิ่งที่จะเชื่อมต่อด้วย
# เช่นเมื่อไม่มี DNS
ansible_host: 203.0.113.23
เด็ก:
คิว:
เจ้าภาพ:
center-queue.hiddai.lab.example.net:
ansible_host: 203.0.113.83
เด็ก:
แอป:
เจ้าภาพ:
center-app.hiddai.lab.example.net:
ansible_host: 203.0.113.62
เด็ก:
ลูกค้า:
เจ้าภาพ:
client-app.hiddai.lab.example.net:
ansible_host: 203.0.113.28
db: ศูนย์-db
ฉันไม่ชัดเจนว่า "ศูนย์" ในตัวอย่างนี้คืออะไร ผลิตภัณฑ์ซอฟต์แวร์ ชื่อการปรับใช้ ชื่อไคลเอ็นต์ เนื่องจากสินค้าคงคลัง Ansible นั้นแบนภายในจริง ๆ ฉันจึงยุบมันออกไป เพิ่มกลับเป็นตัวแปรหรือกลุ่มหากต้องการ
เกี่ยวกับข้อมูลการกำหนดค่าแอ็พพลิเคชันเฉพาะโฮสต์ ให้พิจารณา group_vars สิ่งเหล่านี้อาจสัมพันธ์กับไฟล์สินค้าคงคลังของคุณ โดยชื่อไฟล์ตรงกับชื่อกลุ่ม
สินค้าคงคลัง/group_vars/windows.yml
---
base_dir: 'C:\โฟลเดอร์\'
files_common:
- Server.msi
สินค้าคงคลัง/group_vars/app.yml
---
files_additional:
- ไฟล์
- ศูนย์ Client.msi
สินค้าคงคลัง/group_vars/client.yml
---
files_additional:
- Client-Client.msi
หมายเหตุ ฉันคิดค้นตัวแปรสองสามตัวสำหรับไฟล์ ด้วยชื่อที่แตกต่างกันคุณสามารถรวมเข้าด้วยกันเป็นรายการเดียวได้ในภายหลัง {{ files_common + files_additional }}
เขียนและใช้บทบาท Ansible ซึ่งมีตัวแปรและงานของตัวเอง พิจารณาค่าเริ่มต้นของบทบาทที่เหมาะกับกรณีการใช้งานส่วนใหญ่ ตัวอย่างเช่น งาน win_package เพื่อติดตั้งแพ็คเกจ msi เหล่านี้ และโดยค่าเริ่มต้นให้ดาวน์โหลดจากเซิร์ฟเวอร์ https แต่ทำให้ไฟล์แพ็กเกจต้นทางเป็นตัวแปรเพื่อให้สามารถแทนที่ได้
และบทละครเป็นสิ่งที่จับคู่รูปแบบโฮสต์เหล่านี้กับบทบาท ฉันไม่แน่ใจว่าจะเรียกแอปของคุณว่าอะไรเพราะใช้แต่ชื่อทั่วไป ดังนั้นฉันจึงขึ้นต้นหน้าด้วย "ของ" play.yml:
---
โฮสต์: ฐานข้อมูล
บทบาท:
- สิ่งดีบี
โฮสต์: คิว
บทบาท:
- สิ่งคิว
โฮสต์: แอป
บทบาท:
- สิ่งที่แอพ
โฮสต์: ลูกค้า
บทบาท:
- สิ่งไคลเอนต์
เรียกใช้ playbook ดังกล่าวด้วย ansible-playbook play.yml -i สินค้าคงคลัง/lab.yml
ไม่รวม: บทบาท ฉันไม่รู้ว่าคุณต้องการทำอะไร และคำตอบนี้ค่อนข้างจะยาวสักหน่อย