How to install ceph nautilus with ceph-ansible

There are so many articles on how to install ceph with ceph-ansible.  Sadly, as ceph versions change, so does the process for installation.  This distinction is rarely made within in the instructions and because of that, the install is doomed to fail and the installer disenfranchised.

This article should provide the process needed to install on CentOS 7 ceph nautilus (v14.x.x) edition, which is actively maintained as of December 14, 2020. There is a newer version, Octopus (v15.x.x).


This article will make the following assumption that you already have prepared and configured four servers to act as your monitor (mon1) and three (osd1,osd2,osd3) osds. The following article will detail the preparation.

ceph: Prepare the environment


fqdn role(s) public ip cluster ip disks mem cpu admin monitor mgr 1 2 1 osd 4 (sdb sdc sdd) 2 1 osd 4 (sdb sdc sdd) 2 1 osd 4 (sdb sdc sdd) 2 1

For each of the servers, the /dev/sda drive is the OS drive.  The /dev/sdb, /dev/sdc, and /dev/sdd drives are the additional drives found on each of the osd servers.  For the sake of argument, it would be best that each of the drives are the same on each of the osds.  The cluster can be created with differing drive sizes, but for the sake of this example, each drive is of the same size, 32 GB each.


yum install ansible git python-netaddr -y
su - ceph
git clone
sudo mv ceph-ansible /usr/share/ceph-ansible
sudo cp /usr/share/ceph-ansible/site.yml.sample /usr/share/ceph-ansible/site.yml
sudo ln -s /usr/share/ceph-ansible/group_vars /etc/ansible/group_vars

Configure ansible.cfg

Modify the /etc/ansible/ansible.cfg file to allow for host_key_ckecking equal false by uncommenting the line. 'sudo vim /ec/ansible/ansible.cfg'

host_key_checking = False

Create Inventory file







Configure all.yml

The all.yml file must be placed at /etc/ansible/group_vars.

ceph_origin: repository
ceph_repository: community
ceph_repository_type: cdn
ceph_stable_release: nautilus


#monitor_interface: ens192

# Haven't got this to work yet, but these two statements eliminated many errors. 
# Reference the /usr/share/ceph-ansible/group_vars/roles/ceph-defaults/defaults/main.yml to see defaults
# user: admin
dashboard_admin_password: cephpass
grafana_admin_password: cephpass

Configure osds.yml

As with all.yml this file must be placed at /etc/ansible/group_vars.

osd_scenario: lvm
osd_objectstore: bluestore
  - /dev/sdb
  - /dev/sdc
  - /dev/sdd
  - data: /dev/sdb
  - data: /dev/sdc
  - data: /dev/sdd

Since this is a fresh installation of nautilus, bluestore is the default objectstore (osd_objectstore).The osd_scenario is lvm since it is the default for liminous or newer, nautilus. Since, the osd_scenario is selected, the lvm_volumes must defined.


As user ceph.

$ cd /usr/share/ceph-ansible
$ ansible-playbook -i /etc/ansible/hosts site.yml

I was faced with many errors and the script stopped.  To get past the errors, add ignore_errors: true to the site.yml. The excerpt below shows the added line towards the top of the script.

  gather_facts: false
  ignore_errors: true
  any_errors_fatal: true
  become: true


Use the following command to check the health of your newly created cluster.

sudo ceph -s

If there is an error along the way about unable to download something or cannot resolve a yum update, what worked in two consecutive tests was a "yum clean all" on the monitor box and rerun the ansible playbook.

Post-Install: Dashboard

The majority of the setup of the ceph cluster is complete.  The dashboard is nearly setup too.  Until I figure out how to incorporate this into the ansible variables, this will wrap things up.

sudo ceph dashboard create-self-signed-cert
sudo ceph dashboard ac-user-create cephadmin password administrator

Although this loads as a service, a quick reboot fixed any issue accessing the site that was had.

Go to and use the user cephadmin and the password password as indicated in the step above.



No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *