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.
Before installing Carrier, you need to ensure that the following tools are installed on your CentOS system:
- Docker Compose
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.
- Update the system:
sudo yum update -y
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:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- Set up the Docker repository:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Install Docker:
sudo yum install docker-ce -y
- Start and enable Docker service:
sudo systemctl start docker sudo systemctl enable docker
- Verify that Docker is installed correctly:
[root@ip-172-31-26-250 ec2-user]# docker --version Docker version 24.0.2, build cb74df
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
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:
sudo chmod +x /usr/local/bin/docker-compose
- Create a symbolic link for docker-compose in
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- Verify that Docker Compose is installed correctly:
[root@ip-172-31-26-250 ec2-user]# docker-compose --version Docker Compose version v2.18.1
- Install Git:
sudo yum install git -y
- Verify the Git installation:
[root@ip-172-31-26-250 ec2-user]# git version git version 2.39.1
- Install the Development Tools group package:
sudo yum groupinstall "Development Tools" -y
- Verify the Make installation:
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.
You need to use public IP to access Carrier
- Using root user clone the carrier-io centry repository to the
git clone https://github.com/carrier-io/centry.git -b beta-1.0 /opt/centry
- Navigate to the downloaded folder:
- Get the
public IPof your system and set the
CURRENT_IPvariable to the defined value:
1 export CURRENT_IP=$(curl -s ifconfig.me)
Set parameters in
4.1 Set IP (change
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
1 2 3 4 5
vi .env .... CARRIER_PATH=/opt/centry VOLUMES_PATH=/opt/centry/volumes ....
- Review list of default plugins in config file:
- Launch the Carrier installer:
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
docker logs -f carrier-pylon
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:
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
You’re all set, then! Excellent Work!
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:
- Set up user accounts, roles, and permissions.
- Configure email notifications, integrations, and other settings.
- 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.
- Create projects in Carrier to organize your tests.
- Configure and run performance tests using the Carrier web interface.
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.
- 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
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