Điểm:0

biến đăng ký ansible xuất ra biến không xác định

lá cờ bo

Tôi đang cố gắng hoàn thành vở kịch này trong nửa ngày. Tôi đang sử dụng mô-đun stat để kiểm tra sha1sum của tệp và nếu nó không bằng tệp thứ hai thì nó sẽ thay thế tệp chính xác. Nhưng trong khi đăng ký một số biến, đầu ra nói rằng các biến đó không được xác định Tôi đang làm gì sai?

---
- máy chủ: tất cả
  remote_user: gốc
  nhiệm vụ:
    - name: lấy tổng của file
      thống kê:
        đường dẫn: /home/roundcube/config.php
        kiểm tra_thuật toán: sha1
        get_checksum: có
      đăng ký: tổng      
      
      thống kê:
        đường dẫn: /home/archive/config.php
        kiểm tra_thuật toán: sha1
        get_checksum: có
      đăng ký: tổng2
      
    - tên: kết quả
      ansible.buildin.copy:
        src: /home/archive/config.php
        đích: /home/roundcube/config.php
      khi nào: sum.stat.checksum != sum2.stat.checksum
lá cờ br
Hai nhiệm vụ *stat* là dư thừa. Mô-đun [*copy*](https://docs.ansible.com/ansible/latest/collections/ansible/buildin/copy_module.html#ansible-builtin-copy-copy-files-to-remote-locations) so sánh *tổng kiểm* của *src* và *dest* theo mặc định. Trích dẫn từ [*checksum*](https://docs.ansible.com/ansible/latest/collections/ansible/buildin/copy_module.html#parameter-checksum): ``'... Nếu điều này không được cung cấp, ansible sẽ sử dụng tổng kiểm tra tính toán cục bộ của tệp src.'``
Điểm:1
lá cờ in

Bạn đang thiếu dấu gạch nối xác định chỉ số thứ hai là một nhiệm vụ.

---
- máy chủ: tất cả
  remote_user: gốc
  nhiệm vụ:
    - name: lấy tổng của file
      thống kê:
        đường dẫn: /home/roundcube/config.php
        kiểm tra_thuật toán: sha1
        get_checksum: có
      đăng ký: tổng      
      
    - thống kê:
        đường dẫn: /home/archive/config.php
        kiểm tra_thuật toán: sha1
        get_checksum: có
      đăng ký: tổng2
      
    - tên: kết quả
      ansible.buildin.copy:
        src: /home/archive/config.php
        đích: /home/roundcube/config.php
        remote_src: có
      khi nào: sum.stat.checksum != sum2.stat.checksum

Lưu ý rằng bạn cũng đang thiếu remote_src: có tham số trong tác vụ sao chép. Không có nó, Ansible giả định rằng tệp nằm trên máy cục bộ của bạn, không phải máy chủ từ xa.

Zeitounator avatar
lá cờ fr
Xin lưu ý rằng tất cả những kiểm tra đó là hoàn toàn vô ích vì ansible sẽ chỉ sao chép tệp nếu nguồn (cục bộ hoặc từ xa) và đích thực sự khác nhau. Nếu không, nó sẽ chỉ báo 'OK'.
DeviC3 avatar
lá cờ bo
Cảm ơn Gerald Bạn đã làm cho ngày của tôi, bây giờ nó hoạt động tốt. Nó rất đơn giản.
lá cờ in
Tuyệt, nhưng hãy chú ý đến lời khuyên của Zeitounator và Vladimir. Những kiểm tra này KHÔNG cần thiết, Ansible sẽ thực hiện lại các kiểm tra tương tự trong tác vụ `sao chép`.

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