部署說明:部署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
查看集羣狀態,驗證是否成功,出現如下圖所示即爲成功。
如若不成功,檢查部署過程中的錯誤信息,做出相應的修改