1. 程式人生 > >使用ceph-ansible部署docker化的ceph叢集

使用ceph-ansible部署docker化的ceph叢集

安裝ansible

關於安裝ansible,這裡就不再累述,請參考官方文件

下載ceph-ansible

git clone https://github.com/ceph/ceph-ansible.git
cd ceph-ansible
# 關於分支說明請參考ceph-ansible的官方文件 http://docs.ceph.com/ceph-ansible/master/
# stable-3.1 Support for Ceph version luminous and mimic. This branch supports Ansible version 2.4.
git checkout stable-3.1

配置ceph-ansible

cp group_vars/all.yml.sample group_vars/all.yml
cp group_vars/osds.yml.sample group_vars/osds.yml
cp site-docker.yml.sample site-docker.yml

編輯group_vars/all.yml檔案,以下資訊請根據實際的情況進行適配修改。

generate_fsid: true
monitor_interface: ens5f0
journal_size: 5120
public_network: 192.168.74.0/24
cluster_network: 192.168.74.0/24
ceph_docker_image: "ceph/daemon"
ceph_docker_image_tag: master-d4b8dde-mimic-centos-7-x86_64
containerized_deployment: true
ceph_docker_registry: docker.io
radosgw_interface: ens5f0

編輯group_vars/osds.yml檔案,以下資訊請根據實際的情況進行適配修改。

osd_scenario: non-collocated
osd_objectstore: bluestore
dmcrypt: false 
devices:
  - /dev/sda
  - /dev/sdb
  - /dev/sdc
dedicated_devices:
  - /dev/sdd
  - /dev/sdd
  - /dev/sdd
bluestore_wal_devices:
  - /dev/sdd
  - /dev/sdd
  - /dev/sdd

建立hosts檔案,以下資訊請根據實際的情況進行適配修改。

[mons]
192.168.74.200 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.201 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.202 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx

[mgrs]
192.168.74.200 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.201 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.202 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx

[osds]
192.168.74.200 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.201 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.202 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx

[rgws]
192.168.74.200 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.201 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx
192.168.74.202 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=xxx

啟動部署

若下面的命令出錯,日誌檔案預設在/var/log/ansible.log,可參考出錯的日誌進行處理。(注:在部署過程中,會在每個節點上預設安裝docker,這一步指令碼中並不會判斷當前機器是否已經安裝過docker,若目標機器已經安裝過docker了,這裡可能會出錯,解決的辦法就是註釋掉相應的安裝docker的步驟,相應的內容在roles/ceph-docker-common/tasks/pre_requisites/prerequisites.yml。)

ansible-playbook site-docker.yml -i hosts

銷燬叢集(謹慎)

這裡會預設解除安裝docker,若不想解除安裝docker,註釋掉infrastructure-playbooks/purge-docker-cluster.yml中相應的程式碼即可。

ansible-playbook infrastructure-playbooks/purge-docker-cluster.yml -i hosts