Overview
This guide provides step-by-step instructions for installing Carrier on CentOS operating systems. Carrier is a powerful platform for performance and security testing.
Please find the hardware requirements by following the link.
Prerequisites
Before installing Carrier, you need to ensure that the following tools are installed on your CentOS system:
- Docker 4.19.0+
- Docker Compose 1.29.2+
- Git 2.40.1+
- Make
After executing the installation commands, it is important to ensure that there are no errors. Please verify that the installation process completed successfully without encountering any issues.
Install Docker
- Update the system:
1
sudo yum update -y
Expected Output:
1 2 3 4 5
python3-attrs-20.3.0-7.el9.noarch python3-jsonschema-3.2.0-13.el9.noarch python3-pyrsistent-0.17.3-8.el9.x86_64 Complete!
- Install required packages:
1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- Set up the Docker repository:
1
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Install Docker:
1
sudo yum install docker-ce -y
- Start and enable Docker service:
1 2
sudo systemctl start docker sudo systemctl enable docker
- Verify that Docker is installed correctly:
1
docker --version
Expected Output:
1 2
[root@ip-172-31-26-250 ec2-user]# docker --version Docker version 24.0.2, build cb74df
Install Docker Compose
Ensure that you have Docker installed on your CentOS system. If Docker is not installed, you can refer to the previous instructions to install it.
- Download the Docker Compose binary into the
/usr/local/bin
directory:1
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Apply executable permissions to the Docker Compose binary:
1
sudo chmod +x /usr/local/bin/docker-compose
- Create a symbolic link for docker-compose in
/usr/bin/docker-compose
:1
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- Verify that Docker Compose is installed correctly:
1
docker-compose --version
Expected Output:
1 2
[root@ip-172-31-26-250 ec2-user]# docker-compose --version Docker Compose version v2.18.1
Install Git
- Install Git:
1
sudo yum install git -y
- Verify the Git installation:
1
git --version
Expected Output:
1 2
[root@ip-172-31-26-250 ec2-user]# git version git version 2.39.1
Install Make
- Install the Development Tools group package:
1
sudo yum groupinstall "Development Tools" -y
- Verify the Make installation:
1
make --version
After completing these steps, you have successfully installed Docker, Docker Compose, Git, and Make tools on your CentOS system.
Make sure to execute these additional steps before proceeding with the Carrier installation to ensure that all the required tools are installed on your CentOS system.
Carrier Installation Steps
You need to use public IP to access Carrier
- Using root user clone the carrier-io centry repository to the
/opt
directory:1
git clone https://github.com/carrier-io/centry.git -b beta-1.0 /opt/centry
- Navigate to the downloaded folder:
1
cd /opt/centry
- Get the
public IP
of your system and set theCURRENT_IP
variable to the defined value:
1
export CURRENT_IP=$(curl -s ifconfig.me)
Set parameters in
.env
andMakefile
file4.1 Set IP (change
DEV_IP
andDIRECT_IP
toCURRENT_IP
):1 2
sed -i -e "s/\#DIRECT_IP=YOUR_IP_HERE/DIRECT_IP=$CURRENT_IP/g" Makefile sed -i -e "s/\$APP_IP/$CURRENT_IP/g" .env
4.2 Set installation path in for
CARRIER_PATH
andVOLUMES_PATH
in.env
:1 2 3 4 5
vi .env .... CARRIER_PATH=/opt/centry VOLUMES_PATH=/opt/centry/volumes ....
- Review list of default plugins in config file:
1
cat config/pylon.yml
- Launch the Carrier installer:
1
make up
Expected Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
[+] Running 126/26 ✔ vault 5 layers [⣿⣿⣿⣿⣿] 0B/0B Pulled 15.4s ✔ loki 7 layers [⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 6.0s ✔ minio 6 layers [⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 22.9s ✔ mongo 9 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 36.2s ✔ postgres 13 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 32.0s ✔ pylon 11 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 45.8s ✔ pylon_auth Pulled 45.8s ✔ grafana 9 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 28.0s ✔ redis 6 layers [⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 15.6s ✔ traefik 4 layers [⣿⣿⣿⣿] 0B/0B Pulled 9.7s ✔ rabbitmq 12 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 25.4s ✔ keycloak 4 layers [⣿⣿⣿⣿] 0B/0B Pulled 39.6s ✔ influx 7 layers [⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 33.2s ✔ interceptor 18 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 42.8s ✔ interceptor_internal Pulled 42.7s .... [+] Building 0.0s (0/0) [+] Running 16/16 ✔ Network centry_pylon Created 0.1s ✔ Container carrier-redis Started 17.3s ✔ Container carrier-mongo Started 17.4s ✔ Container carrier-loki Started 17.7s ✔ Container carrier-minio Started 17.4s ✔ Container carrier-postgres Started 17.5s ✔ Container carrier-influx Started 17.5s ✔ Container carrier-vault Started 2.1s ✔ Container centry-traefik-1 Started 1.5s ✔ Container carrier-rabbit Started 2.0s ✔ Container carrier-grafana Started 2.0s ✔ Container carrier-keycloak Started 2.3s ✔ Container carrier-interceptor_internal Started 3.0s ✔ Container carrier-interceptor Started 2.8s ✔ Container carrier-pylon-auth Started 3.3s ✔ Container carrier-pylon Started
Verify that main container is started:
Packages downloading process takes ~5-10 minutes
1
docker logs -f carrier-pylon
Expected Output:
1 2 3 4 5 6 7 8 9 10 11
INFO - pylon.core.tools.process - Stored in directory: /root/.cache/pip/wheels/e3/76/6f/.. INFO - pylon.core.tools.process - Successfully built jsonpath_rw INFO - pylon.core.tools.process - Installing collected packages: ply, decorator, jsonpath_rw INFO - pylon.core.tools.process - Successfully installed decorator-5.1.1 jsonpath_rw-1.4.0 ply-3.11 INFO - plugins.auth_mappers.module - Initializing module INFO - plugins.auth_oidc.module - Initializing module INFO - plugins.auth_root.module - Initializing module auth_root INFO - pylon.core.tools.server - Starting Flask server * Tip: There are .env or .flaskenv files present. Do "pip install python-dotenv" to use them. WARNING - werkzeug - * Debugger is active! INFO - werkzeug - * Debugger PIN: 686-802-926
Verify that no Docker containers have been restarted:
1
docker ps -a
Once the installation is finished, open the following URL in a browser:
http://<public DNS or IP>
Login for the first time to the system using the
admin/admin
credentials.You’re all set, then! Excellent Work!
Post-Installation Steps
It is highly recommended to change the default password after logging in.
After installing Carrier, you may want to perform the following post-installation steps:
1. Configure Carrier project
- Set up user accounts, roles, and permissions.
- Configure email notifications, integrations, and other settings.
2. Secure Carrier
- Change default user passwords
- Enable HTTPS for secure communication with the Carrier web interface.
- Configure firewall rules to restrict access to Carrier ports.
- Follow best practices for securing your Debian 11 server.
3. Set Up Projects and Tests
- Create projects in Carrier to organize your tests.
- Configure and run performance tests using the Carrier web interface.
Next Step: Create a Project in Carrier
Once you have completed the installation steps, you can proceed to create your first project in Carrier. The project allows you to organize and manage your performance and security tests.
Follow the guide on how to create a project in Carrier to get started.
Troubleshooting
- Restart carrier-pylon container
1
2
docker restart carrier-pylon
docker logs -f carrier-pylon
If something doesn’t work as expected, check the logs of the following containers for any errors:
1
2
3
docker logs -f carrier-keycloak
docker logs -f centry_traefik_1
docker logs -f carrier-pylon-auth
Uninstall
If the root volume was used as the hard drive, use the following commands to stop containers and remove all required artifacts:
1
2
3
docker-compose down
docker volume prune
docker network prune
If a mounted disk was used, manually delete all directories with images:
1
2
docker-compose down
sudo rm -rf /opt/docker