สร้างสินค้าคงคลัง
เปลือก> เจ้าภาพแมว
[ไซต์_nfs_เซิร์ฟเวอร์]
ansibletarget1
ansibletarget2
และใส่ หุ้น เข้าไปใน host_vars
เปลือก> cat host_vars/ansibletarget1.yml
หุ้น:
- เส้นทาง: "/ของฉัน/ครั้งแรก/แบ่งปัน/เส้นทาง"
ลูกค้า: "*"
ตัวเลือก: "rw,ซิงค์"
- เส้นทาง: "/ของฉัน/วินาที/แชร์/เส้นทาง"
ลูกค้า: "*"
ตัวเลือก: "rw,ซิงค์,root_squash"
เชลล์> cat host_vars/ansibletarget2.yml
หุ้น:
- เส้นทาง: "/อีก/แชร์/เส้นทาง/แตกต่าง/เซิร์ฟเวอร์"
ลูกค้า: "*"
ตัวเลือก: "ro,ซิงค์"
สร้างบทบาทที่เรียบง่ายสำหรับการทดสอบ
เปลือก> บทบาทของต้นไม้/my_nfs_role/
บทบาท/my_nfs_role/
âââ งาน
â âââ main.yml
เทมเพลต âââ
âââ exports.j2
2 ไดเร็กทอรี 2 ไฟล์
เชลล์> บทบาทของแมว/my_nfs_role/tasks/main.yml
- แม่แบบ:
src: exports.j2
ปลายทาง: /etc/exports.test
เชลล์> บทบาทของแมว/my_nfs_role/templates/exports.j2
{% สำหรับส่วนแบ่งในหุ้น %}
{{ share.path }} {{ share.client }} {{ share.options }}
{% สิ้นสุดสำหรับ %}
จากนั้น ใช้กลุ่มสินค้าคงคลังและบทบาทใน playbook
เปลือก> cat playbook.yml
- โฮสต์: site_nfs_servers
บทบาท:
- my_nfs_role
เรียกใช้ playbook และสร้างไฟล์
เชลล์> ansible-playbook - ฉันโฮสต์ playbook.yml
เล่น [site_nfs_servers] *********************************************** **
งาน [my_nfs_role : template] ******************************************
เปลี่ยน: [ansibletarget1]
เปลี่ยน: [ansibletarget2]
...
เชลล์> ssh admin@ansibletarget1 cat /etc/exports.test
/my/first/share/path * rw,ซิงค์
/my/second/share/path * rw,ซิงค์,root_squash
เชลล์> ssh admin@ansibletarget2 cat /etc/exports.test
/another/shared/path/different/เซิร์ฟเวอร์ * ro,sync
ดู ตัวอย่างการตั้งค่า Ansible.
หากคุณต้องการเก็บหุ้นไว้ในวัตถุเดียวให้ใส่รายการลงใน group_vars. หากต้องการทำให้โค้ดง่ายขึ้น ให้แปลงรายการเป็นพจนานุกรม คุณสามารถใช้ได้ community.general.groupby_as_dict ตัวอย่างเช่น
เปลือก> cat group_vars/all.yml
ส่งออก:
- เซิร์ฟเวอร์: "ansibletarget1"
หุ้น:
- เส้นทาง: "/ของฉัน/ครั้งแรก/แบ่งปัน/เส้นทาง"
ลูกค้า: "*"
ตัวเลือก: "rw,ซิงค์"
- เส้นทาง: "/ของฉัน/วินาที/แชร์/เส้นทาง"
ลูกค้า: "*"
ตัวเลือก: "rw,ซิงค์,root_squash"
- เซิร์ฟเวอร์: "ansibletarget2"
หุ้น:
- เส้นทาง: "/อีก/แชร์/เส้นทาง/แตกต่าง/เซิร์ฟเวอร์"
ลูกค้า: "*"
ตัวเลือก: "ro,ซิงค์"
exports_dict: "{{ ส่งออก|community.general.groupby_as_dict('เซิร์ฟเวอร์') }}"
ให้
exports_dict:
ansibletarget1:
เซิร์ฟเวอร์: ansibletarget1
หุ้น:
- ลูกค้า: '*'
ตัวเลือก: rw,ซิงค์
เส้นทาง: /my/first/share/path
- ลูกค้า: '*'
ตัวเลือก: rw,ซิงค์,root_squash
เส้นทาง: /my/second/share/path
ansibletarget2:
เซิร์ฟเวอร์: ansibletarget2
หุ้น:
- ลูกค้า: '*'
ตัวเลือก: ro, ซิงค์
เส้นทาง: /another/shared/path/different/server
จากนั้นแก้ไขเทมเพลต สิ่งนี้ควรสร้างไฟล์เดียวกันกับเมื่อก่อน
เชลล์> บทบาทของแมว/my_nfs_role/templates/exports.j2
{% สำหรับส่วนแบ่งใน exports_dict[inventory_hostname]['shares'] %}
{{ share.path }} {{ share.client }} {{ share.options }}
{% สิ้นสุดสำหรับ %}