Added output of ceph and osd status in the form of tables

parent 7fc8726b
......@@ -82,7 +82,7 @@ fi
# Копируем публичный ssh ключ на все узлы кластера пользователю ceph в /var/lib/ceph
# Путь к файлу id_ed25519.pub
public_key="/root/.ssh/id_ed25519.pub"
public_key="/root/.ssh/id*.pub"
read -p "Введите название основного сервера: " server_name
# Цикл для копирования ключа и добавления в authorized_keys
for node in $nodes; do
......@@ -128,9 +128,6 @@ ceph-deploy mds create $nodes
#Скопируем конфигурационные файлы на узлы кластера:
ceph-deploy admin $nodes
# Переменная для хранения OSD
osd_disks=""
# Получение списка доступных дисков
available_disks=$(lsblk -o NAME,TYPE -n | awk '$2=="disk" {print $1}')
......@@ -141,14 +138,51 @@ osd_disks=""
for node in $nodes; do
read -p "Выберите диск для OSD на ноде $node ($available_disks):" osd_disk
osd_disks="$osd_disk"
done
# Добавим в кластер серверы с данными:
for node in $nodes; do
echo -e "${yellow}Добавление диска $osd_disks на ноде $node в кластер...${reset}"
ceph-deploy osd create --data /dev/$osd_disks $node
echo -e "${yellow}Добавление диска в кластер на ноде $node завершено.${reset}"
done
# Завершено
echo -e "${yellow}Установка и настройка Ceph завершены.${reset}"
echo -e "${yellow}Установка и настройка Ceph закончены.${reset}"
# Запускаем ceph -s и сохраняем вывод в переменной
ceph_status=$(ceph -s)
# Функция для вывода строки таблицы
print_table_row() {
local column1="$1"
local column2="$2"
printf "%-30s %-50s\n" "$column1" "$column2"
}
# Оформляем вывод в виде таблицы
echo "Состояние кластера Ceph:"
echo "============================"
print_table_row "Кластер ID:" "$(echo "$ceph_status" | grep "id:" | awk '{print $2}')"
print_table_row "Состояние:" " $(echo "$ceph_status" | grep "health:" | awk '{print $2}')"
print_table_row "OSD в работе:" "$(echo "$ceph_status" | grep "osd:" | awk '{print $2}')"
print_table_row "OSD отключено:" " $(echo "$ceph_status" | grep "osd:" | awk '{print $4}')"
print_table_row "PG в работе:" "$(echo "$ceph_status" | grep "pgs:" | awk '{print $2,$3}')"
print_table_row "Мониторы:" " $(echo "$ceph_status" | grep "mon:" | awk '{print $5}')"
echo "============================"
# Запускаем ceph osd df и сохраняем вывод в переменной
ceph_osd_df=$(ceph osd df)
# Функция для вывода строки таблицы
print_table_row() {
local column1="$1"
local column2="$2"
printf "%-20s %-20s\n" "$column1" "$column2"
}
# Оформляем вывод в виде таблицы
echo "Состояние OSD в кластере Ceph:"
echo "================================"
print_table_row "ID OSD" "Использовано (%)"
echo "--------------------------------"
echo "$ceph_osd_df" | awk '{print $1, $2, $3}' | tail -n +2 | while read -r id used; do
print_table_row "$id" "$used"
done
echo "================================"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment