#!/bon/bash
Ceph 官网installed
#1. 做无密码访问设置
ssh-keygen
for i in {161..164};do ssh-copy-id -i .ssh/id_rsa.pub root@10.100.201.$i;done
#2.源设置
for i in {161..164};do ssh 10.100.201.$i "yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm";done
for i in {161..164};do scp /etc/yum.repos.d/{ceph.repo,epel.repo,epel-testing.repo} root@10.100.201.$i:/etc/yum.repos.d/;done
#3. 用 Aliyun 的ceph yum 源
[Ceph_SRPMS]
name=Ceph_SRPMS
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS/
priority=2
enabled=1
gpgcheck=0
[Ceph_aarch64]
name=Ceph_aarch64
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/aarch64/
enabled=1
gpgcheck=0
[Ceph_noarch]
name=Ceph_noarch
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=0
[Ceph_x86_64]
name=Ceph_x86_64
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=0
#4. 设置 selinux 和firewalld
for i in {161..164};do ssh 10.100.201.$i "sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'" /etc/selinux/config;done
for i in {161..164};do ssh 10.100.201.$i "systemctl stop firewalld && systemctl disable firewalld";done
#5. update and reboot
for i in {161..164};do ssh 10.100.201.$i "yum update -y ";done
for i in {164..161};do ssh 10.100.201.$i "reboot";done
##6. 在161 上安装 ceph-deploy
yum install ceph-deploy -y
### install yum-plugin-priorities rpm
for i in {161..164};do ssh 10.100.201.$i "yum install yum-plugin-priorities -y" ;done
for i in {161..164};do ssh 10.100.201.$i "yum install snappy leveldb gdisk python-argparse gperftools-libs";done
##7.设置Hostname
for i in {161..164};do ssh 10.100.201.$i "hostnamectl set-hostname ceph$(ip a)";done
##设置/etc/hosts
cat <<END> /etc/hosts
10.100.201.161 ceph01
10.100.201.162 ceph02
10.100.201.163 ceph03
10.100.201.164 ceph04
END
for i in {162..164};do scp /etc/hosts 10.100.201.$i:/etc/;done
for i in {161..164};do ssh 10.100.201.$i "yum install snappy leveldb gdisk python-argparse gperftools-libs -y";done
##8.创建用户
useradd Cephx
cd /home/Cephx
passwd Cephx
###设置权限
echo "Cephx ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/Cephx
Cephx ALL = (root) NOPASSWD:ALL
[root@ceph01 ~]# chmod 0440 /etc/sudoers.d/Cephx
###设置ntpd
for i in {161..164};do ssh 10.100.201.$i "yum install chrony -y";done
for i in {161..164};do ssh 10.100.201.$i "systemctl enable chronyd";done
####ceph01 chrony.conf 设置
echo <<END> /etc/chrony.conf
server 127.0.0.1. iburst
driftfile /var/lib/chrony/drift
stratumweight 0
makestep 1 -1
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
rtcsync
allow 10.100.201.0/24
local stratum 10
keyfile /etc/chrony.keys
logdir /var/log/chrony
log measurements statistics tracking
END
##其他ceph节点设置
for i in {162..164};do ssh 10.100.201.$i "sed -i -e '/server*/'d -e '4a\server 10.100.201.161 iburst' /etc/chrony.conf";done
for i in {161..164};do ssh 10.100.201.$i "systemctl restart chronyd";done
for i in {161..164};do ssh 10.100.201.$i "chronyc sources";done
##创建集群
cd /home/Cephx
mkdir myceph
cd myceph
ceph-deploy new ceph{01..03}
###安装软件
ceph-deploy install ceph{01..04} --no-adjust-repos
ceph-deploy mon create-initial
###创建OSD 过程
##格式化盘
ceph-volume lvm zap /dev/sdb
ceph-volume lvm zap /dev/sdc
###创建osd 盘 blustore方式无journal盘
ceph-deploy osd create ceph04 --data /dev/sdc
###开启 dashboard 和prometheus
[root@ceph01 ceph]# ceph mgr module enable dashboard
[root@ceph01 ceph]# ceph mgr module enable prometheus
module 'dashboard' is already enabled
[root@ceph01 ceph]# ceph dashboard create-self-signed-cert
Self-signed certificate created
[root@ceph01 ceph]# ceph dashboard set-login-credentials admin admin
Username and password updated
[root@ceph01 ceph]# sudo ceph mgr services
{
"dashboard": "https://ceph04:8443/",
"prometheus": "http://ceph04:9283/"
}
###web: https://ceph04:8443