Ansible sử dụng cú pháp YAML trong sách phát của nó. YAML có một số toán tử khối:
Đây >là một nhà điều hành khối gấp. Nghĩa là, nó nối nhiều dòng với nhau bằng dấu cách. Cú pháp sau:
key: >
This text
has multiple
lines
Sẽ gán giá trị This text has multiple lines\ncho key.
Ký |tự là một toán tử khối theo nghĩa đen. Đây có thể là những gì bạn muốn cho các tập lệnh shell nhiều dòng. Cú pháp sau:
key: |
This text
has multiple
lines
Sẽ gán giá trị This text\nhas multiple\nlines\ncho key.
Bạn có thể sử dụng điều này cho các tập lệnh shell đa dòng như sau:
- name: iterate user groups
shell: |
groupmod -o -g {{ item['guid'] }} {{ item['username'] }}
do_some_stuff_here
and_some_other_stuff
with_items: "{{ users }}"
Có một cảnh báo: Ansible thực hiện một số thao tác linh hoạt đối với shelllệnh, do đó, mặc dù những điều trên thường hoạt động như mong đợi, nhưng những điều sau sẽ không:
- shell: |
cat <<EOF
This is a test.
EOF
Ansible sẽ thực sự hiển thị văn bản đó với khoảng trắng ở đầu, có nghĩa là trình bao sẽ không bao giờ tìm thấy chuỗi EOFở đầu dòng. Bạn có thể tránh những kinh nghiệm vô ích của Ansible bằng cách sử dụng cmdtham số như sau:
- shell:
cmd: |
cat <<EOF
This is a test.
EOF