Skip to content

Latest commit

 

History

History
212 lines (155 loc) · 8.68 KB

AWS_DEPLOYMENT_INSTRUCTIONS.md

File metadata and controls

212 lines (155 loc) · 8.68 KB

AWS CentOS 7.9 AMI Build Instructions

Follow these instructions to build the AWS CentOS 7.9 AMI images:

  • APM-Platform VM: An APM Platform stand-alone VM with an AppDynamics Controller.
  • CWOM-Platform VM: A Cisco Workload Optimization Manager (CWOM) stand-alone VM with a CWOM Platform server.
  • LPAD VM: An AWS EC2 'Launchpad' VM needed for Kubernetes and Serverless CLI Operations and running the sample apps.

Before building the AppD Cloud Kickstart VM images for AWS, it is recommended that you install the AWS CLI v2. This will allow you to cleanup and delete any resources created by the Packer builds when you are finished. It will also provide the ability to easily purge old AMI images while keeping the latest. Note that in AWS CLI version 2, the required Python 3 libraries are now embedded in the installer and no longer need to be installed separately.

AWS-Specific Installation Instructions - macOS

Here is a list of the recommended open source software to be installed on the host macOS machine:

  • Amazon AWS CLI 2.2.13 (command-line interface)

Perform the following steps to install the needed software:

  1. Install AWS CLI 2.2.13.
    $ brew install awscli@2

  2. Validate installed command-line tools:

    $ aws --version
    aws-cli/2.2.13 Python/3.9.5 Darwin/20.5.0 source/x86_64 prompt/off

AWS-Specific Installation Instructions - Windows 64-Bit

Here is a list of the recommended open source software to be installed on the host Windows machine:

  • Amazon AWS CLI 2.2.13 (command-line interface)

Perform the following steps to install the needed software:

  1. Install AWS CLI 2.2.13 for Windows 64-bit.
    Run the downloaded MSI installer and follow the on-screen instructions.

    NOTE: For Windows users, the MSI installation package offers a familiar and convenient way to install the AWS CLI without installing any other prerequisites. However, when updates are released, you must repeat the installation process to get the latest version of the AWS CLI. If you prefer more frequent updates, consider using pip as described in the AWS CLI install guide.

  2. Validate installed command-line tool:

    $ aws --version
    aws-cli/2.2.13 Python/3.8.8 Windows/10 exe/AMD64 prompt/off

Prepare for the Build

All user credentials and installation inputs are driven by environment variables and can be configured within the set_appd_cloud_kickstart_env.sh script you will create in ./bin. There are LOTS of options, but most have acceptable defaults. You only need to concentrate on a handful that are uncommented in the template file.

In particular, you will need to supply your AppDynamics login credentials to the download site. You will also need to provide an AWS Access Key ID and Secret Access Key from a valid AWS account.

The build will fail if they are not set.

To prepare for the build, perform the following steps:

  1. Customize your AppD Cloud Kickstart project environment:

    Copy the template file and edit set_appd_cloud_kickstart_env.sh located in ./bin to customize the environment variables for your environment.

    $ cd /<drive>/projects/AppD-Cloud-Kickstart/bin
    $ cp -p set_appd_cloud_kickstart_env.sh.template set_appd_cloud_kickstart_env.sh
    $ vi set_appd_cloud_kickstart_env.sh

    The following environment variables are the most common to be overridden. They are grouped by sections in the file, so you will have to search to locate the exact line. For example, the AWS-related variables are at the end of the file.

    The first two are mandatory and the others are optional, but helpful. If you are building the AMI images in the us-east-1 region (N. Virginia), the region-related variables can be left alone.

    AWS_ACCESS_KEY_ID="<Your_AWS_ACCESS_KEY_ID>"
    AWS_SECRET_ACCESS_KEY="<Your_AWS_SECRET_ACCESS_KEY>"
    
    aws_ami_owner="<Your Firstname> <Your Lastname>"
    aws_cli_default_region_name="us-east-1"         # example for N. Virginia.
    aws_ami_region="us-east-1"                      # example for N. Virginia.

    Save and source the environment variables file in order to define the variables in your shell.

    $ source ./set_appd_cloud_kickstart_env.sh

    Validate the newly-defined environment variables via the following commands:

    $ env | grep -i ^aws | sort
    $ env | grep -i ^appd | sort
  2. Supply a valid AppDynamics Controller license file:

    • This license can be supplied by any AppDynamics SE
      • It is recommended to have at least 10 APM, 10 server, 10 network, 5 DB, 1 unit of each Analytics and 1 unit of each RUM within the license key.
      • Copy your AppDynamics Controller license.lic and rename it to provisioners/scripts/centos/tools/appd-controller-license.lic.

