使用ceph-ansible部署Ceph集群

一、主机规划

主机 系统 IP 配置
ceph-node1 centos7.7 10.10.10.50 4C8G50G+100G
ceph-node2 centos7.7 10.10.10.51 4C8G50G+100G
ceph-node3 centos7.7 10.10.10.52 4C8G50G+100G

二、安装python3

 1# 安装epel源
 2yum -y install epel-release
 3
 4# 使用国内epel源
 5sed -e 's!^metalink=!#metalink=!g' \
 6    -e 's!^#baseurl=!baseurl=!g' \
 7    -e 's!//download\.fedoraproject\.org/pub!//mirrors.tuna.tsinghua.edu.cn!g' \
 8    -e 's!http://mirrors\.tuna!https://mirrors.tuna!g' \
 9    -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo
10
11yum -y install python36

三、下载代码

stable-3.0分支支持的Ceph版本为jewelluminous,该分支需要Ansible版本为2.4。 stable-3.1分支支持的Ceph版本为luminousmimic,该分支需要Ansible版本为2.4。 stable-3.2分支支持的Ceph版本为luminousmimic,该分支需要Ansible版本为2.6。 stable-4.0分支支持的Ceph版本为nautilus,该分支需要Ansible版本为2.8。 stable-5.0分支支持的Ceph版本为octopus,该分支需要Ansible版本为2.9。 master分支支持的Ceph主分支版本,该分支需要Ansible版本为2.9。


备注

stable-3.0 stable-3.1分支已经废弃并不在维护。


1yum -y install git
2git clone https://github.com/ceph/ceph-ansible.git
3# stable-4.0支持的Ceph-nautilus版本. 需要Ansible版本>=2.8,<2.9.
4git checkout stable-4.0

四、安装ansible

 1pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
 2pip3 install netaddr -i https://pypi.tuna.tsinghua.edu.cn/simple
 3
 4ansible --version
 5ansible 2.8.14
 6  config file = /root/ceph-ansible-4.0.28/ansible.cfg
 7  configured module search path = ['/root/ceph-ansible-4.0.28/library']
 8  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
 9  executable location = /usr/local/bin/ansible
10  python version = 3.6.8 (default, Apr  2 2020, 13:34:55) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

五、配置ssh免密码登录

1ssh-keygen -t rsa -b 2048 -P '' -f ~/.ssh/id_rsa
2
3ssh-copy-id ceph-node1
4ssh-copy-id ceph-node2
5ssh-copy-id ceph-node3

六、配置时间同步

1yum -y install chrony
2systemctl enable --now chronyd
3
4timedatectl set-timezone Asia/Shanghai

七、修改配置文件

创建清单文件

 1vim ceph-hosts
 2[mons]
 310.10.10.50
 410.10.10.51
 510.10.10.52
 6
 7[osds]
 810.10.10.50
 910.10.10.51
1010.10.10.52
11
12[mgrs]
1310.10.10.50
1410.10.10.51
1510.10.10.52
16
17[rgws]
1810.10.10.50
1910.10.10.51
2010.10.10.52
21
22[clients]
2310.10.10.50
2410.10.10.51
2510.10.10.52

修改配置文件

 1cd group_vars
 2cp all.yml.sample all.yml
 3grep -Ev '^#|^$' all.yml
 4---
 5dummy:
 6ceph_repository_type: repository # <== repository表示使用新的库,不使用官方仓库
 7ceph_origin: repository # <== 安装方式,repository值表示指定使用仓库安装,
 8ceph_repository: community # <== 选择使用库的来源类型,community为免费社区版
 9ceph_mirror: http://mirrors.tuna.tsinghua.edu.cn/ceph/ # <== ceph仓库的路径
10ceph_stable_key: http://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc # <== ceph key
11ceph_stable_release: nautilus # <== 安装的ceph版本 nautilus为14,最新的stable版本
12ceph_stable_repo: "http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-nautilus/" # <== ceph nautilus仓库地址
13monitor_interface: eth0 # <== 网卡名
14public_network: 10.10.10.0/24 # <== 公共网段
15cluster_network: "10.10.10.0/24" # <== 集群网段
16osd_objectstore: bluestore # <== ceph存储引擎
17radosgw_civetweb_port: 8080
18radosgw_interface: eth0
19dashboard_enabled: False  # <== 是否启用dashboard
20
21cp osds.yml.sample osds.yml
22grep -Ev '^#|^$' osds.yml
23---
24dummy:
25devices:
26- /dev/vdb # 前面准备的磁盘
27
28cp clients.yml.sample clients.yml
29cp mons.yml.sample mons.yml
30cp mgrs.yml.sample mgrs.yml
31cp rgws.yml.sample rgws.yml
32
33cd ..
34cp site.yml.sample site.yml

执行安装

1ansible-playbook -i ceph-hosts site.yml

等待安装结束即可。

八、测试

具体的测试可以参考我之前的博客:Ceph-12.2.13(luminous)安装