Installation
Ansible is an open-source automation tool that allows you to automate the deployment and configuration of software on multiple servers. It is a powerful tool that can help you manage your infrastructure more efficiently.
It is the recommended way to install Fireactions. This guide will show you how to install Fireactions using Ansible.
Pre-requisites
Before you begin, make sure you have the following requirements:
- Ansible set up on local machine
- GitHub App ID and private key, see Creating GitHub Apps
Step 1: Create an inventory file
Step 2: Create an Ansible playbook
# site.yaml
---
- name: Install Fireactions
hosts:
- all
become: yes
- role: hostinger.fireactions.fireactions
vars:
fireactions_version: 0.2.3
fireactions_config:
bind_address: 0.0.0.0:8080
metrics:
enabled: true
address: 127.0.0.1:8081
github:
app_id: <APP_ID>
app_private_key: |
<APP_PRIVATE_KEY>
debug: true
pools:
- name: example
max_runners: 10
min_runners: 1
runner:
name: example
image: <IMAGE>:<IMAGE_TAG>
image_pull_policy: IfNotPresent
group_id: 1
organization: hostinger
labels:
- self-hosted
- fireactions
firecracker:
binary_path: firecracker
kernel_image_path: /usr/local/share/firecracker/vmlinux.bin
kernel_args: "console=ttyS0 noapic reboot=k panic=1 pci=off nomodules rw"
machine_config:
mem_size_mib: 1024
vcpu_count: 1
metadata:
example: example
The fireactions_config
variable contains the configuration for Fireactions. You can customize the configuration to suit your needs. For more information on the available configuration options, see the configuration
Step 3: Create a requirements file
# requirements.yaml
---
collections:
- name: hostinger.fireactions
version: 0.1.1
- name: hostinger.common
version: 0.8.0
Step 4: Install the required Ansible collections
Step 5: Run the Ansible playbook
The Ansible playbook will do the following:
- Install Containerd
- Install CNI plugins (bridge, host-local, firewall, tc-redirect-tap)
- Configure CNI networking
- Install Firecracker
- Setup required sysctl settings
- Install Fireactions
After the playbook has finished, check the status of the Fireactions service:
$ systemctl status fireactions
● fireactions.service - Fireactions
Loaded: loaded (/etc/systemd/system/fireactions.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-09-08 18:59:08 UTC; 2 days ago
Docs: https://github.com/hostinger/fireactions
Process: 3564 ExecStartPre=/usr/bin/which firecracker (code=exited, status=0/SUCCESS)
Process: 3566 ExecStartPre=/usr/bin/which containerd (code=exited, status=0/SUCCESS)
Main PID: 3571 (fireactions)
Tasks: 480 (limit: 618568)
Memory: 87.8G
CPU: 5d 6h 21min 36.143s
At this point, Fireactions should be up and running. You can now proceed to running your first build.