Điểm:0

Lưu Jinja đã kết xuất vào biến

lá cờ cn
cov

Tôi muốn chia một số khuôn mẫu Jinja thành nhiều dòng để giữ các dòng dưới 120 ký tự và đăng ký một biến để dễ sử dụng lại. Có cách nào để làm một cái gì đó như sau? Có mô-đun (hoặc cộng đồng) tích hợp sẵn cho việc này không? Nếu có thể, tôi muốn làm điều đó mà không cần sử dụng các tệp tạm thời.

- jinja: "https://{{ tên người dùng }}:{{ mã thông báo }}@hosting.com/organization"
  lọ:
    tên người dùng: "{{ hashivault_secrets.value.data.USERNAME }}"
    mã thông báo: "{{ hashivault_secrets.value.data.TOKEN }}"
  đăng ký: url

Vì vậy, việc sử dụng/tái sử dụng có thể trông giống như

   - píp:
       tên: my-internal-gói
     vi:
       PIP_EXTRA_INDEX_URL: "{{ url }}"

Tôi hiện đang sử dụng Ansible 2.9.

Điểm:1
lá cờ th

Bạn chỉ có thể đặt một var trực tiếp:

  lọ:
    url: https://{{ tên người dùng }}:{{ mã thông báo }}@hosting.com/organization
    tên người dùng: "{{ hashivault_secrets.value.data.USERNAME }}"
    mã thông báo: "{{ hashivault_secrets.value.data.TOKEN }}"

Hoặc bạn có thể sử dụng set_fact:

- bộ_thực tế:
    url: https://{{ tên người dùng }}:{{ mã thông báo }}@hosting.com/organization
  lọ:
    tên người dùng: "{{ hashivault_secrets.value.data.USERNAME }}"
    mã thông báo: "{{ hashivault_secrets.value.data.TOKEN }}"

Sự khác biệt thực tế chính (ngoài việc thiết lập các biến không yêu cầu tác vụ bổ sung) là các biến được đánh giá tại thời điểm sử dụng nên giá trị của biến đầu tiên url có thể thay đổi theo thời gian nếu hashivault_secrets thay đổi, trong khi set_fact sẽ dẫn đến một giá trị tĩnh dựa trên đánh giá của mẫu tại thời điểm set_fact nhiệm vụ chạy. Cả hai hành vi đều hữu ích, tùy thuộc vào hoàn cảnh.

Điểm:0
lá cờ cn

Vars có thể được định nghĩa là các biểu thức tham chiếu đến các vars khác. Cho phép tách một biểu thức thành một kích thước hợp lý.

Từ khóa môi trường có thể áp dụng cho mọi nhiệm vụ của một vở kịch. Điều này có thể tham chiếu vars được xác định ở bất cứ đâu.

module_defaults cũng có thể được sử dụng để cung cấp một giá trị để sử dụng khi không có giá trị nào được cung cấp. Điều này có xu hướng hữu ích cho những thứ lặp đi lặp lại như tín dụng API nói chung. Đối với mô-đun pip, cung cấp một giải pháp thay thế về cách cung cấp --extra-index-url vì mô-đun cung cấp một cách để thêm các đối số tùy ý.

group_vars/all/creds.yml hoặc bất cứ nơi nào bạn muốn xác định vars cấu hình.

tên người dùng: "{{ hashivault_secrets.value.data.USERNAME }}"
mã thông báo: "{{ hashivault_secrets.value.data.TOKEN }}"
url: https://{{ tên người dùng }}:{{ mã thông báo }}@hosting.com/organization
vi:
   PIP_EXTRA_INDEX_URL: "{{ url }}"

play.yml Bạn không cung cấp cách chơi, nhưng đây là một nơi tốt để sử dụng các từ khóa phạm vi chơi sẽ áp dụng cho tất cả các tác vụ. Tôi sẽ tạo nên một vở kịch tầm thường, điều chỉnh theo những gì bạn đang làm:

- máy chủ: thingapp

  môi trường: "{{ env }}"

  module_defaults: 
    ống: 
      extra_args: "--extra-index-url {{ url }}"

  vai trò:
     - máy chủ web
     - ứng dụng trăn

vai trò/pythonapp/tác vụ/main.yml

   - píp:
       tên: my-internal-gói
Điểm:0
lá cờ in

Bạn có thể làm điều này bằng cách sử dụng set_fact.

- bộ_thực tế:
    url: "https://{{ hashivault_secrets.value.data.USERNAME }}:{{ hashivault_secrets.value.data.TOKEN }}@hosting.com/organization"

Đă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.