ถาม: "จะใช้เอาต์พุตของคำสั่งภายในค่า Ansible ini_file ได้อย่างไร"
A: รีจิสเตอร์ผลลัพธ์ของคำสั่งและใช้เป็นค่า เช่น
- โฮสต์: test_24
Gather_facts: เท็จ
งาน:
- เชลล์: 'วันที่ | md5sum | ตัด -d" " -f1'
ลงทะเบียน: ผลลัพธ์
check_mode: เท็จ
- แก้ปัญหา:
var: ผลลัพธ์
- ชื่อ: แทนที่ HardwareID ด้วย MD5 ใหม่
ini_file:
เส้นทาง: etc/app/config.ini
ส่วน: ค่าเริ่มต้น
ตัวเลือก: hardware_token
ค่า: "{{ result.stdout }}"
ให้ (ทำงานกับ --check --diff)
งาน [แทนที่ HardwareID ด้วย MD5 ใหม่] ***********************************
--- ก่อน: etc/app/config.ini (เนื้อหา)
+++ หลัง: etc/app/config.ini (เนื้อหา)
@@ -0,0 +1,3 @@
+
+[ค่าเริ่มต้น]
+hardware_token = ba3f11c4f1ecfe9d1e805dc8c8c8b149
เปลี่ยน: [test_24]
การใช้ข้อเท็จจริง Ansible ง่ายกว่าหากคุณต้องการใช้ข้อมูลและเวลาเป็นอินพุต ตัวอย่างเช่นพจนานุกรม ansible_date_time เก็บวันที่และเวลาไว้หากคุณรวบรวมข้อเท็จจริง ใน playbook เราตั้งค่า Gather_facts: เท็จ
. âด้วยเหตุนี้พจนานุกรมจึงไม่ได้กำหนดไว้
- แก้ปัญหา:
var: ansible_date_time.iso8601
ให้
ตกลง: [test_24] =>
ansible_date_time.iso8601: ตัวแปรไม่ได้ถูกกำหนด!
คุณจะต้องรวบรวมข้อเท็จจริง Gather_facts: จริง
เมื่อคุณเริ่มเล่นหรือวิ่ง ติดตั้ง
, เช่น.
- ติดตั้ง:
Gather_subset: นาที
- แก้ปัญหา:
var: ansible_date_time.iso8601
ให้
ตกลง: [test_24] =>
ansible_date_time.iso8601: '2021-07-29T21:32:26Z'
สิ่งนี้ใช้ไม่ได้จริงเพราะคุณต้องเรียกใช้เพื่อให้ได้เวลาปัจจุบัน ติดตั้ง
. แทนตัวกรอง สตริฟไทม์ ให้เวลาปัจจุบันแก่คุณเสมอ เช่น
- แก้ปัญหา:
msg: "{{ '%Y-%m-%d %H:%M:%S' | strftime }}"
- ชื่อ: แทนที่ HardwareID ด้วย MD5 ใหม่
ini_file:
เส้นทาง: etc/app/config.ini
ส่วน: ค่าเริ่มต้น
ตัวเลือก: hardware_token
ค่า: "{{'%Y-%m-%d' | strftime | hash('md5') }}"
ให้
งาน [แก้ไขข้อบกพร่อง] *********************************************** *****************
ตกลง: [test_24] =>
msg: '2021-07-29'
งาน [แทนที่ HardwareID ด้วย MD5 ใหม่] *************************************
--- ก่อน: etc/app/config.ini (เนื้อหา)
+++ หลัง: etc/app/config.ini (เนื้อหา)
@@ -0,0 +1,3 @@
+
+[ค่าเริ่มต้น]
+hardware_token = 5847924805aa614957022ed73d517e7e
หมายเหตุด้านข้าง: การใช้แฮชนี้อาจเป็นการค้นหาที่รวดเร็วมาก หากวันที่-เวลา (เป็นหน่วยวินาที) เป็นดัชนี