Điểm:1

Ansible: điền vào một mẫu có chứa nội suy bất biến

lá cờ au

Tôi cần tạo một playbook sẽ lấy một tệp mẫu, nội suy một số biến và đặt tệp kết quả vào một thư mục khác.

Phần đầu tiên của vấn đề là tệp kết quả sẽ được sử dụng như một playbook Ansible khác, vì vậy tệp nguồn chứa các phép nội suy khác và các phép nội suy này phải được giữ nguyên như cũ. Ví dụ: giả sử rằng tệp nguồn chứa nội dung như sau:

khóa1: {{giá trị1}}
khóa2: {{giá trị2}}

Giá trị của phím1 phải được nội suy bởi playbook của tôi (nó sẽ trở thành các giá trị của giá trị1 biến), nhưng đồng thời giá trị2 cần được giữ nguyên như hiện tại (nó sẽ là {{ giá trị2 }}.

Phần thứ hai của vấn đề là tôi không thể sửa đổi tệp nguồn và thêm dấu gạch chéo ngược trước dấu ngoặc nhọn, vì tệp này đang được cập nhật bởi các quy trình khác. Ngoài ra, do tệp mẫu được cập nhật theo thời gian, tôi không thể dự đoán những biến nào cần được bỏ qua sau lần cập nhật tiếp theo.Tôi chỉ biết rằng tôi cần phải suy giá trị1, nhưng tôi không biết tên của các biến khác là gì (ngày nay có giá trị2giá trị3, ngày mai các nhà phát triển đổi tên giá trị2 đến value2_không dùng nữa và thêm giá trị3 một vài nơi).

Tôi có thể hỏi Ansible rằng tôi cần nội suy không giá trị1 chỉ có?

Cảm ơn bạn.

Điểm:1
lá cờ br

Hỏi: "Mẫu chứa các phép nội suy và các phép nội suy này phải được giữ nguyên như hiện tại."

A: Khai báo các biến mặc định

    lbr: '{{ "{{" }}'
    rbr: '{{"}}" }}'
    giá trị1: '{{ lbr }} giá trị1 {{ rbr }}'
    value2: '{{ lbr }} value2 {{ rbr }}'

và tạo mẫu

vỏ> mẫu mèo.yml.j2
khóa1: {{giá trị1}}
khóa2: {{giá trị2}}

Hỏi: "Tôi chỉ cần nội suy giá trị1."

A: Ghi đè giá trị mặc định, ví dụ:

    - mẫu:
        src: mẫu.yml.j2
        đích: playbook.yml
      lọ:
        giá trị1: giá trị1

cho

shell> cat playbook.yml 
khóa1: giá trị1
khóa2: {{giá trị2}}
lá cờ au
Cảm ơn bạn, Vlađimia! Tôi đã phải cập nhật phần mô tả vấn đề, vì tôi đã không giải thích nó trong bài đăng gốc: "do tệp mẫu được cập nhật theo thời gian, tôi không thể dự đoán những biến nào cần được bỏ qua sau lần cập nhật tiếp theo. Tôi chỉ biết là mình cần nội suy value1, nhưng không biết tên các biến khác là gì (hôm nay có value2 và value3, mai các nhà phát triển đổi tên value2 thành value2_deprecated và thêm value3 vào đâu đó)"
lá cờ br
Lời giải thích là tốt. Tôi đã đơn giản hóa ví dụ. Đây có phải là những gì bạn đang tìm kiếm?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.