#python #linux #bash #ansible #centos
Вопрос:
Поэтому мне нужна помощь в этом, я хочу найти каждый многолучевой диск или LUN /main,расположенный на sd-карте[a,b,c, d], а затем поместить результаты в файл.
sda 8:0 0 893.3G 0 disk
├─sda1 8:1 0 300M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 892G 0 part
├─VolGroup00-root 253:0 0 888G 0 lvm /
└─VolGroup00-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 3T 0 disk
└─NS2FPPRMDB08_MongoDB_Data 253:2 0 3T 0 mpath
└─mongo_data_vg-mongo_data_lv 253:3 0 3T 0 lvm /main
sdc 8:32 0 3T 0 disk
└─NS2FPPRMDB08_MongoDB_Data 253:2 0 3T 0 mpath
└─mongo_data_vg-mongo_data_lv 253:3 0 3T 0 lvm /main
sdd 8:48 0 3T 0 disk
└─NS2FPPRMDB08_MongoDB_Data 253:2 0 3T 0 mpath
└─mongo_data_vg-mongo_data_lv 253:3 0 3T 0 lvm /main
sde 8:64 0 3T 0 disk
└─NS2FPPRMDB08_MongoDB_Data 253:2 0 3T 0 mpath
└─mongo_data_vg-mongo_data_lv 253:3 0 3T 0 lvm /main
Я сделал это с Ansible, но показывает только одно устройство, если для /main используется более 1 устройства .
---
- name:
hosts: dba
vars:
dev_name: '{{ hostvars[inventory_hostname]["facter_mountpoints"]["/data"]["device"]| basename}}'
tasks:
- name: get device name
set_fact:
device_name: "{{ item.key }}"
no_log: false
with_dict: "{{ ansible_devices }}"
when: " dev_name in item.value.holders"
- name: show all values for selected device name
debug:
var: "{{ item }}"
with_items:
ansible_devices[device_name]
- name: show only device name
debug: var=device_name
Ответ №1:
lsblk -lpo mountpoint,pkname,kname,name,path | grep '/main '
запустите lsblk -lpO
и решите, какие поля вы хотите вывести.