Why Docker and Ceph?
● Stateless containers
● Stateful data
● Location independent access
● Robust access protocols
● Massively scalable
● Open source
Install ansible
For installing ansible and configuring secret-free login between nodes, this is not covered here. Please refer to Official Documents at https://docs.ansible.com/
Releases
The following branches should be used depending on your requirements. The stable-* branches have been QE tested and sometimes recieve backport fixes throughout their lifecycle. The master branch should be considered experimental and used with caution.
stable-3.0 Supports Ceph versions jewel and luminous. This branch requires Ansible version 2.4.
stable-3.1 Supports Ceph versions luminous and mimic. This branch requires Ansible version 2.4.
stable-3.2 Supports Ceph versions luminous and mimic. This branch requires Ansible version 2.6.
stable-4.0 Supports Ceph version nautilus. This branch requires Ansible version 2.8.
stable-5.0 Supports Ceph version octopus. This branch requires Ansible version 2.9.
master Supports the master branch of Ceph. This branch requires Ansible version 2.9.
Download ceph-ansible
git clone https://github.com/ceph/ceph-ansible.git
cd ceph-ansible
# Refer to the official document of ceph-ansible http://docs.ceph.com/ceph-ansible/master for branch instructions.
# stable-3.1 Support for Ceph version luminous and mimic. This branch supports Ansible version 2.4.
git checkout stable-3.1
Configure 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
Edit the group_vars/all.yml file. The following information should be adapted according to the actual situation.
generate_fsid: true
monitor_interface: eth0
journal_size: 5120
public_network: 10.0.0.0/24
cluster_network: 10.0.0.0/24
ceph_docker_image: "ceph/daemon"
ceph_docker_image_tag: latest-mimic
containerized_deployment: true
ceph_docker_registry: docker.io
radosgw_interface: eth0
Edit the group_vars/osds.yml file. The following information should be adapted according to the actual situation.
osd_scenario: collocated
devices:
- /dev/xvdb
- /dev/xvdc
- /dev/xvdc
Edit the hosts file /etc.ansible/hosts, the following information should be adapted according to the actual situation.
[mons]
ip-10-0-0-80.ec2.internal
[mgrs]
ip-10-0-0-80.ec2.internal
[osds]
ip-10-0-0-80.ec2.internal
[rgws]
ip-10-0-0-80.ec2.internal
Start deployment
If the following command fails, the log file defaults to / var/log/ansible.log, you can refer to the error log for processing. (Note: During deployment, docker will be installed by default on each node. This step script does not determine whether the current machine has docker installed. If the target machine has docker installed, there may be errors. The solution is to comment out the corresponding steps to install docker. The corresponding contents are roles/ceph-docker-common/tasks/pre_requisites/pre requisites. Ites.yml.)
ansible-playbook site-docker.yml
Output:
docker ps
docker exec d77bd7f96bfe ceph -s
I hope that you have understood how to deploy ceph in docker using ansible.
Happy Cephing!!
Top comments (0)