Điểm:1

Làm cách nào tôi có thể xem các lệnh ansible chạy và đầu ra của chúng?

lá cờ us

Tôi mới sử dụng Ansible và vâng, tôi biết điều này đã được hỏi nhiều lần, nhưng tôi đã thử áp dụng lời khuyên mà tôi thấy ở nơi khác.

tôi đã làm xuất ANSIBLE_STDOUT_CALLBACK=gỡ lỗi và sau đó ansible-playbook -vvvvvv arch-upgrade.yaml -l my-host với nâng cấp vòm.yaml phía dưới:

- tên: ArchLinux cập nhật
  máy chủ: tất cả
  nhiệm vụ:
    - tên: nâng cấp toàn bộ hệ thống
      pacman:
        update_cache: có
        nâng cấp: có
      đăng ký: ra
    - gỡ lỗi: msg="{{ ra }}"

tôi có rất nhiều chi tiết về cách ansible mở các kết nối ssh của nó, truyền tệp python của nó, chạy nó từ xa, v.v. nhưng theo như tôi có thể nói, không có một điều gì về lệnh mà tập lệnh python thực sự đã chạy và nó trả về cái gì (stdout, stderr, mã trả về). Đó là lý do tại sao tôi không đưa nhật ký rất dài này vào đây, nhưng tôi có thể viết theo yêu cầu.

Có ai đó biết làm thế nào tôi có thể yêu cầu ansible tiết lộ hơn về nó làm (và không thế nào nó làm được)?

lá cờ br
Ansible có thể cung cấp cho bạn đầu ra của một mô-đun. Xem [Gỡ lỗi mô-đun](https://docs.ansible.com/ansible/latest/dev_guide/debugging.html#debugging-modules) nếu bạn muốn tìm hiểu thêm. Nó khá đơn giản. Bạn yêu cầu Ansible để lại mã ở nút từ xa. Xem ANSIBLE_KEEP_REMOTE_FILES. Sau đó, tại nút từ xa, bạn giải nén mã và chạy *pdb*.
lá cờ us
Ok cảm ơn, tôi đoán đây là một cách để làm điều đó. Có vẻ hơi phức tạp mặc dù.Có cách nào "gốc" để xem điều gì đang xảy ra từ dòng lệnh ansible không? Ý tôi là những thứ như `run_command` không tương tác với một số loại cơ chế ghi nhật ký riêng trong ansible?
lá cờ br
Không có nó không phải là. Hãy tưởng tượng cách Ansible hoạt động. Đầu tiên, tại bộ điều khiển, tất cả dữ liệu và mã được nén thành một gói ``AnsiballZ``. Sau đó, gói này được gửi đến một nút từ xa. Tại nút từ xa, dữ liệu và mã được trích xuất và thực thi. Khi một tác vụ hoàn thành, đầu ra sẽ được gửi lại từ nút từ xa đến bộ điều khiển. Đọc liên kết ở trên.
lá cờ us
Vâng, những gì bạn đề xuất là đơn giản từ quan điểm thiết kế hệ thống. Nó không đơn giản như vậy từ quan điểm của người dùng. Tôi hơi ngạc nhiên khi không có khung chung nào trong ansible để ghi nhật ký các tác dụng phụ và những gì mô-đun thực hiện (lệnh trình bao, lệnh gọi hệ thống, lệnh gọi API, v.v.) mà không cần phải chạy thủ công. Tuy nhiên, cảm ơn vì những hiểu biết sâu sắc về nội bộ của ansible!
lá cờ br
Không có gì! Cần phải hiểu rằng thành công của Ansible là cung cấp một khuôn khổ toàn diện để viết các mô-đun tùy chỉnh. Có [cấu trúc thống nhất của đầu ra](https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#creating-an-info-or-a-facts-module) nhưng do sự đa dạng của các mô-đun, bạn chỉ nhận được đầu ra như vậy mà tác giả của mô-đun cung cấp. Tôi cho rằng có khoảng 10 nghìn mô-đun vào lúc này. Xem [Bộ sưu tập Ansible](https://github.com/orgs/ansible-collections/repositories).

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