2015-01-31 16 views
6

Sử dụng điều này làm bản mẫu của tôi: https://github.com/modcloth/ansible-role-modcloth-sumologic-collector - Nó hoạt động tốt, nhưng tôi đang tìm một số gợi ý về cách mở rộng này cho các nhu cầu dự định của tôi. Tôi cần để có thể tạo một tệp JSON dựa trên nhiều mảng.Ansible, làm cách nào để nối nhiều mảng trong một tệp?

Sau đây là mảng mặc định tôi cần trong nguồn JSON SumoLogic.

vai trò/sumologic/giá trị mặc định/main.yml:

sumologic_collector_default_log_path:

- { name: "Auth Log", path: "/var/log/auth.log", use_multiline: false, category: "OS/Linux/Auth" } 

Giả sử tôi muốn thêm một tập tin bổ sung cho các tập tin SumoLogic JSON từ group_vars/app_server.yml:

- { name: "Package Log", path: "/var/log/nginx/access.log", use_multiline: fasle, category: "OS/Linux/Nginx" } 

Làm cách nào để kết hợp các ví dụ trên bằng cách sử dụng mẫu vào cùng một tệp đích?

Vui lòng cung cấp thêm chi tiết. Không hoàn toàn chắc chắn nếu đào tạo của tôi về ý nghĩ có ý nghĩa, mặc dù tôi nghĩ set_fact là một cách để làm điều này và tôi đã không thể hiểu rằng đủ để tìm ra một cách.

Trả lời

18

Jinja2, cỗ máy template của Ansible cung cấp cho bạn tùy chọn để dễ dàng hợp nhất danh sách:

array1 + array2 

Dưới đây là một ví dụ hoàn chỉnh playbook:

--- 

- name: Testing 
    hosts: localhost 
    gather_facts: no 
    vars: 
    array1: 
     - a 
     - b 
     - c 
    array2: 
     - x 
     - y 
     - z 
    tasks: 
    - debug: msg="{{ array1 + array2 }}" 

... 

Output:

PLAY [Testing] **************************************************************** 

TASK: [debug msg="{{ array1 + array2 }}"] ************************************* 
ok: [localhost] => { 
    "msg": "['a', 'b', 'c', 'x', 'y', 'z']" 
} 

PLAY RECAP ******************************************************************** 
localhost     : ok=1 changed=0 unreachable=0 failed=0 
+0

Perfect ! Danh sách hợp nhất Jinja2 là câu trả lời: {% cho nguồn trong sumologic_collector_default_log_path | danh sách + sumologic_collector_application_log_path | list%} – wsani

Các vấn đề liên quan