使用ceph-ansible部署docker化的ceph叢集
阿新 • • 發佈:2018-12-15
安裝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