部署说明:部署ceph使用ansible自动化工具
节点说明
主机 |
角色 |
配置 |
ip地址 |
是否安装ansible-ceph |
host1 |
mon,ods,mgr,client |
1核cpu,2G内存,系统盘40G,外加两块20G硬盘 |
ens33:192.168.211.144 |
是 |
Host2 |
osd,client,mgr |
1核cpu,2G内存,系统盘40G,外加两块20G硬盘 |
ens33:192.168.211.145 |
否 |
Host3 |
osd,client |
1核cpu,2G内存,系统盘40G,外加两块20G硬盘 |
ens33:192.168.211.146 |
否 |
环境说明:本次操作为实验环境,生产环境中osd节点需要占用大量资源。
角色数量说明:官方推荐mon至少有三个(必须为奇数),实验环境一个也可
安装前准备:关闭firewalld,设置selinux为disabled状态,设置ssh免密登录,配置时钟同步服务
在安装ansible节点配置ssh免密登录
ssh-keygen 生成公钥(一路回车到底)
ssh-copy-id $host 将公钥拷贝到剩余节点上去
配置时钟同步服务
使用mon节点当做时钟同步服务器
服务器节点安装ntp服务
在/etc/ntp.conf添加
server 127.127.1.0
fudge 127.127.1.0 stratum 10
并删除以下四行
其余节点安装ntpdate
yum -y install ntpdate
向ntp服务器同步时间
ntpdate $hostname
1、安装ansible-ceph
下载ansible项目
使用git下载ansible项目
git clone https://github.com/ceph/ceph-ansible.git
如果找不到git命令,则使用yum安装
yum -y install git
2、安装Python环境
安装epel扩展源
yum -y install epel-release
安装python环境
yum -y install python2-pip-8.1.2-6.el7.noarch
3、安装ansible
yum -y install ansible(此步骤会生成/etc/ansible/hosts,第五步也会安装ansible但是没有hosts文件生成需要手动指定)
4、创建ansible工作目录,将下载好的ansible-ceph解压到工作目录中
mkdir /ceph
tar -zxvf ceph-ansible-3.1.12.tar.gz -C /ceph/
5、进入工作目录,下载ansible依赖包
使用python,根据requirements.txt下载ansible依赖包
/ceph/ceph-ansible-3.1.12
pip install -r requirements.txt
6、编写配置文件指定主机
注:grep命令和参数意为不显示指定文件中以‘#’开头的行和空行
7、备份并改名配置文件
除了site.yml.sample,all.yml.sample是必须要修改的之外,其他文件根据要安装的角色自行修改
cp site.yml.sample site.yml
cp group_vars/osds.yml.sample group_vars/osds.yml
cp group_vars/clients.yml.sample group_vars/clients.yml
cp group_vars/mons.yml.sample group_vars/mons.yml
cp group_vars/mgrs.yml.sample group_vars/mgrs.yml
cp group_vars/all.yml.sample group_vars/all.yml
8、修改配置文件
参数说明
devices:指定osd使用的硬盘
osd_scenario:启用并置journal
参数说明:
ceph_repository_type:库的类型,repository值表示使用一个新库,而非官方库
ceph_origin:安装方式,repository值表示指定使用仓库安装,
ceph_repository:选择使用库的来源类型(收费版与社区版,或者本地),community为免费社区版
ceph_mirror:使用的镜像地址
ceph_stable_key:使用镜像库的key
ceph_stable_release:安装ceph的版本
ceph_stable_repo:安装ceph的源
monitor_interface:mon使用的网卡
public_network:集群公网网段
cluster_network:集群内网网段
另外将所有配置文件里的copy_admin_key(是否拷贝admin角色的key)参数的参数值改为true,没有则不改
9、切换到site.yml所在目录,部署ceph集群
ansible-playbook site.yml
查看集群状态,验证是否成功,出现如下图所示即为成功。
如若不成功,检查部署过程中的错误信息,做出相应的修改