Debian based setup¶
Requirements for Debian based Operation System (Debian, Ubuntu..).
Deployer node setup¶
Execute the following packages installation:
sudo apt install \ unzip \ curl \ git \ jq \ sshpass
Install Python 3.6.8¶
sudo apt install python3 python3-pip
Python 3.6.8 from source
If you do not have Python 3.6.8 in the official repository,
you can install Python 3.6.8 from source following this guide
Install Ansible 2.9.7¶
# ansible 2.9.7 sudo pip install ansible==2.9.7
If you encounter problem setting up this required version of Ansible from your available repositories, you will find an offline setup tool in the deployment package of Punchplatform:
unzip punchplatform-deployer-x.y.z.zip cd deployment_dependencies unzip ansible-2.9.7-pippackages.zip cd ansible-2.9.7-pippackages sudo ./install.sh
Install Ceph 13.2.5¶
Deploying a ceph also requires having the OS of the deployer in Centos or RedHat.
If you plan to deploy a Ceph cluster you need additional steps.
the reason to install the Ceph packages on the deployer is because some of the deployment steps requires Ceph tools
Download the external archives and place it to the corresponding
Ceph archive naming is important, because the deployer will upload ceph archive to remote servers.
wget https://punchplatform.com/artefacts/ceph/ceph_13.2.5_deb.tgz -O punchplatform-[package]-[version]/archives/ceph_13.2.5.tgz
and install Ceph archives on your deployment server
cd punchplatform-deployer-<version>/archives tar -xvf ceph_13.2.5.tgz sudo apt install -y ceph13.2.5/*
This section will update your PATH so as to have the
cd punchplatform-deployer-<version> echo "export PATH=`pwd`/bin:$PATH" >> ~/.bashrc echo "source _punchplatform-bash-completion.sh" >> ~/.bashrc source ~/.bashrc
Create configuration directory:
cd ~ mkdir pp-deployment-conf cd pp-deployment-conf echo "export PUNCHPLATFORM_CONF_DIR=`pwd`" >> ~/.bashrc
Create logs directory:
cd ~ mkdir pp-deployment-logs cd pp-deployment-logs echo "export PUNCHPLATFORM_LOG_DIR=`pwd`" >> ~/.bashrc
Then update your environment
Check it worked as expected. The result of the
env command must look like:
env | grep PUNCH PUNCHPLATFORM_LOG_DIR=/home/vagrant/pp-deployment-logs PUNCHPLATFORM_CONF_DIR=/home/vagrant/pp-deployment-conf echo $PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/home/vagrant/bin:/data/deployer/punchplatform-deployer-<version>/bin
Targeted nodes setup¶
Ceph specific requirements¶
You must prevent the updatedb process (standard on Debian-like distributions) to scan the whole system, especially to scan the Ceph data partition or the punchplatform partition. You can do that in several ways
Use the Ansible playbook provided in the official Punchplatform deployer to automatically patch the configuration
file on multiple nodes.
This playbook is in
updatedb_patch directory, at deployer root directory. Its use is documented on playbook itself.
# add your ceph nodes in the inventory vim inventory_updatedb_patch.inv # apply playbook (ssh access from deployer to all servers required) ansible-playbook -i inventory_updatedb_patch.inv updatedb_patch.yml
You can manually patch the
PRUNEPATHS values on Ceph
You can manually patch the
/data to to
PRUNEPATHS values on all
Example of a
/etc/updatedb.conf must contains:
Preventing updatedb to scan the whole system is necessary on a server exposing many files (typically the situation on a Ceph server), as the updatedb internal database can quickly and dramatically grow up.