Build the Amazon Machine Images (AMIs) with Packer

  1. Build the APM-Platform VM CentOS 7.9 AMI image:

    This will take several minutes to run.

    $ cd /<drive>/projects/AppD-Cloud-Kickstart/builders/packer/aws
    $ packer build apm-platform-centos79.json

    If the build fails, check to ensure the accuracy of all variables edited above--including items such as spaces between access keys and the ending parentheses.

  2. Build the CWOM-Platform VM CentOS 7.9 AMI image:

    This will take several minutes to run.

    $ cd /<drive>/projects/AppD-Cloud-Kickstart/builders/packer/aws
    $ packer build cwom-platform-centos79.json

    If the build fails, check to ensure the accuracy of all variables edited above--including items such as spaces between access keys and the ending parentheses.

  3. Build the LPAD VM CentOS 7.9 AMI image:

    This will take several minutes to run. However, this build will be shorter because the size of the root volume for the AMI image is much smaller.

    $ packer build lpad-centos79.json
  4. The steps for creating the AMI's are completed.

AWS CentOS 7.9 Bill-of-Materials

APM-Platform VM - The following utilities and application performance management applications are pre-installed:

  • Amazon AWS CLI 2.2.13 (command-line interface)
  • Amazon AWS EC2 Instance Metadata Query Tool (command-line interface)
  • Ansible 2.9.23
  • AppDynamics Enterprise Console 21.4.3 Build 24599
    • AppDynamics Controller 21.4.3 Build 1283
    • AppDynamics Events Service 4.5.2 Build 20651
    • AppDynamics EUM Server 21.4.0 Build 32860
  • Docker 20.10.7 CE
    • Docker Bash Completion
    • Docker Compose 1.29.2
    • Docker Compose Bash Completion
  • Java SE JDK 8 Update 292 (Amazon Corretto 8)
  • jq 1.6 (command-line JSON processor)
  • MySQL Shell 8.0.24
  • Python 2.7.5
    • Pip 21.1.2
  • Python 3.6.8
    • Pip 21.1.2
  • VIM - Vi IMproved 8.2
  • yq 4.9.6 (command-line YAML processor)

CWOM-Platform VM - The following utilities and workload optimization management applications are pre-installed:

  • Amazon AWS CLI 2.2.13 (command-line interface)
  • Amazon AWS EC2 Instance Metadata Query Tool (command-line interface)
  • Ansible 2.9.23
  • Cisco Workload Optimization Manager (CWOM) 2.3.28
  • Docker 20.10.7 CE
    • Docker Bash Completion
    • Docker Compose 1.29.2
    • Docker Compose Bash Completion
  • Java SE JDK 8 Update 292 (Amazon Corretto 8)
  • jq 1.6 (command-line JSON processor)
  • MySQL Shell 8.0.24
  • Python 2.7.5
    • Pip 21.1.2
  • Python 3.6.8
    • Pip 21.1.2
  • VIM - Vi IMproved 8.2
  • yq 4.9.6 (command-line YAML processor)

LPAD VM - The following AWS CLI command-line tools and utilities are pre-installed:

  • Amazon AWS CLI 2.2.13 (command-line interface)
  • Amazon AWS EC2 Instance Metadata Query Tool (command-line interface)
  • Amazon AWS EKS CLI [eksctl] 0.54.0 (command-line interface)
  • Amazon AWS Kubernetes Control CLI [kubectl] 1.20.4 (command-line interface)
  • Ansible 2.9.23
  • AppDynamics Node.js Serverless Tracer 21.5.300
  • Docker 20.10.7 CE
    • Docker Bash Completion
    • Docker Compose 1.29.2
    • Docker Compose Bash Completion
  • Git 2.32.0
    • Git Bash Completion
    • Git-Flow 1.12.3 (AVH Edition)
    • Git-Flow Bash Completion
  • Helm CLI 3.6.1 (Package Manager for Kubernetes)
  • Java SE JDK 8 Update 292 (Amazon Corretto 8)
  • Java SE JDK 11.0.11 (Amazon Corretto 11)
  • Java SE JDK 16.0.1 (Amazon Corretto 16)
  • jq 1.6 (command-line JSON processor)
  • Node.js JavaScript runtime v14.17.1 (Latest LTS Version)
  • npm JavaScript Package Manager for Node.js 7.18.1
  • nvm (Node Version Manager) bash script 0.38.0
  • Python 2.7.5
    • Pip 21.1.2
  • Python 3.6.8
    • Pip 21.1.2
  • Serverless Framework CLI 2.48.0
  • VIM - Vi IMproved 8.2
  • yq 4.9.6 (command-line YAML processor)