Tôi đang sử dụng 2 playbook được liên kết, có chi tiết được đề cập bên dưới.
playbook1: thu thập dữ liệu thô từ nhiều máy
- máy chủ: target_1
thu thập_facts: sai
nhiệm vụ:
- name: Đăng ký một giá trị mới
shell: df -h|awk '{gsub("%","|");print $5 $6}'
đăng ký: PLAY1VAR
- gỡ lỗi: msg="{{PLAY1VAR.stdout}}"
- name: Đăng ký một giá trị mới
vỏ: tên máy chủ
đăng ký: PLAY2VAR
- gỡ lỗi: msg="{{PLAY2VAR.stdout}}"
- tên: Đăng ký máy chủ giả với biến
add_host:
tên: "DUMMY_HOST"
PLAY1VAR_NEW: " {{PLAY1VAR.stdout }}"
- tên: Đăng ký máy chủ giả với biến
add_host:
tên: "DUMMY_HOST_1"
PLAY2VAR_NEW: " {{PLAY2VAR.stdout }}"
- máy chủ: target_2
thu thập_facts: sai
nhiệm vụ:
- name: Đăng ký một giá trị mới
playbook2: phân tích dữ liệu bằng tập lệnh python
- máy chủ: localhost
thu thập_facts: sai
nhiệm vụ:
- tên: Echo đầu ra - biến PLAY1 vaule
lệnh: python3 /opt/diskspace_watcher/watcher.py '{{hostvars['DUMMY_HOST']['PLAY1VAR_NEW']}}' '{{hostvars['DUMMY_HOST_1']['PLAY2VAR_NEW']}}'
đăng ký: PLAY2_RESULTS
- gỡ lỗi: msg="{{PLAY2_RESULTS.stdout}}"
Tôi đang chuyển một vài biến từ playbook đầu tiên sang playbook khác, khi tôi đang chạy cái này cho chỉ một máy chủ thì nó hoạt động như mong đợi nhưng khi cố gắng chạy cho nhiều máy chủ thì không thể chuyển đối số cho tất cả máy chủ được đề cập trong kho tệp và chỉ chọn một biến cho một máy chủ cụ thể.
Tôi đang tìm cách để thực hiện điều này. Bất kỳ trợ giúp/ý tưởng được đánh giá cao!!