Skip to content

CentOS based setup

Requirements for CentOS based Operation System (CentOS, RedHat).

No package available.

You have to enable the EPEL repo, use:
sudo yum --enablerepo=extras install epel-release
This command will install the correct EPEL repository for the CentOS version you are running.
After this you will be able to install package.

Deployer node setup

Install packages

Execute the following packages installation:

sudo yum install \
    vim \
    wget \
    unzip \
    curl \
    git \
    jq \
    sshpass \
    python-pip 

Install Python 3.6.8

sudo yum install -y python3-pip python3-venv

Install OpenJDK 8 JRE

In case you want to push your local configuration for example the punchplatform.propertes from your deployment server to zookeeper. You need java JRE.

sudo yum install java-1.8.0-openjdk

Install Python 3.6.8

sudo yum install -y python3-pip python3-venv

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

Install ansible: (If you do not have internet access or local pip repository, use other variant below)

# ansible 2.9.7 
sudo pip install ansible==2.9.7

If you encounter problem with the previous command, set up this specific 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

Disable SELINUX and Firewalld

Last, perform the following actions:

sudo systemctl disable firewalld
sudo systemctl stop firewalld
sudo vi /etc/sysconfig/selinux

# change the following line :
# SELINUX=enforcing

# by 

# SELINUX=disabled

# and restart the machine 

Specific features

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 punchplatform-deployer-<version>/archive directory.

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_rpm.tgz -O punchplatform-deployer-<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 yum install -y lttng-ust
sudo yum install -y ceph13.2.5/*

Environment setup

This section will update your PATH so as to have the punchplatform-deployer.sh available.

cd punchplatform-deployer-<version>
echo "export PATH=`pwd`/bin:$PATH" >> ~/.bashrc
echo "source _punchplatform-bash-completion.sh" >> ~/.bashrc
source ~/.bashrc

Configuration setup

Next, create your platform configuration directory.
This directory will hold the description of your target platform with the punchplatform.properties and the punchplatform-deployment.settings files.

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

source ~/.bashrc

Check it worked as expected. The result of the env command must look like:

printenv | 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

Disable SELINUX and Firewalld

Last, perform the following actions:

# disable firewalld on all devices
sudo systemctl disable firewalld
sudo systemctl stop firewalld
sudo vi /etc/sysconfig/selinux
# change the following line :
# SELINUX=enforcing
# by 
# SELINUX=disabled
# and restart the machine 

Specific features

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

Manual process

You can manually patch the /etc/updatedb.conf configuration file, adding /var/lib/ceph to PRUNEPATHS values on Ceph nodes.

You can manually patch the /etc/updatedb.conf configuration file, adding /data to to PRUNEPATHS values on all servers.

Example of a /etc/updatedb.conf must contains: PRUNEPATHS="/var/lib/ceph" "/data"

Note

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.