Installation

This page describes how to install the EFXCI-System in AWS using a control node and the provided automation script.

Prerequisites

Control node: Ubuntu 24.04 machine

Repository access:

  • Either have your public SSH key added to your GitHub account with access to:

    • ElectrIFEX repositories, or

    • efxci-infra-automation repository

  • Or have already downloaded the efxci-infra-automation repository.

AWS credentials: Access key and secret key with relevant permissions (EC2, VPC, RDS, S3, IAM).

Infrastructure and CI-System Deployment

Clone the infra repo on the control node (if not already downloaded):

git clone git@github.com:electrifex/efxci-infra-automation.git ~/efxci-infra-automation
cd ~/efxci-infra-automation

Create the infrastructure and deploy the EFXCI-System:

./create-infrastructure-and-deploy.sh

Notes on interactive prompts:

While running, the script will ask you for the following:

  • Edit terraform.tfvars

    You will be asked if you want to edit aws-infrastructure/terraform.tfvars. Choose y if you need to customize AWS region, instance types, or other variables. Otherwise, choose n to use defaults.

  • AWS CLI credentials

    You will be asked if you want to configure AWS CLI. Choose y if you haven’t yet set up your AWS credentials on the control node. Choose n if your AWS CLI is already configured.

  • Run tofu plan

    Before applying infrastructure, you will be asked if you want to run tofu plan to preview changes. This step is optional. Choose y for a dry-run or n to skip and apply directly.

Destroying Infrastructure

To destroy all deployed resources:

cd ~/efxci-infra-automation/aws-infrastructure
tofu destroy

Deployment Without Infrastructure

If the infrastructure is already created, you can deploy the EFXCI-System directly without recreating it.

  1. Navigate to the infra automation repository:

    cd ~/efxci-infra-automation/
    
  2. Edit the hosts file before deployment. The file is located at:

    nano ci-deployment/hosts
    

    Update the host entries as required for your target environment.

  3. Run the deployment script:

    ./deploy-efxci.sh
    

This will configure and deploy the EFXCI-System on the existing infrastructure.