Amazon supplies a prebuilt Helion Stackato Community AMI on its EC2 platform.
Important
The HPE Helion Stackato image on the Amazon EC2 platform is provided on the basis of the Bring Your Own License model: it is subject to the Software License Terms and requires a software license key.
A cluster with multiple nodes must have a persistent internal IP address for the core Helion Stackato node. All the nodes in a cluster must be able to communicate with this internal MBUS IP address which must not change when the node reboots.
On the Amazon Web Services page, in the Networking section, click VPC.
Note
Ensure that the region that appears in the upper right-hand corner of the page is the same as the one where you plan to deploy your Helion Stackato instance.
On the VPC Dashboard, click Your VPCs.
On the right panel, click Create VPC.
On the Create VPC dialog box, enter a Name tag and a VPC CIDR block (in CIDR notation), and then click, Yes, Create.
Your VPC, route table, and default security group are created.
0.0.0.0/0 into the Destination field, select the name of the gateway you have created earlier
from the Target field, and click Save.It is a good practice to set up the smallest possible profile for the public gateway of a cluster while allowing the functional components inside the cluster to communicate freely on various required ports. You can add this functionality by creating two partially-overlapping security groups.
Note
For more information on how Helion Stackato uses ports, see the Helion Stackato port requirements.
When you create a new VPC, the default security group is created. This internal security group allows traffic to pass between all of its members.
0.0.0.0/0 into the Source field.Windows DEA nodes have the additional requirements of TCP and UDP access on port 3389 for initial configuration.
Important
After you configure your WinDEA node, make sure that your remove it from this security group. For more information, see the WinDEA documentation.
3389 into the Port Range field, and enter 0.0.0.0/0 into the Source field.Helion Stackato into the Filter field, press Enter, and click the HPE Helion Stackato row.On the Step 2: Choose an Instance Type page, select the virtual machine size. The following minimum instance types are recommended.
| t2.medium | m3.medium | m3.large |
|---|---|---|
|
|
|
Click Next: Configure Instance Details.
On the Step 4: Add Storage page, enter 30 for the Size (GiB) field of the Root partition.
From the Volume Type drop-down list, select General Purpose (SSD).
Click Next: Tag Instance.
Tip
You can create a more robust instance by moving the Helion Stackato droplets and data services to an EC2 EBS (Elastic Block Store) volume.
An elastic IP address allocates a static external address to your cluster and exposes this address on the border router where the cluster is hosted. The router associates this address with a corresponding dynamic address local to your cluster. This address is leased over DHCP, together with the address of the local DNS server which keeps track of private addresses allocated by the DHCP server. Thus, each node in your cluster is aware of the private address of the core node, while outside traffic is aware of the public address.
You can now ssh to the Elastic IP address of your instance using the stackato username and password.
To be able to access the web interface and applications that will be hosted on Helion Stackato, you must set the hostname on your public-facing node to a
corresponding wildcard DNS record. You can use the xip.io or nip.io service to obtain wildcard DNS resolution for your Elastic IP address.
ssh to your instance. For example:
$ ssh stackato@203.0.113.0
You will receive the following warning:
WARNING: Your password is set to the default. Please update it.
Rename the hostname. For example:
$ kato node rename 203.0.113.0.xip.io
At the end of the process, the address of the API endpoint is displayed. For example:
Stackato Micro Cloud:-
endpoint: api.203.0.113.0.xip.io
mbusip: 127.0.0.1
micro cloud: true
eth0 IP: 198.0.2.0
You can now connect to the web console of your instance by entering the API endpoint into your browser.
Enter the address of the web console of your instance into a web browser. For example:
api.203.0.113.0.xip.io
When you first connect to the web console, you will receive a warning about an untrusted connection. Add an exception for the provided certificate and proceed.
Important
For production systems, add a signed certificate and a real DNS record to your domain. You can publish the public-facing address of your domain
name either using DNS or dynamic DNS. For example, a static DNS zone file for
stackato-test on example.com would have the following entries (note the . that terminates the A record):
stackato-test IN A <Elastic-IP>.
\*.stackato-test IN CNAME stackato-test
For more information on DNS configuration, see DNS.
On the Set Up First Admin User page, enter the Username, Email Address, and Password for the first administrator, the first organization Name and Space Name.
Tip
The password you specify for this account will also become the password for the stackato system user, removing the warning displayed after
connecting to the instance using ssh.
Review the Stackato Terms of use, click Yes, I agree, and click Set Up First Admin User.
You can add Helion Stackato instances to an existing VPC in a process similar to creating your core instance. For more information on configuring multi-node clusters, see Cluster Setup.
ssh to your core instance. For example:
$ ssh stackato@203.0.113.0
Set up the core node:
$ kato node setup core
Press y when prompted for an endpoint or enter a name for the endpoint.
Enter your password when prompted.
Helion Stackato disables all the roles that will be delegated to other nodes and configures itself to listen on the node's internal MBUS IP address. At the end of the process, the internal MBUS IP address and the assigned and available roles are displayed. For example:
Stackato Cluster:-
endpoint: api.203.0.113.0.xip.io
mbusip: 198.0.2.24
micro cloud: false
Stackato Node [198.0.2.0]
assigned roles : base,controller,primary,router
available roles: base,mdns,primary,controller,router,dea,postgresql,mysql,rabbit,rabbit3,mongodb,redis,filesystem,harbor,memcached,load_balancer
Tip
Note the internal MBUS IP address. You will need it to configure your non-core nodes.
On the Amazon Web Services page, in the Compute section, click EC2.
On the EC2 Dashboard, in the Instances section, click Instances.
On the right panel, click the name of your instance and note its Private IPs listed on its Description tab at the bottom.
ssh to your core instance. For example:
$ ssh stackato@203.0.113.0
ssh to your non-core instance from the core instance. For example:
$ ssh stackato@198.0.2.24
Important
There is no other way to access the non-core instances. When you ssh into non-core instances, use the stackato username and password.
You can later simplify setup and maintenance operations by configuring passwordless SSH authentication
between the core and non-core nodes.
Create the required number of DEAs from the non-core node using the internal MBUS IP of the core node. For example:
$ kato node attach -e dea 198.0.2.0
Note
The -e option enables the specified role on the node and disables all other roles. While kato node attach commands run on various cluster
nodes, the web console may display Node Degraded! error messages. However after the commands finish, you can view the operational cluster nodes
by navigating to the Helion Stackato web console and clicking Admin > Cluster or by running the kato node list and kato status commands
after you ssh into your core node.
Enter your password for the non-core node and core node when prompted.
data-services is a meta-tag that enables support for MySQL, PostreSQL, MongoDB, RabbitMQ, Memcached, and the Filesystem service.
Create a data service node from the non-core node using the internal MBUS IP of the core node. For example:
$ kato node attach -e data-services 198.0.2.1
Enter your password for the non-core node and core node when prompted.
hosts file, see Modifying /etc/hosts.To spread web traffic between two or more Helion Stackato Router nodes, you can set up Helion Stackato clusters behind an EC2 Elastic Load Balancer.
The load balancer must be part of a security group that allows HTTP and HTTPS access. If there are no other gateways into the Helion
Stackato cluster, you must also allow access to an arbitrary external port between 1024 and 4999 that can be forwarded internally to
port 22 for administrative ssh access.
Tip
When exposing ssh access, setting up passwordless SSH authentication is recommended.
For instructions on setting up certificates on router nodes, see Replacing the Default SSL Certificate and CA Certificate Chaining.
Helion Stackato stores its services data in the root filesystem. However, the following issues exist for a new EC2 instance:
- the default set of disks is limited
- the root volumes are limited in size
- the disk mounted on
/mntis ephemeral- the size of the ephemeral disk varies by instance type
It is a good practice to check EC2 instances for disk use. In the following example, running the df -h command on a new, medium
Helion Stackato instance shows that the root filesystem is already almost half-full:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.9G 3.3G 4.3G 43% /
none 3.7G 112K 3.7G 1% /dev
none 3.8G 0 3.8G 0% /dev/shm
none 3.8G 80K 3.8G 1% /var/run
none 3.8G 0 3.8G 0% /var/lock
none 3.8G 0 3.8G 0% /lib/init/rw
/dev/sdb 414G 199M 393G 1% /mnt
You can create a more robust instance by moving the Helion Stackato droplets and data services to an EC2 EBS (Elastic Block Store) volume.
On the Amazon Web Services page, in the Compute section, click EC2.
On the EC2 Dashboard, in the Elastic Block Store section, click Volumes.
On the right panel, click Create Volume.
On the Create Volume dialog box, select the Type and Size of the volume. Ensure that the Availability Zone matches the zone your instance is running in.
When the State of the volume becomes Available, click the name of your volume on the right panel and then click Actions > Attach Volume.
On the Attach Volume dialog box, enter the name of your Instance.
Important
To ensure that your instance is not already using the specified device name, you can use the mount or df command to view the devices
already in use.
Click Attach.
ssh to your core instance. For example:
$ ssh stackato@203.0.113.0
Run the sudo fdisk -l command to identify your device. In the following example, it is /dev/xvdf:
Disk /dev/xvdf: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders, total 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Note
It is unnecessary to partition the device before building a filesystem on it.
Run the sudo mkfs command to make a new filesystem on the device. For maximum compatibility, specify the filesystem type that matches your root partition. In the following example, it is ext3:
$ sudo mkfs -t ext3 /dev/xvdf
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
13107200 inodes, 52428800 blocks
2621440 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
1600 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Create a directory to serve as the mount point. For example:
$ sudo mkdir /mnt/ebs
Make the stackato user the owner of the directory and give the user read and write permissions. For example:
$ sudo chown stackato /mnt/ebs
$ sudo chmod +rw /mnt/ebs
Add the directory to /etc/fstab. In the following example, the directory is configured on the last line:
# file system mount point type options dump fsck order
LABEL=cloudimg-rootfs / ext4 defaults 0 0
/dev/xvdb /mnt auto defaults,nobootwait,comment=cloudconfig 0 2
/dev/xvdf /mnt/ebs auto defaults 0 0
Tip
For detailed instructions on the fstab file, see its manpage.
Mount the EBS volume. For example:
$ sudo mount /dev/xvdf /mnt/ebs
Tip
For instructions on mounting volumes with quotas enabled, see Enabling Filesystem Quotas.
For more information, see Relocating Services, Droplets, and Containers.
You can create an RDS instance and use the Universal Service Broker to add the RDS instance as an external service to Helion Stackato.
To ensure that your RDS instance can correctly communicate with Helion Stackato, you must place your EC2 instance and RDS instance in different subnets within the same VPC.
Create two additional subnets on the VPC that you have created earlier.
Important
The two subnets must be in different availability zones.
On the Amazon Web Services page, in the Database section, click RDS.
On the RDS Dashboard, click Subnet Groups.
On the right panel, click Create DB Subnet Group.
On the Create DB Subnet Group page, enter a Name and a Description for the subnet group and select the the VPC that you have created earlier.
Click add all the subnets to add all of the subnets from your VPC to your subnet group, and then click Create.
If you want to create an MSSQL-compatible RDS instance, you must enable contained database authentication by creating and configuring a parameter group that you will specify when creating your RDS instance.
authentication into the Filter field and press Enter.Note
To allow this setting to take effect on an existing RDS instance, right-click the instance and then click Reboot.
In the following examples, the SQL Server Express RDS instance is created. You can install any number of additional RDS instances using a similar process.
To see a list of available drivers, run the usbc drivers command.
On the Amazon Web Services page, in the Database section, click RDS.
Note
Ensure that the region that appears in the upper right-hand corner of the page is the same as the one where you plan to deploy your Helion Stackato instance.
On the RDS Dashboard, click Instances.
On the right panel, click Launch DB Instance.
On the Select Engine panel, click the tab of a database engine (for example, Microsoft SQL Server), and then click Select next to one of its flavors (for example, SQL Server Express).
On the Specify DB Details panel, in the Instance Specifications section select a License Model, the DB Engine Version, the DB Instance Class, the Storage Type, and enter the amount of Allocated Storage.
In the Settings section, enter a unique DB Instance Identifier, the Master Username, and the Master Password.
Tip
Note these settings. You will need them to install your RDS instance as an external service using the Universal Service Broker.
On the Configure Advanced Settings panel, in the Network and Security section, select the following parameters:
Click Launch DB Instance.
Once the RDS instance has been created, expose it as a service to system users
with the usbc utility. See the Universal Service Broker documentation for instructions.