Skip to content

Level 3: Add an Operator

Before going through this guide, ensure you went through the level 2 : Storm.

This tutorial explains how to add an operator environment to your existing platform. This environment allows an operator (you) to define channels, start storm topologies, to debug zookeeper etc...

Once again, the deployer can be your macos or linux laptop. The starting situation is unchanged:


Configure Operator

Edit first the punchplatform-deployment.settings with your favorite text editor file and include the following content

"punchplatform_operator" : {
    "configuration_name_dir_from_home" : "pp-conf",
    "punchplatform_conf_url" : "server1:2181/punchplatform-development",
    "operators_username" : ["operator1"],
    "servers" : {
        "server1" : {}
"punchplatform_operator_environment_version": "punchplatform-operator-environment-6.0.1",
"punchplatform_conf_repo_git_local_url": "/data/git_bare.git",

To get more details on each subsection, please read the punchplatform-deployment.settings documentation.


This configuration will create a user operator1 and configure its environment variables to get punch commands.


Adapt the properties to suit your environment in particular the zookeeper_nodes_production_interface, as well as unix user and groups.

For example if you use a vagrant box the user is likely to be 'ubuntu' and the network interface 'enp0s8'. In doubt you can find out what is the right network intefaces using the ifconfig command.

Make sure you have the requirements installed on the deployer and target servers. In particular the deployer must have ssh access to the target server.


There is several ways to configure operators. For the tutorial purpose, the previous configuration is the lightest one.

To manage the punch configuration, we have to create manually a git bare repository


This procedure works only when operator environment are located on a single device (for instance for testing).

on server1

ssh server1
cd /data
sudo git init --bare --shared=group pp_conf_bare.git
sudo chgrp -R punchplatform pp_conf_bare.git

on deployer device

git init .
git add .
git commit -m "my first commit"
git remote add origin ssh://server1:/data/pp_conf_bare.git
git push origin master

Check and Generate Your Configurations

First execute this command:

$ --generate-inventory

Or in short:

$ -gi

This command generates a complete set of so-called inventories from your two configuration files. It should output something like this:

$ --generate-inventory
LOG: checking your dependencies...
LOG: all the required packages are installed !

LOG: audit the punchplatform configuration...
LOG: found /Users/dimi/Punch/deployer/conf/
LOG: found punchplatform-deployment.settings: /Users/dimi/Punch/deployer/conf/punchplatform-deployment.settings

LOG: generating deployment configuration from + punchplatform-deployment.settings...
LOG: Following groups and tags can bu used as additional parameters like: --deploy [-Kk] [-l group1,group2] [-t tag1,tag2]
  - group: punchplatform_cluster     tag: N/A
  - group: N/A     tag: operator
  - group: zookeeper_servers      tag: zookeeper
  - group: storm_servers      tag: storm

LOG: configuration is ready for the deployment !

If that succeeds you can proceed.

Deploy Your Component(s)

From the deployer, make sure you can access your target server using ssh. Depending on your ssh configuration this may require a ssh password. Simply execute the following command. --deploy -Kk --tags operator


You will be prompted (or not) for a ssh password. This depends on your ssh configuration.

Check your deployment

ssh server1
sudo su - operator1

# Retrieve the reference configuration (that you have put from the deployment environment) -pf 

# You should have the

# Now check  your available operator environment

you should have an output indicating your operator environment version. e.g.:

PunchPlatform package: