Hỏi: "Làm cách nào để sử dụng đầu ra của lệnh bên trong giá trị ini_file của Ansible?"
A: Đăng ký kết quả của lệnh và sử dụng nó làm giá trị, ví dụ:
- máy chủ: test_24
thu thập_facts: sai
nhiệm vụ:
- vỏ: 'ngày | md5sum | cắt -d" " -f1'
đăng ký: kết quả
check_mode: sai
- gỡ lỗi:
var: kết quả
- tên: Thay thế HardwareID bằng MD5 mới
ini_file:
đường dẫn: etc/app/config.ini
phần: MẶC ĐỊNH
tùy chọn: phần cứng_token
giá trị: "{{ result.stdout }}"
đưa ra (chạy với --check --diff)
NHIỆM VỤ [Thay thế HardwareID bằng MD5 mới] ************************************
--- trước: etc/app/config.ini (nội dung)
+++ sau: etc/app/config.ini (nội dung)
@@ -0,0 +1,3 @@
+
+[MẶC ĐỊNH]
+hardware_token = ba3f11c4f1ecfe9d1e805dc8c8c8b149
đã thay đổi: [test_24]
Việc sử dụng các sự kiện Ansible sẽ dễ dàng hơn nếu bạn muốn sử dụng dữ liệu và thời gian làm đầu vào. Ví dụ, từ điển ansible_date_time giữ ngày và thời gian nếu bạn thu thập dữ kiện. Trong playbook, chúng tôi thiết lập thu thập_facts: sai
. âDo đó từ điển không định nghĩa
- gỡ lỗi:
biến: ansible_date_time.iso8601
cho
được rồi: [test_24] =>
ansible_date_time.iso8601: BIẾN KHÔNG ĐƯỢC XÁC ĐỊNH!
Bạn sẽ phải thu thập sự thật thu thập_sự thật: đúng
khi bạn bắt đầu chơi hoặc chạy cài đặt
, ví dụ.
- cài đặt:
tập hợp_subset: tối thiểu
- gỡ lỗi:
biến: ansible_date_time.iso8601
cho
được rồi: [test_24] =>
ansible_date_time.iso8601: '2021-07-29T21:32:26Z'
Điều này không thực tế lắm vì để có được thời gian hiện tại, bạn phải chạy cài đặt
. Thay vào đó, bộ lọc strftime luôn cung cấp cho bạn thời gian hiện tại, ví dụ:
- gỡ lỗi:
msg: "{{ '%Y-%m-%d %H:%M:%S' | strftime }}"
- tên: Thay thế HardwareID bằng MD5 mới
ini_file:
đường dẫn: etc/app/config.ini
phần: MẶC ĐỊNH
tùy chọn: phần cứng_token
giá trị: "{{'%Y-%m-%d' | strftime | hash('md5') }}"
cho
NHIỆM VỤ [gỡ lỗi] ************************************************ ******************
được rồi: [test_24] =>
msg: '2021-07-29'
NHIỆM VỤ [Thay thế HardwareID bằng MD5 mới] ***************************************
--- trước: etc/app/config.ini (nội dung)
+++ sau: etc/app/config.ini (nội dung)
@@ -0,0 +1,3 @@
+
+[MẶC ĐỊNH]
+phần cứng_token = 5847924805aa614957022ed73d517e7e
Là một lưu ý phụ: Sử dụng hàm băm này có thể tìm kiếm rất nhanh nếu ngày giờ (tính bằng giây) là chỉ mục.