This articles describes how to setup the Maestrano Hub component on a server / auto-scaling group using mno-deploy, Maestrano's Ansible automation framework.
Table of Contents | ||
---|---|---|
|
1 -
Section One1.1 - Sub-section one
1.1.1 - Sub-sub-section onePrerequisites
This documentation is tailored for AWS. While the steps can be adapted for other platforms you may need to contact us to get further guidance if you are trying to use the below instructions for Azure, SoftLayer or Google Compute Cloud.
In order to perform this installation you will need to setup a Github repository to store your configuration (e.g. mno-deploy-myproject) and setup a build process to package this repository as a tar.gz archive and push it to one of your AWS S3 buckets. This section provides more information on what to include in this configuration repository.
2 - Configuration
This section describes how to setup the ansible configuration parameters in mno-deploy to deploy Maestrano Hub. These configuration activities should be performed on your configuration project (e.g. mno-deploy-myproject) under ansible/vars/<environment_name>.yml and ansible/vars/<environment_name>_secrets.yml
1.1 - Infrastructure configuration
In order to setup Maestrano Hub you need to fill certain parameters describing how the Load Balancer, Launch Configuration and Auto-Scale group should be configured for MnoHub.
A basic example is provided here: https://github.com/maestrano/mno-deploy/blob/develop/ansible/vars/example.yml#L91
Below is a commented example of what each parameter means:
Code Block |
---|
# MnoHub Infrastructure Configuration
mnohub:
# should this component be setup or not
skip: false
launch_configuration:
# AWS instance size for mnohub
instance_type: c3.large
# OPTIONAL - you can use spot instances in test environments
spot_price: 0.0235
auto_scaling_group:
# how many instances of MnoHub should be launched at minima
min_size: 1
# max number of instances to launch
max_size: 2
# target number - used when failure occurs on one of the machines
desired_capacity: 1
elastic_load_balancer:
# this block specifies how to load balance traffic
listeners:
-
# incoming traffic protocol - if you are behind a firewall you may set it to HTTP
protocol: https
# incoming traffic port - if you are behind a firewall you may set it to 80
load_balancer_port: 443
# protocol to use on the instance - if encryption in transit is required you may set it to https
instance_protocol: http
# port to use on the instance - if encryption in transit is required you may set it to 443
instance_port: 80
# IAM certificate to use on the ELB side. Only required if load_balancer_port is 443 and protocol is https
ssl_certificate_id: "arn:aws:iam::647381683421:server-certificate/some.iam.certificate" |
1.2 - Application configuration
3 - Infrastructure setup
1.1 - Using Ansible
1.2 - Manual Setup