Điểm:1

Hợp nhất hai từ điển theo khóa trong Ansible

Tôi đang tìm trợ giúp để hợp nhất hai từ điển theo một cách cụ thể. Tôi sẽ rất biết ơn cho bất kỳ suy nghĩ.

Tôi có hai từ điển như thế này: mệnh lệnh thứ nhất:

may chủ:
  máy chủ 1:
    Tài sản1: A
    Tài sản2: B
    Tài sản3: C
  máy chủ2:
    Tài sản1: A
    Tài sản2: B
    Tài sản3: C

lệnh thứ 2:

sự quản lý:
  máy chủ1: ip1_addr
  máy chủ2: ip2_addr

Kết quả như ý:

may chủ:
  máy chủ 1:
    Tài sản1: A
    Tài sản2: B
    Tài sản3: C
    Thuộc tính4: ip1_addr
  máy chủ2:
    Tài sản1: A
    Tài sản2: B
    Tài sản3: C
    Thuộc tính4: ip2_addr

Hoặc tôi có thể đã chọn sai đường dẫn, tất cả những gì tôi cần là lặp lại hai từ điển đó trong một lần, để lấy ip1_addr bên dưới khóa server1 và ip2_addr bên dưới khóa server2

Điểm:2
lá cờ br

Chuyển đổi từ điển sự quản lý đầu tiên

    - bộ_thực tế:
        mgmt: "{{ mgmt|d({})|combine({item.key: {'Property4': item.value}}) }}"
      vòng lặp: "{{quản lý|dict2items }}"

cho

  quản lý:
    máy chủ 1:
      Thuộc tính4: ip1_addr
    máy chủ2:
      Thuộc tính4: ip2_addr

sau đó phối hợp từ điển

    - bộ_thực tế:
        máy chủ: "{{ máy chủ|kết hợp(mgmt, đệ quy=True) }}"

cho kết quả mong muốn

  may chủ:
    máy chủ 1:
      Tài sản1: A
      Tài sản2: B
      Tài sản3: C
      Thuộc tính4: ip1_addr
    máy chủ2:
      Tài sản1: A
      Tài sản2: B
      Tài sản3: C
      Thuộc tính4: ip2_addr

Nếu bạn muốn lặp lại kết quả, việc chuyển đổi cả hai từ điển thành danh sách sẽ dễ dàng hơn

    - bộ_thực tế:
        mgmt: "{{ mgmt|d([]) + [{'server': item.key,
                                 'Property4': item.value}] }}"
      vòng lặp: "{{quản lý|dict2items }}"

    - bộ_thực tế:
        srvs: "{{ srvs|d([]) + [{'server': item.key}|combine(item.value)] }}"
      vòng lặp: "{{máy chủ|dict2items }}"

cho

  quản lý:
  - Thuộc tính4: ip1_addr
    máy chủ: máy chủ1
  - Thuộc tính4: ip2_addr
    máy chủ: máy chủ2

  srv:
  - Thuộc tính1: A
    Tài sản2: B
    Tài sản3: C
    máy chủ: máy chủ1
  - Thuộc tính1: A
    Tài sản2: B
    Tài sản3: C
    máy chủ: máy chủ2

Sau đó sử dụng Cộng đồng.Tổng hợp lọc list_mergeby

    - gỡ lỗi:
        msg: "{{ srvs|lists_mergeby(mgmt, 'server') }}"

cho

  tin nhắn:
  - Thuộc tính1: A
    Tài sản2: B
    Tài sản3: C
    Thuộc tính4: ip1_addr
    máy chủ: máy chủ1
  - Thuộc tính1: A
    Tài sản2: B
    Tài sản3: C
    Thuộc tính4: ip2_addr
    máy chủ: máy chủ2

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