Buộc Ansible vứt bỏ lỗi khi vars bị thiếu trong yml?


8

Có thể buộc Ansible khi thay thế var trong các tệp yml không xác định được, đưa ra một lỗi thay vì âm thầm thay thế bằng một chuỗi rỗng?

Câu trả lời:


9

Vâng, nó là có thể. Kiểm tra các tài liệu trực tuyến, dưới truy cập dữ liệu biến phức tạp .

Một ví dụ được cung cấp để làm chính xác điều đó:

tasks:
    - shell: echo "I've got '{{ foo }}' and am not afraid to use it!"
      when: foo is defined

    - fail: msg="Bailing out: this play requires 'bar'"
      when: bar is not defined

8

Thêm dòng này vào [defaults]phần ansible.cfg của bạn:

error_on_undefined_vars = True

Bây giờ bạn sẽ nhận được một thông báo lỗi nếu một biến không được xác định.


Tôi tin rằng tùy chọn đó yêu cầu 1.3, sắp ra mắt nhưng chưa được phát hành.
mblakele

1

Xác định các biến của bạn trong

roles/<role_name>/defaults/main.yml

giống:

SUPERVAR:
  VAR1:foo
  VAR2:bar

và sau đó làm trong

roles/<role_name>/tasks/main.yml

giống:

- fail: msg="{{ item }} is not defined"
  when: not {{ item }}
  with_items:
    - SUPERVAR.VAR1
    - SUPERVAR.VAR2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.