ubuntu22.04一键部署ceph-v17.2.3集群脚本(cephadm方式)

Ubuntu 22.04 LTS

docker-v20.10.17

ceph1 ceph2 ceph3 ceph4 ceph5

磁盘:2T*3=6T(共30T)

  1. ssh-keygen
  2. for i in ceph{1..5}; do echo ">>> $i";ssh-copy-id root@$i;done
  1. wget https://github.com/ceph/ceph/raw/v17.2.3/src/cephadm/cephadm
  2. chmod +x cephadm

一键通用安装脚本

  1. cat > ceph-v17.2.3.sh << 'eof'
  2. #!/bin/bash
  3. ceph1_ip=192.168.1.204
  4. # 1、安装 docker
  5. echo -e "\e[32;5m[=====♫ ♬ ♪ ♩ ♭ ♪ の 安装 docker の ♪ ♭ ♩ ♪ ♬ ♫=====]\e[0m"
  6. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  7. for i in ${@:2};do
  8. echo -e "\e[32;5m>>> $i\e[0m";
  9. scp /etc/apt/keyrings/docker.gpg root@$i:/etc/apt/keyrings;
  10. done
  11. echo \
  12. "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
  13. $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
  14. for i in ${@:2};do
  15. echo -e "\e[32;5m>>> $i\e[0m";
  16. scp /etc/apt/sources.list.d/docker.list root@$i:/etc/apt/sources.list.d;
  17. done
  18. for i in $@;do
  19. echo -e "\e[32;5m>>> $i\e[0m";
  20. ssh root@$i "apt update && apt install docker-ce -y";
  21. done
  22. # 2、cephadm-v17.2.3安装ceph集群
  23. echo -e "\e[32;5m[=====♫ ♬ ♪ ♩ ♭ ♪ の cephadm-v17.2.3安装ceph集群 の ♪ ♭ ♩ ♪ ♬ ♫=====]\e[0m"
  24. # wget https://github.com/ceph/ceph/raw/v17.2.3/src/cephadm/cephadm
  25. grep quay.io cephadm |awk '{print $3}' |xargs -i docker pull {}
  26. docker save -o ceph-v17.tar quay.io/ceph/ceph:v17
  27. for i in ${@:2}; do echo ">>> $i";scp /root/ceph-v17.tar root@$i:/root; done
  28. for i in ${@:2}; do echo ">>> $i";ssh root@$i "ls /root |xargs -i docker load -i {}";done
  29. ./cephadm bootstrap --mon-ip $ceph1_ip | tee ceph-init.log
  30. apt install ceph-common=17.2.0-0ubuntu0.22.04.1 -y
  31. for i in ${@:2};do
  32. echo -e "\e[32;5m>>> $i\e[0m";
  33. ssh-copy-id -f -i /etc/ceph/ceph.pub root@$i;
  34. done
  35. for i in ${@:2};do
  36. echo -e "\e[32;5m>>> $i\e[0m";
  37. ceph orch host add $i;
  38. done
  39. ceph orch apply osd --all-available-devices
  40. eof
  1. bash ceph-v17.2.3.sh ceph1 ceph2 ceph3 ceph4 ceph5

===

  1. ceph orch host ls
  2. ceph orch device ls
  1. $ a=(1 2 3)
  2. $ echo "${a[@]:1}"
  3. 2 3
  1. cat > test.sh << 'EOF'
  2. node=$1
  3. for i in ${node[*]};do
  4. echo -e "\e[32;5m>>> $i\e[0m";
  5. ping -c2 qq.com;
  6. done
  7. EOF
  8. bash test.sh "ceph1 ceph2 ceph3 ceph3 ceph4 ceph5"
  1. node=$1
  2. for i in ${node[*]};
  3. bash test.sh "ceph1 ceph2 ceph3 ceph3 ceph4 ceph5"
  4. bash test.sh 'ceph1 ceph2 ceph3 ceph3 ceph4 ceph5'
  5. # 需要单引号、双引号
  1. cat > test.sh << 'EOF'
  2. for i in ${@:2};do
  3. echo -e "\e[32;5m>>> $i\e[0m";
  4. ping -c2 qq.com;
  5. done
  6. EOF
  7. bash test.sh ceph1 ceph2 ceph3 ceph3 ceph4 ceph5
  1. for i in $@;
  2. for i in ${@:2};
  3. bash test.sh ceph1 ceph2 ceph3 ceph3 ceph4 ceph5
  4. # 不需要单引号、双引号