Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
ceph-auto
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Timofey
ceph-auto
Commits
7e92cdfd
Commit
7e92cdfd
authored
Sep 04, 2023
by
Timofey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete ceph_deploy.0.1.sh
parent
8ca22d43
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
190 deletions
+0
-190
ceph_deploy.0.1.sh
ceph_deploy.0.1.sh
+0
-190
No files found.
ceph_deploy.0.1.sh
deleted
100755 → 0
View file @
8ca22d43
#!/bin/bash
yellow
=
'\033[0;33m'
reset
=
'\033[0m'
# Функция для вывода подтверждения и чтения ответа
confirm
()
{
read
-p
"
$1
(y/n): "
response
case
"
$response
"
in
[
yY]|[yY][eE][sS]
)
return
0
;;
*
)
return
1
;;
esac
}
# Запрос подтверждения перед обновлением
if
confirm
"Вы хотите обновить репозитории и систему на этой машине?"
;
then
# Обновление репозиториев
echo
-e
"
${
yellow
}
Обновление репозиториев...
${
reset
}
"
epm update
# Обновление системы
echo
-e
"
${
yellow
}
Обновление системы...
${
reset
}
"
epm upgrade
echo
-e
"
${
yellow
}
Обновление завершено.
${
reset
}
"
else
echo
-e
"
${
yellow
}
Обновление отменено.
${
reset
}
"
fi
# Обновление системы на удаленных хостах через SSH
# Запрос подтверждения перед обновлением
for
node
in
$nodes
;
do
if
confirm
"Вы хотите обновить репозитории и систему на машине?
$node
"
;
then
echo
-e
"
${
yellow
}
Обновление системы на хосте
$node
${
reset
}
"
ssh
"
$node
"
"epm update && epm upgrade -y"
echo
-e
"
${
yellow
}
Обновление системы на хосте
$node
завершено.
${
reset
}
"
fi
done
else
echo
-e
"
${
yellow
}
Обновление отменено.
${
reset
}
"
# Установка Ceph на сервере
if
!
epm qp ceph-deploy
;
then
epm
install
ceph-deploy ceph
fi
# Запрос информации у пользователя
read
-p
"Введите название нодов (через пробел):"
nodes
# Функция для установки пакета на удаленных нодах через SSH
install_ceph_deploy
()
{
local
nodes
=
"
$@
"
# Получение списка нод из аргументов функции
for
node
in
$nodes
;
do
echo
-e
"
${
yellow
}
Установка ceph на ноду
$node
...
${
reset
}
"
ssh
"
$node
"
" epm install ceph"
echo
-e
"
${
yellow
}
Установка ceph на ноду
$node
завершена.
${
reset
}
"
done
}
install_ceph_deploy
$nodes
# Получение списка доступных дисков
available_disks
=
$(
lsblk
-o
NAME,TYPE
-n
|
awk
'$2=="disk" {print $1}'
)
# Установка ceph на ноды
ceph-deploy
install
${
nodes
}
# Переменная для хранения OSD
osd_disks
=
""
# Запрос дисков для OSD
for
node
in
$nodes
;
do
read
-p
"Выберите диск для OSD на ноде
$node
(
$available_disks
):"
osd_disk
osd_disks
=
"
$osd_disks$node
:
$osd_disk
"
done
# Копирование SSH-ключа на другие ноды
for
node
in
${
nodes
}
;
do
ssh-copy-id
-f
root@
${
node
}
done
#Создание конфигурационного файла
cd
/etc/ceph
ceph-deploy new
${
nodes
}
#$(hostname) ${nodes}
ceph-deploy
--overwrite-conf
mon create
${
nodes
}
echo
"public_network = 192.168.0.13/24"
>>
/etc/ceph/ceph.conf
ceph-deploy mon create-initial
#Создайте сервис мониторинга:
ceph-deploy mgr create
${
nodes
}
#Создайте Metadata сервера (Если CephFS):
ceph-deploy mds create
${
nodes
}
#Скопируйте конфигурационные файлы на узлы кластера:
ceph-deploy admin
${
nodes
}
# Создание конфига на нодах
#for node_conf in ${nodes}; do
# ssh "$node_conf" cd /etc/ceph | ceph-deploy new ${nodes} | ceph-deploy --overwrite-conf mon create ${nodes}
#done
#config_file="/etc/ceph/ceph.conf"
#changes_needed="
# [global]
# fsid = $(uuidgen)
# mon_initial_members = $(hostname -s) ${nodes}
# mon host = $(hostname -i)
# auth_cluster_required = cephx
# auth_service_required = cephx
# auth_client_required = cephx
# cluster_network = 192.168.0.0/24
#"
# Функция для внесения изменений в конфигурационный файл
#apply_changes_to_config() {
# local config_file="$1" # Первый аргумент - путь к конфигурационному файлу
# local changes_needed="$2" # Второй аргумент - изменения, которые нужно внести
# Проверка наличия файла
# if [ -f "$config_file" ]; then
# Проверка, что изменения еще не внесены
# if grep -q "$changes_needed" "$config_file"; then
# echo -e "${yellow}Изменения уже присутствуют в конфигурационном файле.${reset}"
# else
# Внесение изменений в конфигурационный файл
# echo "$changes_needed" | tee -a "$config_file" > /dev/null
# echo -e "${yellow}Изменения успешно внесены в конфигурационный файл.${reset}"
# fi
# else
# Создание конфигурационного файла и внесение изменений
# echo "$changes_needed" | sudo tee "$config_file" > /dev/null
# echo -e "${yellow}Конфигурационный файл создан, и изменения успешно внесены.${reset}"
# fi
#}
#apply_changes_to_config "$config_file" "$changes_needed"
###### ДО СЮДА РАБОТАЕТ
# После перехода на systemd
# именно демоны мониторов почему-то автоматически не добавляются в автостарт,
# поэтому добавляем их в systemd руками:
for
node_id
in
${
nodes
}
;
do
ssh
"
$node_id
"
serv ceph-mon@
$(
hostname
)
.service on
done
# Запуск Ceph мониторов
#serv ceph-mon on
# Создание OSD на каждом диске
for
disk
in
${
disks
}
;
do
ceph-disk prepare /dev/
${
disk
}
ceph-disk activate /dev/
${
disk
}
1
done
# Запуск OSD
serv on ceph-osd.target
# Проверка наличия OSD на ноде
#if ! ceph osd tree | grep -q "$node"; then
# Создание OSD на ноде
# ceph osd create
# ceph-osd -i <id>
# else
# echo "${yellow}Создать OSD не получилось${reset}"
#fi
# Подключение к Ceph
ceph auth get-key client.admin
>
/etc/ceph/ceph.client.admin.keyring
chmod
600 /etc/ceph/ceph.client.admin.keyring
# Настройка прав доступа для утилиты ceph-deploy
ceph auth get-key client.bootstrap-osd
>
/dev/null 2>&1
||
ceph auth add client.bootstrap-osd mon
'allow profile bootstrap-osd'
ceph auth get-or-create client.bootstrap-osd mon
'profile bootstrap-osd'
osd
'profile bootstrap-osd'
>
/etc/ceph/ceph.client.bootstrap-osd.keyring
# Предварительное форматирование дисков на нодах
for
node
in
$nodes
;
do
echo
"Форматирование диска
$disk
на ноде
$node
..."
ceph-deploy disk zap
$node
/dev/
$disk
echo
"Форматирование диска
$disk
на ноде
$node
завершено."
done
# Завершено
echo
-e
"
${
yellow
}
Установка и настройка Ceph завершены.
${
reset
}
"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment