Installation ============ This page describes how to install the EFXCI-System in AWS using a control node and the provided automation script. .. contents:: :local: :depth: 2 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): .. code-block:: bash 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: .. code-block:: bash ./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: .. code-block:: bash 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: .. code-block:: bash cd ~/efxci-infra-automation/ 2. **Edit the hosts file** before deployment. The file is located at: .. code-block:: bash nano ci-deployment/hosts Update the host entries as required for your target environment. 3. Run the deployment script: .. code-block:: bash ./deploy-efxci.sh This will configure and deploy the EFXCI-System on the existing infrastructure.