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-automationrepository
Or have already downloaded the
efxci-infra-automationrepository.
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 planto 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.
Navigate to the infra automation repository:
cd ~/efxci-infra-automation/
Edit the hosts file before deployment. The file is located at:
nano ci-deployment/hostsUpdate the host entries as required for your target environment.
Run the deployment script:
./deploy-efxci.sh
This will configure and deploy the EFXCI-System on the existing infrastructure.