У меня есть процесс, который берет файл из папки «in» и помещает их в папку «error» при сбое процесса.У меня есть 2 кластера из 4 узлов, где этот процесс выполняется.Я хочу подсчитывать файлы как в папке «in», так и в папке «error» на каждом узле, но мне нужно подсчитать общее количество по кластеру
Это то, что я пробовал, но оно не работает
- name: Count files in Error and in
hosts: cluster_data
become: true
gather_facts: no
vars:
error_path: "{{ ERROR_PATH }}"
in_path: "{{ IN_PATH }}"
tasks:
- name: initiate total_files_error
set_fact:
total_files_error: 0
- name: "count number of files in {{ error_path }} by node"
files:
paths: "{{ error_path }}"
register: count_files_error
- name: print number of files in {{ error_path }} by node"
debug:
msg: "{{ count_files_error.examined }}"
- name: "count number of files in {{ error_path }} by cluster"
set_fact:
total_files_error: "{{ total_files_error + count_files_error.examined|int }}"
- name: "print number of files in {{ error_path }} by cluster"
debug:
msg: "{{ total_files_error }}"
Я хотел бы иметь счетчик total_files_error для каждого cluster_data1
и cluster_data2
, но я не думаю, что хорошо понимаю, как работает set_fact
Это то, что у меня сейчас:
TASK [initiate total_files_error] **********************************************
ok: [cluster_data11]
ok: [cluster_data12]
ok: [cluster_data21]
ok: [cluster_data22]
TASK [count number of files in /data/a2/error] *********************************
ok: [cluster_data21]
ok: [cluster_data12]
ok: [cluster_data11]
ok: [cluster_data22]
TASK [debug] *******************************************************************
ok: [cluster_data12] => {
"msg": "504"
}
ok: [cluster_data21] => {
"msg": "534"
}
ok: [cluster_data11] => {
"msg": "1926"
}
ok: [cluster_data22] => {
"msg": "5025"
}
TASK [set_fact] ****************************************************************
ok: [cluster_data12]
ok: [cluster_data21]
ok: [cluster_data11]
ok: [cluster_data22]
TASK [debug] *******************************************************************
ok: [cluster_data11] => {
"msg": "1926"
}
ok: [cluster_data12] => {
"msg": "504"
}
ok: [cluster_data21] => {
"msg": "534"
}
ok: [cluster_data22] => {
"msg": "5025"
}
Это то, что я ожидал:
TASK [initiate total_files_error] **********************************************
ok: [cluster_data11]
ok: [cluster_data12]
ok: [cluster_data21]
ok: [cluster_data22]
TASK [count number of files in /data/a2/error] *********************************
ok: [cluster_data21]
ok: [cluster_data12]
ok: [cluster_data11]
ok: [cluster_data22]
TASK [debug] *******************************************************************
ok: [cluster_data12] => {
"msg": "504"
}
ok: [cluster_data21] => {
"msg": "534"
}
ok: [cluster_data11] => {
"msg": "1926"
}
ok: [cluster_data22] => {
"msg": "5025"
}
TASK [set_fact] ****************************************************************
ok: [cluster_data12]
ok: [cluster_data21]
ok: [cluster_data11]
ok: [cluster_data22]
TASK [debug] *******************************************************************
ok: [cluster_data1] => {
"msg": "2430"
}
ok: [cluster_data2] => {
"msg": "5559"
}
Полагаю, я могу что-то сделать с set_fact, но я не понимаю, как.Можете ли вы помочь мне в этом?
Есть ли кто-нибудь, кто может помочь мне, пожалуйста?
Спасибо заранее
С уважением, Винаэль