đánh dấu vô hiệu hóa blockSile


11

Tôi mới sử dụng ansible, tuy nhiên tôi đã có thể sử dụng thành công chức năng blockinfile . Tuy nhiên tôi không thể tìm ra cách ngăn các điểm đánh dấu được chèn vào. Tôi đọc tài liệu nhưng nó không xuất hiện để mô tả nó.

Đây là những gì hiển thị trong mỗi tệp mà blockinfile ghi vào.

# BEGIN ANSIBLE MANAGED BLOCK
# END ANSIBLE MANAGED BLOCK

Câu trả lời:


14

Tôi đã xem xét blockinfilemô-đun gốc trên github - trước Ansible 2, nó không được đóng gói với Ansible. Hóa ra, các điểm đánh dấu thực sự được sử dụng để xác định khối :

Đó dường như là hành vi dự định. Nó thay thế tất cả các dòng được bao quanh bởi các điểm đánh dấu khối bằng nội dung được chỉ định.

Điều đó có nghĩa là nếu bạn loại bỏ các điểm đánh dấu, blockinfilesẽ không còn có thể xác định khối, điều này sẽ dẫn đến mô-đun để thêm khối vào tệp mỗi khi bạn chạy playbook.

Vì vậy, các điểm đánh dấu trước và sau khối viết là một yêu cầu của mô-đun và không thể xóa được.

Nếu đây là một playbook một lần sẽ không bao giờ được thực hiện lại, bạn có thể chạy lineinfilemô-đun với state: absenttùy chọn sau đó.


Câu trả lời cũ:

Theo các tài liệu blockinfilemô-đun có một markertùy chọn.

Bạn đã thử đặt nó thành một chuỗi trống hay Sai?

blockinfile:
    dest: /var/www/html/index.html
    marker: ""

hoặc là

blockinfile:
    dest: /var/www/html/index.html
    marker: False

1
Xin lỗi về tuyên bố không đầy đủ ở trên, ai đó đã gõ cửa và tôi phải chạy. Tôi đã thử những ý tưởng này ngày hôm qua. điểm đánh dấu: "" - Thêm một dòng vào đầu và cuối tệp. Sai: - Chỉ cần thêm từ sai ở dưới cùng và trên cùng của tệp. Còn ý tưởng nào khác không?
Nik

2
Tôi cập nhật câu trả lời của tôi. Các điểm đánh dấu thực sự được yêu cầu bởi chính mô-đun gthe và thậm chí nếu bạn có thể, bạn có thể không muốn xóa chúng. Xem câu trả lời cập nhật để biết chi tiết.
udondan

0

tôi đã làm một cái gì đó như thế này ...

- name: Insert someline in somefile.sh
    blockinfile:
      path: /usr/share/somefile.sh
      block: -sometext
      insertafter: '-XX:originaltext'
      marker: ""
      backup: yes


 - name: Remove blank lines blockinfile put in
    lineinfile :
     path: /usr/share/somefile.sh
     state: absent
     regexp: '^$'
  • điểm đánh dấu "" sẽ chèn các dòng trống vào tệp
  • lineinfile sẽ loại bỏ chúng (cùng với tất cả các dòng trống khác) vì vậy hãy cẩn thận !!

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.