This articles describes how to setup the Maestrano Hub component on a server / auto-scaling group using mno-deploy, Maestrano's Ansible automation framework.
1 - Prerequisites
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:
# 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