Skip to content

Commit

Permalink
Merge pull request #295 from EMCECS/develop
Browse files Browse the repository at this point in the history
Release 2.2.1
  • Loading branch information
padthaitofuhot authored Jun 26, 2017
2 parents b536249 + 7b4c60f commit 5ef2fec
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 20 deletions.
37 changes: 33 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
[![Documentation Status](http://readthedocs.org/projects/ecsce/badge/?version=latest)](http://ecsce.readthedocs.io/en/latest/?badge=latest)
<h1> ECS Community Edition </h1>
See [changelog.md](changelog.md) file for release notes.

See [release history](https://github.com/EMCECS/ECS-CommunityEdition/releases) for current release notes and change log; [changelog.md](changelog.md) file for legacy history.

## Description

EMC Elastic Cloud Storage (ECS) is a stateful, containerized, object storage system for cloud storage protocols. ECS is compatible with AWS S3 and OpenStack Swift. On file-enabled buckets, ECS can provide NFS exports for file-level access to objects.

ECS can be set up on one or more hosts or virtual machines in a single-site or a multi-site geo replicated configuration. We want the wider community to use ECS and provide feedback. Usage of this software is under the End User License Agreement at the bottom of this README.

ECS Community Edition is a free, reduced footprint, version of Dell EMC's Elastic Cloud Storage software. Of course, this means there are some limitations to the use of the software, so the question arises; how is the Community Edition of ECS different from the production version?

### License difference
As noted with the included license, ECS Community cannot be used in production environments and is intended to be used for trial and proof of concept purposes only. This software is still owned and protected by Dell EMC.

### Feature differences
It it important to note that ECS-Community Edition is ***not*** the same as ECS software and as such lacks some features that are integral to the actual ECS software.

* **ECS Community Edition does NOT support encryption**
* **ECS Community Edition does NOT include ECS' system management, or "fabric", layer**

### Notice
Because of these differences, ECS Community Edition is absolutely **not** qualified for testing failure scenarios. Failure scenarios can only be adequately mimicked on the full version of ECS Software.


## Quick Start Guide
If you have the following:

Expand Down Expand Up @@ -71,10 +87,23 @@ Deploy a multi-node ECS instance to two or more hardware or virtual machines. T
##### Important information regarding Island deployments
Please be aware that Install Node bootstrapping requires Internet access to the hardware or virtual machine that will become the Install Node, but once this step is complete, the machine can be removed from the Internet and migrated into the Island environment.

If you prefer to download a prefab Install Node as an OVF/OVA, follow one of the links below. Please note that OVAs are produced upon each release and do not necessarily have the most current software.
#### Deploying from OVA
In situations where Internet access is completely disallowed, or for the sake of convenience, an OVA of a prefabricated, bootstrapped, Install Node is provided. Please download the OVA from one of the links below.

The OVA is shipped as a bootstrapped Install Node. It must be cloned multiple times to create as many Data Store Nodes as desired.

###### OVA Special Requirements
* All nodes **MUST** be clones of the OVA.
* All nodes **MUST** have their virtual hardware configurations updated to match the node type requirements.
###### Default Credentials
* The default password for `admin` and `root` accounts is `ChangeMe`.
###### Network Configuration
* The OVA is configured to acquire network settings via DHCP. Static configurations must be manually configured with `sudo nmtui`

##### OVA Download Links

* [dellemc-ecsce-3.0.0.1-install-node-2.2.0-vm0.ova](http://130852476153187606.public.ecstestdrive.com/public/dellemc-ecsce-3.0.0.1-install-node-2.2.0-vm0.ova)
* [dellemc-ecsce-3.0.0.1-install-node-2.2.0-vm0.ova.xz](http://130852476153187606.public.ecstestdrive.com/public/dellemc-ecsce-3.0.0.1-install-node-2.2.0-vm0.ova.xz)
* [dellemc-ecsce-3.0.0.1-install-node-2.2.1-vm0.ova](http://130852476153187606.public.ecstestdrive.com/public/dellemc-ecsce-3.0.0.1-install-node-2.2.1-vm0.ova)
* [dellemc-ecsce-3.0.0.1-install-node-2.2.1-vm0.ova.xz](http://130852476153187606.public.ecstestdrive.com/public/dellemc-ecsce-3.0.0.1-install-node-2.2.1-vm0.ova.xz)

#### [ECS Single-Node Deployment with Install Node (recommended)](docs/source/installation/ECS-Installation.md)
Using an Install Node for isolated environments, deploy a stand-alone instance of ECS to a single hardware or virtual machine.
Expand Down
20 changes: 20 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,26 @@ a multi-site geo replicated configuration. We want the wider community
to use ECS and provide feedback. Usage of this software is under the
following End User License Agreement.

ECS Community Edition is a free, reduced footprint, version of Dell EMC's Elastic Cloud Storage software. Of course, this means there are some limitations to the use of the software, so the question arises; how is the Community Edition of ECS different from the production version?

License difference
^^^^^^^^^^^^^^^^^^

As noted with the included license, ECS Community cannot be used in production environments and is intended to be used for trial and proof of concept purposes only. This software is still owned and protected by Dell EMC.

Feature differences
^^^^^^^^^^^^^^^^^^^

It it important to note that ECS-Community Edition is **not** the same as ECS software and as such lacks some features that are integral to the actual ECS software.

- ECS Community Edition does NOT support encryption.
- ECS Community Edition does NOT include ECS' system management, or "fabric", layer.

Notice
^^^^^^

Because of these differences, ECS Community Edition is absolutely **not** qualified for testing failure scenarios. Failure scenarios can only be adequately mimicked on the full version of ECS Software.

Quick Start Guide
-----------------

Expand Down
7 changes: 7 additions & 0 deletions bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ os_supported=false
alpine_mirror=''
mirror_flag=false
mirror_val=''
zerofill_flag=false

### Argue with arguments
while getopts ":zynglqvhc:b:m:o:p:k:t:d:r:" opt; do
Expand Down Expand Up @@ -210,6 +211,9 @@ while getopts ":zynglqvhc:b:m:o:p:k:t:d:r:" opt; do
q) export quiet_flag=true
export verbose_flag=false
;;
z)
export zerofill_flag=true
;;
\?)
usage
die "Invalid option: -$OPTARG"
Expand Down Expand Up @@ -634,6 +638,9 @@ if get_os_needs_restarting; then
fi
fi

if $zerofill_flag; then
sudo /root/zerofill.sh
fi

### finish up and reset sudo timestamp
quit_sudo
Expand Down
2 changes: 1 addition & 1 deletion bootstrap_plugins/plugin-defaults.plugin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ os_supported=false
# Caller symlinks
unset symlink_scripts
symlink_scripts() {
symlinks="ecsdeploy catfacts enter pingnodes step1 step2 island-step1 island-step2 update_deploy update_image rebuild_image inventory testbook"
symlinks="ecsdeploy catfacts enter pingnodes step1 step2 island-step1 island-step2 update_deploy update_image rebuild_image inventory testbook videploy"
symlinks="${symlinks} island-step3 ecsconfig ecsremove"
mkdir -p "${HOME}/bin"
for l in $symlinks; do
Expand Down
55 changes: 42 additions & 13 deletions docs/source/installation/ECS-Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,37 @@ The following environmental requirements must also be met to ensure a successful
* **Remote Access:** Installation is coordinated via Ansible and SSH. However, public key authentication during the initial authentication and access configuration is not yet supported. Therefore, password authentication must be enabled on all nodes, including install node and ECS data node(s). *This is a known issue and will be addressed in a future release*
* **OS:** CentOS 7 Minimal installation (ISO- and network-based minimal installs are equally supported)

### Install Node Data Nodes
### All-in-One Single-Node Deployments

A single node *can* successfully run the installation procedure on itself. To do this simply input the node's own IP address as the installation node as well as the data node in the deploy.yml file.

## 1. Getting Started

Before the data nodes can be created the install node must be prepared. If downloading the repository from github run `sudo yum install git -y` to install git and then `git clone https://github.com/EMCECS/ECS-CommunityEdition`. If the repository is being added to the machine via usb drive, scp, or some other file-based means. run:
Please use a non-root administrative user account with sudo privileges on the Install Node when performing the deployment. If deploying from the provided OVA, this account is username `admin` with password `ChangeMe`.

Before data store nodes can be created, the install node must be prepared. If downloading the repository from github run the following commands to get started:

0. `sudo yum install -y git`
0. `git clone https://github.com/EMCECS/ECS-CommunityEdition`.

If the repository is being added to the machine via usb drive, scp, or some other file-based means, please copy the archive into `$HOME/` and run:

* for .zip archive `unzip ECS-CommunityEdition.zip`
* for .tar.gz archive `tar -xzvf ECS-CommunityEdition.tar.gz`

###### Important Note
> This documentation refers only to the `ECS-CommunityEdition` directory, but the directory created when unarchiving the release archive may have a different name than `ECS-CommunityEdition`. If this is so, please rename the directory created to `ECS-CommunityEdition` with the `mv` command. This will help the documentation make sense as you proceed with the deployment.
## 2. Creating The Deployment Map (`deploy.yml`)
###### Important Note
> When installing using the OVA method, please run `videploy` at this time and skip to Step 2.2.
Installation requires the creation of a deployment map. This map is represented in a YAML configuration file called deploy.yml. This file *should* be written before moving on for the smoothest experience, but there is a deployment path for creating deploy.yml after bootstrapping the Install Node.
Installation requires the creation of a deployment map. This map is represented in a YAML configuration file called deploy.yml. This file *should* be written before the next step for the smoothest experience.

#### 2.1
Create this file in the `ECS-CommunityEdition` directory that was created when the repository was cloned. A template guide for writing this file can be found [here](deploy.yml.rst).

#### 2.2
Below are steps for creating a basic deploy.yml. **Please note that all fields mentioned below are required for a successful installation.**

0. From the ECS-CommunityEdition directory, run the commmand: `cp docs/design/reference.deploy.yml deploy.yml`
Expand All @@ -83,8 +97,9 @@ Below are steps for creating a basic deploy.yml. **Please note that all fields m
0. Enter each member data node address, one per line, in `members:`.
0. Under `options:`, enter each block device reserved for ECS, one per line, in `ecs_block_devices:`.
0. Virtual Data Center configuration (`virtual_data_centers:`)
0. Enter the VDC `name:`.
0. Enter each VDC `name:`.
0. Enter each member Storage Pool name, one per line, in `members:`
0. Optional directives, such as those for Replication Groups and users, may also be configured at this time.
0. When you have completed the `deploy.yml` to your liking, save the file and exit the `vi` editor.
0. Move on to Bootstrapping

Expand All @@ -94,8 +109,15 @@ These steps quickly set up a basic deploy.yml file
Please read the reference deploy.yml found [here](http://ecs-community-edition.readthedocs.io/en/latest/installation/deploy.yml.html). It is designed to be self documenting and required fields are filled with either example or default values. The above values are only bare minimum values and may not yield optimal results for your environment.

## 3. Bootstrapping the Install Node (`bootstrap.sh`)
###### Important Note
>When installing using the OVA method, please skip to Step 4.
The bootstrap script configures the installation node for ECS deployment and downloads the required Docker images and software packages that all other nodes in the deployment will need for successful installation.

Once the deploy.yml file has been created, the installation node must be bootstrapped. To do this `cd` into the ECS-CommunityEdition directory and run `./bootstrap.sh -c deploy.yml`. Be sure to add the `-g` flag if building the ECS deployment in a virtual environment and the `-y` flag if you're okay accepting all defaults.

The bootstrap script accepts many flags. If your environment uses proxies, including MitM SSL proxies, custom nameservers, or a local Docker registry or CentOS mirror, you may want to indicate that on the `bootstrap.sh` command line.

The bootstrap script configures the installation node for ECS deployment. This script can take the following arguments:
```
[Usage]
-h This help text
Expand Down Expand Up @@ -130,6 +152,10 @@ The bootstrap script configures the installation node for ECS deployment. This s
You may be prompted for your credentials if authentication is required.
You may need to use -d (below) to add the registry's cert to Docker.
-l After Docker is installed, login to the Docker registry to access images
which require access authentication. Login to Dockerhub by default unless
-r is used.
-d <x509.crt> NOTE: This does nothing unless -r is also given.
If an alternate Docker registry was specified with -r and uses a cert
that cannot be resolved from the anchors in the local system's trust
Expand Down Expand Up @@ -160,9 +186,6 @@ The bootstrap script configures the installation node for ECS deployment. This s
$ ./bootstrap.sh -y -p cache.local:3128 -r registry.local:5000 -d certs/reg.pem
```

Once the archive has been expanded the installation node must be bootstrapped. To do this `cd` into the ECS-CommunityEdition directory and run `./bootstrap.sh -c deploy.yml`. Be sure to add the `-g` flag if building the ECS deployment in a virtual environment and the `-y` flag if you're okay accepting all defaults.
*Note: The bootstrap script accepts many flags. Be sure to run* `./bootsrap -h` *to see all bootstraping options.*

The bootstrapping process has completed when the following message appears:

```
Expand Down Expand Up @@ -190,24 +213,27 @@ The bootstrapping process has completed when the following message appears:
>
```

After the installation node has successfully bootstrapped you may be prompted to reboot the machine. If this is the case the machine must be rebooted before continuing.
After the installation node has successfully bootstrapped you may be prompted to reboot the machine. If so, then the machine must be rebooted before continuing to Step 4.

## 4. Deploying ECS Nodes (`step1` or `island-step1`)

Once the deploy.yml file has been correctly written the next step is to simply run one of the following commands:
Once the deploy.yml file has been correctly written and the Install Node rebooted if needed, then the next step is to simply run one of the following commands:

* Internet-connected environments: `step1`
* Island environments: `island-step1`

After the installer initializes, the EMC ECS license agreement will appear on the screen. Press `q` to close the screen and type `yes` to accept the license and continue or `no` to abort the process. The install cannot continue until the license agreement has been accepted.

The first thing the installer will do is create an artifact cache of base operating system packages and the ECS software Docker image. If you are running `step1`, then you may move on to **4.5**. If you are running `island-step1`, then the installer will stop after this step. The install node can then be migrated into your island environment where deployment can continue.
The first thing the installer will do is create an artifact cache of base operating system packages and the ECS software Docker image. If you are running `step1`, please skip to **Step 5**. If you are running `island-step1`, then the installer will stop after this step. The install node can then be migrated into your island environment where deployment can continue.

### 4.4 Deploying the ECS Nodes (`island-step2`)
#### 4.5. Deploying the Island Environment ECS Nodes (`island-step2`)
###### Important Note
> If you are deploying to Internet-connected nodes and used `step1` to begin your deployment, please skip to **Step 5**.
* Internet-connected environments: *automatic*
* Island environments: `island-step2`

If you are deploying to Internet-connected nodes and used `step1` to begin your deployment, then this section is informational only and you may move on to **5**. If you are deploying into an island environment and have migrated the install node into your island, you can begin this process by running `island-step2`. The next tasks the installer will perform are: configuring the ECS nodes, performing a pre-flight check to ensure ECS nodes are viable deployment targets, distributing the artifact cache to ECS nodes, installing necessary packages, and finally deploying the ECS software and init scripts onto ECS nodes.
If you are deploying into an island environment and have migrated the install node into your island, you can begin this process by running `island-step2`. The next tasks the installer will perform are: configuring the ECS nodes, performing a pre-flight check to ensure ECS nodes are viable deployment targets, distributing the artifact cache to ECS nodes, installing necessary packages, and finally deploying the ECS software and init scripts onto ECS nodes.

## 5. Deploying ECS Topology (`step2` or `island-step3`)

Expand All @@ -216,3 +242,6 @@ If you are deploying to Internet-connected nodes and used `step1` to begin your

Once either `step1` or `island-step2` have completed, you may then direct the installer to configure the ECS topology by running either `step2` or `island-step3`. These commands are identical. Once `step2` or `island-step3` have completed, your ECS will be ready for use.
If you would prefer to manually configure your ECS topology, you may skip this step entirely.

## That's it!
Assuming all went well, you now have a functioning ECS Community Edition instance and you may now proceed with your test efforts.
2 changes: 1 addition & 1 deletion ui/etc/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
---
ui:
name: ECS Community Edition Install Node
version: 2.2.0
version: 2.2.1
host_root_dir: /opt/emc/ecs-install
state_file: /opt/state.yml
deploy_file: /opt/deploy.yml
Expand Down
2 changes: 1 addition & 1 deletion ui/etc/release.conf
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ image_name='ecs-install'
tag='latest'
ver_maj='2'
ver_min='2'
ver_rev='0'
ver_rev='1'
ver_tag='r'
serial=0

Expand Down
3 changes: 3 additions & 0 deletions ui/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ run() {
}

case "$(basename ${0})" in
videploy)
sudo vim /opt/emc/ecs-install/deploy.yml
;;
update_image)
cd "${root}"
"${root}/ui/update_image.sh"
Expand Down

0 comments on commit 5ef2fec

Please sign in to comment.