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\n
cho 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\n
cho 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 shell
lệ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 cmd
tham số như sau:
- shell:
cmd: |
cat <<EOF
This is a test.
EOF