ubuntu22.04一键部署ceph-v17.2.3集群脚本(cephadm方式)
Ubuntu 22.04 LTS
docker-v20.10.17
ceph1 ceph2 ceph3 ceph4 ceph5
磁盘:2T*3=6T(共30T)
ssh-keygenfor i in ceph{1..5}; do echo ">>> $i";ssh-copy-id root@$i;done
wget https://github.com/ceph/ceph/raw/v17.2.3/src/cephadm/cephadmchmod +x cephadm
一键通用安装脚本
cat > ceph-v17.2.3.sh << 'eof'#!/bin/bashceph1_ip=192.168.1.204# 1、安装 dockerecho -e "\e[32;5m[=====♫ ♬ ♪ ♩ ♭ ♪ の 安装 docker の ♪ ♭ ♩ ♪ ♬ ♫=====]\e[0m"curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpgfor i in ${@:2};doecho -e "\e[32;5m>>> $i\e[0m";scp /etc/apt/keyrings/docker.gpg root@$i:/etc/apt/keyrings;doneecho \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/nullfor i in ${@:2};doecho -e "\e[32;5m>>> $i\e[0m";scp /etc/apt/sources.list.d/docker.list root@$i:/etc/apt/sources.list.d;donefor i in $@;doecho -e "\e[32;5m>>> $i\e[0m";ssh root@$i "apt update && apt install docker-ce -y";done# 2、cephadm-v17.2.3安装ceph集群echo -e "\e[32;5m[=====♫ ♬ ♪ ♩ ♭ ♪ の cephadm-v17.2.3安装ceph集群 の ♪ ♭ ♩ ♪ ♬ ♫=====]\e[0m"# wget https://github.com/ceph/ceph/raw/v17.2.3/src/cephadm/cephadmgrep quay.io cephadm |awk '{print $3}' |xargs -i docker pull {}docker save -o ceph-v17.tar quay.io/ceph/ceph:v17for i in ${@:2}; do echo ">>> $i";scp /root/ceph-v17.tar root@$i:/root; donefor i in ${@:2}; do echo ">>> $i";ssh root@$i "ls /root |xargs -i docker load -i {}";done./cephadm bootstrap --mon-ip $ceph1_ip | tee ceph-init.logapt install ceph-common=17.2.0-0ubuntu0.22.04.1 -yfor i in ${@:2};doecho -e "\e[32;5m>>> $i\e[0m";ssh-copy-id -f -i /etc/ceph/ceph.pub root@$i;donefor i in ${@:2};doecho -e "\e[32;5m>>> $i\e[0m";ceph orch host add $i;doneceph orch apply osd --all-available-deviceseof
bash ceph-v17.2.3.sh ceph1 ceph2 ceph3 ceph4 ceph5
===
ceph orch host lsceph orch device ls
$ a=(1 2 3)$ echo "${a[@]:1}"2 3
cat > test.sh << 'EOF'node=$1for i in ${node[*]};doecho -e "\e[32;5m>>> $i\e[0m";ping -c2 qq.com;doneEOFbash test.sh "ceph1 ceph2 ceph3 ceph3 ceph4 ceph5"
node=$1for i in ${node[*]};bash test.sh "ceph1 ceph2 ceph3 ceph3 ceph4 ceph5"bash test.sh 'ceph1 ceph2 ceph3 ceph3 ceph4 ceph5'# 需要单引号、双引号
cat > test.sh << 'EOF'for i in ${@:2};doecho -e "\e[32;5m>>> $i\e[0m";ping -c2 qq.com;doneEOFbash test.sh ceph1 ceph2 ceph3 ceph3 ceph4 ceph5
for i in $@;for i in ${@:2};bash test.sh ceph1 ceph2 ceph3 ceph3 ceph4 ceph5# 不需要单引号、双引号
