部署说明:部署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

并删除以下四行

clip_image002[6]

其余节点安装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命令和参数意为不显示指定文件中以‘#’开头的行和空行

clip_image004[6]

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、修改配置文件

clip_image006[6]

参数说明

devices:指定osd使用的硬盘

osd_scenario:启用并置journal

clip_image008[6]

参数说明:

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

查看集群状态,验证是否成功,出现如下图所示即为成功。

如若不成功,检查部署过程中的错误信息,做出相应的修改

clip_image010[6]