2015-05-09 15 views
6

Làm cách nào để thoát khỏi các ký tự trong mô-đun lineinfile của Ansible?Làm cách nào để thoát ký tự nhận xét '#' trong mô-đun dòng ansible?

Đây là dòng Tôi muốn chèn trên máy chủ:

EMAIL='[email protected]' # Server notification email address enter only 1 address

Nhưng khi tôi thử những điều sau đây, Ansible từ chối phân tích nó do lỗi YAML:

line="EMAIL='{{ email_address }}' # Server notification email address enter only 1 address"

Tôi đoán đó là bởi vì tôi có một sự kết hợp kỳ lạ của dấu nháy kép, dấu ngoặc đơn, ký tự bằng và ký tự bảng Anh.

+0

không chính xác là giải pháp sạch, nhưng bạn có thể biến ''' thành một phần của biến của bạn không? cũng có bạn đã cố gắng thoát khỏi dấu nháy đơn và dấu bằng? – Mxx

+0

Làm cách nào để thoát khỏi dấu nháy đơn và dấu bằng? Về mặt lý thuyết ansible không yêu cầu thoát khỏi dấu nháy đơn bên trong dấu ngoặc kép, nhưng nó chắc chắn là giá trị một thử. Tôi thực sự nghĩ rằng tôi cần phải thoát khỏi '#' dấu hiệu, nhưng không có ý tưởng làm thế nào để làm điều đó. Tôi đã thử '\ #' và Ansible chấp nhận nó (đó là lý do tại sao tôi nghĩ đó là vấn đề cơ bản) nhưng sau đó Ansible đặt toàn bộ '\ #' trên máy chủ, vì vậy rõ ràng nó không hoàn toàn hoạt động như mong đợi. –

Trả lời

10

Vấn đề thực sự là # trong chuỗi của bạn - vì bất kỳ lý do gì.

Mặc dù bạn có thể dễ dàng ngăn chặn các lỗi phân tích cú pháp bằng cách sử dụng thủ thuật này:

line="EMAIL='{{ email_address }}' {{ '#' }} Server notification email address enter only 1 address" 
1

Đối với ý kiến ​​dạng dài hơn hoặc cho dễ đọc bạn cũng có thể thêm ý kiến ​​như vars:.

name: Do something 
vars: 
    comment: '# Server notification email address enter only 1 address' 
lineinfile: 
    ... 
    line="EMAIL='{{ email_address }}' {{ comment }}" 
Các vấn đề liên quan