-
Notifications
You must be signed in to change notification settings - Fork 94
Multi Node Puppet Configuration Instructions
Table of Contents
EMC's ECS 2.x Software Puppet Multiple node deployment is intended to be used by developers and Ops Who are familiar with Puppet Enterprise as configuration management system.
An ECS cluster deployment requires a minimum of three (3) data nodes to provide the feature set required. Each one of the instances should have the following minimum requirements:
- Operative system: CentOS 7
- CPU/Cores: 4 Cores
- Memory: Minimum of 50 GB RAM (64 GB recommended)
- Disks: An unpartitioned/Raw disk with at least 100 GB of Storage per disk per host. Multiple disks can be attached on each ECS Node to increase capacity and performance. Each disk need to be un-partitioned before running the installation scripts.
We have performed testing against the following platforms:
OS Name | Version | Docker Version |
---|---|---|
CentOS | 7.1 | 1.4.1 |
The installation Module is composed by two main manifest files:
Step | Name | Description |
---|---|---|
1 | ini.pp | Initial class |
2 | Configurate.pp | Install and configure the node to run ECS Software |
CentOS is a well known Linux distribution that has the ability to deploy containers with Docker. Common public cloud platforms have CentOS templates ready to be used.
These steps are to be performed prior install The module on the Puppet master server:
-
Puppet Master: The master server is installed and configured.
-
Puppet Nodes: Puppet node is installed and configured with the correct ports. ECS requires the following ports open:
Port Number Port Description 22 SSH, needed if using remote access 443 Port used for accessing the ECS Web Application 4443 Port used for accessing the ECS API. This port can be closed from external access after the installation 9011 Port used for accessing the ECS API. This port can be closed from external access after the installation 9020 Port used for the S3 API 9024 Port used for SWIFT API 61613 Puppet MCollective 8140 Puppet Note: There are more ports required to be open if you have a firewall running on the hosts. Please refer to List of Ports to be Open of the troubleshooting page.
In addition, please refer to the ECS Security Configuration Guide and our the troubleshooting page if you find any issues.
-
The following Puppet Get Start Guide is good reference to use.
Puppet Master Server:
- From the command line on the Puppet master, navigate to the modules directory
cd /etc/puppetlabs/puppet/environments/production/modules
. - Run
mkdir -p ecs3datanodes/manifests
to create the new module directory and its manifests directory. - Run
cd ecs3datanodes/manifests
- Using wget download ecs manifest ini.pp
wget -q https://github.com/EMCECS/ECS-CommunityEdition/blob/master/ecs-multi-node/pupppet/ecs3datanodes/manifest/ini.pp -O ini.pp
- Then download ecs manifest configure.pp
wget -q https://github.com/EMCECS/ECS-CommunityEdition/blob/master/ecs-multi-node/pupppet/ecs3datanodes/manifest/configure.pp -O configure.pp
- Add custom Fact to check if ECS breadcrumb file exists on the node machines.
- Run
cd /etc/puppetlabs/puppet/environments/production/modules/ecs3datanodes
- Run
mkdir facts.d; cd facts.d
- Then download ecs fact checkecsfile.sh
wget -q https://github.com/EMCECS/ECS-CommunityEdition/blob/master/ecs-multi-node/pupppet/ecs3datanodes/facts.d/checkecsfile.sh -O checkecsfile.sh
- Run
- Run
puppet agent -t
Puppet Enterprise Web:
-
From the console, click Classification in the top navigation bar.
-
In the** Node group name** field, name your group ECS-DataNodes.
-
Click Add group.
Note: Leave the Parent name and Environment values as their defaults (default and production, respectively).
- From the Classification page, select the ECS-DataNodes group, and click the Rules tab.
- In the Fact field, enter “name” (without the quotes).
- From the Operator drop-down list, select matches regex.
- In the Value field, enter “.x” (without the quotes).
- Click Add rule.
To add the ecs3datanodes classes to the ECS-DataNodes group:
-
From the Classification page, select the ECS-DataNodes group.
-
Click the Classes tab.
-
In the Class name field, begin typing
ecs3datanodes
, and select it from the autocomplete list. -
Click Add class.
-
Click the Commit change button.
-
From the CLI of your Puppet master, run
puppet agent -t
.
The following section needs to be performed on each one of the ECS Nodes:
-
From command line run agent, run
puppet agent -t
. -
After finishing check docker container run
docker ps
The execution of this script is will take about 1-5 minutes depending of how many packages need to be updated. This script executed should be executed on each ECS Node.
The next step, is the ECS Object configuration. This can be accomplished in two ways:
-
ECS' Administration UI: Please follow these Instructions.
or
-
Automated script: Please follow these Instructions.
After the successful execution of the ECS Object Configuration, the system is ready to start serving objects.
In addition, access to the ECS's admin panel is available via the HTTPS. Using our previous example for ECS deployed on 10.0.0.4. Access should be enabled for https://IP-Address-of-ECS-Node. Default login and password: root/ChangeMe
If you have any issues with the installation you can review this page for troubleshooting tips and/or go to the support section bellow.
Please file bugs and issues at the GitHub issues page. For more general discussions you can contact the EMC Code team at Google Groups or tagged with EMC on Stack Overflow. The code and documentation are released with no warranties or SLAs and are intended to be supported through a community driven process.