(Liên quan đến Callbacks hoặc hook và chuỗi nhiệm vụ có thể sử dụng lại, trong vai trò Ansible ):
Có cách nào tốt hơn để thêm vào danh sách hoặc thêm khóa vào từ điển trong Ansible hơn (ab) bằng biểu thức mẫu jina2 không?
Tôi biết bạn có thể làm một cái gì đó như:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
Nhưng thực sự không có loại nhiệm vụ meta hay người trợ giúp để làm điều này?
Nó cảm thấy mong manh, dường như không có giấy tờ và dựa vào rất nhiều giả định về cách các biến hoạt động trong Ansible.
Trường hợp sử dụng của tôi là nhiều vai trò (phần mở rộng máy chủ cơ sở dữ liệu) mà mỗi vai trò cần cung cấp một số cấu hình cho vai trò cơ sở (máy chủ cơ sở dữ liệu). Nó không đơn giản như nối thêm một dòng vào tệp cấu hình máy chủ db; mỗi thay đổi áp dụng cho cùng một dòng , ví dụ: các phần mở rộng bdr
và pg_stat_statements
cả hai phải xuất hiện trên một dòng đích:
shared_preload_libaries = 'bdr, pg_stat_statements'
Có phải cách Ansible để làm điều này chỉ là xử lý tệp cấu hình nhiều lần (một lần cho mỗi phần mở rộng) với một biểu thức chính để trích xuất giá trị hiện tại, phân tích cú pháp và sau đó viết lại? Nếu vậy, làm thế nào để bạn thực hiện idempotent đó qua nhiều lần chạy?
Điều gì xảy ra nếu cấu hình khó phân tích hơn và không đơn giản như nối thêm một giá trị được phân tách bằng dấu phẩy? Hãy suy nghĩ các tệp cấu hình XML.