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.