diff --git a/README.md b/README.md
index 462a186d..40238a0e 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
[![Documentation Status](http://readthedocs.org/projects/ecsce/badge/?version=latest)](http://ecsce.readthedocs.io/en/latest/?badge=latest)
ECS Community Edition
- 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
@@ -8,6 +9,21 @@ EMC Elastic Cloud Storage (ECS) is a stateful, containerized, object storage sys
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:
@@ -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.
diff --git a/README.rst b/README.rst
index f509e5a6..a2a5bfff 100644
--- a/README.rst
+++ b/README.rst
@@ -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
-----------------
diff --git a/bootstrap.sh b/bootstrap.sh
index cff6025a..86b7407a 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -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
@@ -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"
@@ -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
diff --git a/bootstrap_plugins/plugin-defaults.plugin.sh b/bootstrap_plugins/plugin-defaults.plugin.sh
index dd4ff543..fc454184 100755
--- a/bootstrap_plugins/plugin-defaults.plugin.sh
+++ b/bootstrap_plugins/plugin-defaults.plugin.sh
@@ -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
diff --git a/docs/source/installation/ECS-Installation.md b/docs/source/installation/ECS-Installation.md
index e997fd61..cfc41e4a 100644
--- a/docs/source/installation/ECS-Installation.md
+++ b/docs/source/installation/ECS-Installation.md
@@ -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`
@@ -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
@@ -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
@@ -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 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
@@ -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:
```
@@ -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`)
@@ -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.
diff --git a/ui/etc/config.yml b/ui/etc/config.yml
index 9981ccec..140b26ab 100644
--- a/ui/etc/config.yml
+++ b/ui/etc/config.yml
@@ -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
diff --git a/ui/etc/release.conf b/ui/etc/release.conf
index 2cbfdd6c..04233a69 100644
--- a/ui/etc/release.conf
+++ b/ui/etc/release.conf
@@ -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
diff --git a/ui/run.sh b/ui/run.sh
index c7e14ad4..cf822982 100755
--- a/ui/run.sh
+++ b/ui/run.sh
@@ -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"