Điểm:1

Ansible include_vars: Bao gồm các biến từ điển từ một tệp

Tôi đang cố tải các biến từ điển từ một tệp và không thể truy cập các biến bên trong. Liệu bạn có thể giúp mình không? xin lỗi vì một câu hỏi quá đơn giản

Đây là một ví dụ mã làm việc:

---
  nhiệm vụ:
  - tên: Kiểm tra chính tả
    lọ:
      người dùng:
        alice:
          Tên: Alice Appleworth
          điện thoại: 123-456-7890
        bồng bột:
          Tên: Bob Bananarama
          điện thoại: 987-654-3210
    gỡ lỗi:
      msg: "Người dùng {{ item.key }} là {{ item.value.name }} ({{ item.value.telephone }})"
    vòng lặp: "{{ tra cứu('dict', người dùng) }}"

Nhưng khi tôi thêm dict vào một tệp và sử dụng include_vars để tải nó, đoạn mã trên không hoạt động.

Tập tin: test1.yml

người dùng:
  alice:
    Tên: Alice Appleworth
    điện thoại: 123-456-7890
  bồng bềnh:
    Tên: Bob Bananarama
    điện thoại: 987-654-3210

Đoạn mã sau không hoạt động

  nhiệm vụ:
  - tên: Kiểm tra chính tả
    bao gồm_vars: test1.yml
    gỡ lỗi:
      msg: "Người dùng {{ item.key }} là {{ item.value.name }} ({{ item.value.telephone }})"
    vòng lặp: "{{ tra cứu('dict', người dùng) }}"

Nhưng lồng tiếng ansible -vvv cho thấy

được rồi: [máy chủ cục bộ] => {
    "ansible_facts": {
        "người dùng": [
            {
                "alice": không,
                "tên": "Alice Appleworth",
                "điện thoại": "123-456-7890"
            },
            {
                "bob": không,
                "tên": "Bob Bananarama",
                "điện thoại": "987-654-3210"
            }
        ]
    },
lá cờ cn
Nói chung, bản thân "không hoạt động" là vô nghĩa -- bạn nên trích dẫn (các) thông báo lỗi mà bạn đang nhận được...
Điểm:2
lá cờ th

"Không hoạt động" là một mô tả rất mơ hồ về vấn đề của bạn, nhưng đây không phải là định nghĩa nhiệm vụ hợp lệ:

  - tên: Kiểm tra chính tả
    bao gồm_vars: test1.yml
    gỡ lỗi:
      msg: "Người dùng {{ item.key }} là {{ item.value.name }} ({{ item.value.telephone }})"
    vòng lặp: "{{ tra cứu('dict', người dùng) }}"

bao gồm_varsgỡ lỗi là những hành động riêng lẻ nên chúng cần phải là những nhiệm vụ riêng biệt; như bạn có nó, điều này sẽ cung cấp cho bạn lỗi hữu ích LỖI! tuyên bố hành động xung đột: bao gồm_vars, gỡ lỗi

  - bao gồm_vars: test1.yml

  - tên: Kiểm tra chính tả
    gỡ lỗi:
      msg: "Người dùng {{ item.key }} là {{ item.value.name }} ({{ item.value.telephone }})"
    vòng lặp: "{{người dùng | dict2items }}"

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