Skip to content

Instantly share code, notes, and snippets.

@rauhryan
Last active April 8, 2016 17:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rauhryan/40ec18760d2a8a57a2a0 to your computer and use it in GitHub Desktop.
Save rauhryan/40ec18760d2a8a57a2a0 to your computer and use it in GitHub Desktop.
Installing HuBoard Enterprise on AWS

Installing HuBoard Enterprise on AWS

Basic installation on AWS requires using the EC2 management tools to launch an instance of the HuBoard Enterprise AMI. The instance may be launched into either EC2-Classic or your organization's VPC.

Prerequisites


Before you install HuBoard Enterprise on AWS, make sure you meet the following requirements:

  • You must have an AWS account capable of launching EC2 instances and creating EBS volumes. Sign up here.
  • You must have your HuBoard Enterprise license file and package file. Visit enterprise.huboard.com to download latest version or request a trial license.

Step 1. Determine Instance Type and EBS Volume Size


Before launching your HuBoard Enterprise instance, you will need to determine the instance type and EBS volume size that best fits the needs of your organization.

Supported Instance Types

HuBoard Enterprise is supported on the following EC2 instance types only:

Instance Type Family vCPU Memory
t2.medium General Purpose 4 4 Gb
t2.large General Purpose 4 8 Gb
m3.large General Purpose 2 7.5 Gb
m3.xlarge General Purpose 4 15 Gb
m3.2xlarge General Purpose 8 30 Gb
c3.2xlarge Compute Optimized 8 15 Gb
c3.4xlarge Compute Optimized 16 30 Gb
r3.large Memory Optimized 2 15 Gb
r3.xlarge Memory Optimized 4 30 Gb

Recommended Instance Type and EBS Volume Size

We recommend the following instance types and EBS volume sizes based on your expected total seat count as a starting point.

Seat Range Recommended Instance Type EBS Optimizations Enabled EBS Volume Size
0 - 500 r3.large Not Available 100 GB SSD
500 - 10,000 r3.xlarge Suggested 250 GB SSD

Step 2: Select the HuBoard Enterprise AMI

Select a HuBoard Enterprise AMI based on the AWS Region you would like to launch the instance into.

Region ID AMI ID
us-west-1 ami-c9e41b8d
us-west-2 ami-a1373f91
us-east-1 ami-7586241e

If you're launching the instance into a VPC or have pre-established security groups, you will need to select the region associated with those items. Otherwise, choosing a region that is geographically nearby is recommended.

Step 3: Create a Security Group


If you're setting up your AMI for the first time you will need to create a Security Group. From the EC2 management console, create an entry for each port in the table below:

Port Service Description
22 SSH Instance shell access.
443 HTTPS Web application encrypted traffic
80 HTTP Web application unencrypted traffic
4200 HTTP Backup port for the setup application
9400 HTTP Elasticsearch management console
9401 HTTP Administrative access to logstash kibana dashboard
161/udp SNMP Required for network monitoring protocol operation and log forwarding.

Step 4: Launch an EC2 instance


Use the AWS Management Console or command line tools to launch an EC2 instance with the values determined in the previous steps. For example, to launch an r3.xlarge instance with 100 GB EBS volume in the us-east-1 region, you would run the following command:

aws ec2 run-instances \
  --security-groups default \
  --instance-type r3.xlarge \
  --image-id ami-7586241e \
  --block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":100,"VolumeType":"gp2"}}]' \
  --region us-east-1 \
  --ebs-optimized

Step 5: Allocate an Elastic IP and associate it with the instance


If this is a production instance, we strongly recommend allocating an Elastic IP (EIP) and associating it with the instance before proceeding to HuBoard Enterprise configuration. Otherwise, the public IP address of the instance will not be retained after instance restarts.

Step 6: Upload your license and package file


  1. Once your instance is running, visit the public IP address in a browser and upload your license and software package.
  2. Configure your instanse.
openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -keyout ssl.key -out ssl.crt -config <(
cat <<-EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
CN=github.yourcompany.com
O=GitHub Enterprise Self Signed Certificate
[v3_req]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:TRUE
EOF
)

Generate a Self Signed cerificate for a specific sub-domain

  1. Make sure you update openssl before anything (heartbleed)
  2. Create a directory
  3. cd to the directory
  4. run the command included
  5. upload the .crt and .key into you GHE applicance
  6. paste the contents of .crt into HuBoard

Please backup both applicances before attempting this.

Double check line 9 of the script to make sure the CN=github.yourcompany.com line is correct

run openssl x509 -in ssl.crt -text to triple check the certificate is valid

Make sure you backup the crt and key just in case you need them for other tools in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment