2015-08-27 17 views
5

Làm cách nào để chỉ định các chuỗi nhiều dòng có khoảng trắng phía trên trên một số dòng?Chuỗi đa tuyến có các khoảng trắng hàng đầu

Nếu tôi định nghĩa một biến như

multiline_str: | 
    foo 
     bar 
     baz 

Và sau đó viết nó vào một tập tin sử dụng

- name: write multiline string 
    copy: content="{{ multiline_str }}" dest="/path/to/file" 

Sau đó, các nội dung tập tin mục tiêu là

foo 
bar 
baz 

lừa là gì đây ?

+0

Đây có phải là có liên quan? http://stackoverflow.com/questions/715818/ruby-write-escaped-string-to-yaml –

+0

@ Rất caoTôi không nghĩ như vậy – zerkms

Trả lời

11

Hãy thử điều này.

- name: write multiline string 
    copy: 
    content: "{{ multiline_str }}" 
    dest: /path/to/file 
+0

Thật tuyệt vời, cảm ơn. Tại sao nó thay đổi hành vi quá nhiều? – zerkms

+2

Tôi không chắc chắn, nhưng bạn thường sẽ gặp rắc rối với phân tích cú pháp Ansible được trích dẫn key = giá trị trong một chuỗi, và bạn có thể tránh nó bằng cách chuyển params như một bộ sưu tập YAML. Cảm ơn bạn đã cung cấp một ví dụ ngắn gọn để khuyến khích phong cách viết bài này. Bạn cũng có thể xem [thảo luận trong quá khứ] (https://groups.google.com/d/msg/ansible-project/GfJBkzuTTNM/iUkzUKPmBnAJ) về chủ đề này. – yaegashi

1

Đã cùng một vấn đề kết hợp với local_action.

này hoạt động:

- name: write multiline string 
    local_action: 
    module: copy 
    content: "{{ multiline_str }}" 
    dest: /path/to/file 
1

Bạn có thể sử dụng \ n (newline) và \ s (không gian) \ t (tab)

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