CTFreak, un ordonnanceur de tâches entièrement web

CTFreak remplace les crontabs dispersées par une seule interface web qui planifie, lance et journalise vos scripts sur des serveurs Linux et Windows. Voici ce qu'il fait, ce que permet son édition gratuite, et comment l'installer.

Une correction d'abord, parce que CTFreak apparaît souvent dans les recherches « ordonnanceur open source » : CTFreak n'est pas un logiciel open source. C'est un logiciel propriétaire de l'éditeur JYP Software, dont le contrat de licence interdit de modifier, décompiler ou rétro-concevoir l'application. Il existe une édition gratuite, utilisable sans clé de licence, mais gratuit ne veut pas dire ouvert. Si le code source ouvert est un critère pour vous, comparez avec Rundeck, dont l'édition open source est publiée librement.

Ce point posé, CTFreak répond à un besoin courant : centraliser des tâches planifiées éparpillées sur plusieurs serveurs. Testez-le sur une VM de lab, avec un instantané, avant de lui confier des identifiants de production.

Ce que fait CTFreak

L'éditeur le décrit comme un ordonnanceur de tâches informatiques auto-hébergé : une seule application web pour créer, planifier, exécuter et suivre des tâches sur des serveurs et des bases de données. Aucun agent n'est installé sur les cibles : CTFreak s'y connecte en SSH ou en WinRM, et aux bases par leur protocole natif.

Type de tâcheCe qu'elle faitOù elle s'exécute
Commande localeune commande sur le serveur CTFreakl'hôte CTFreak
Commandeune ligne de commande en SSH ou WinRMles nœuds
Script Bashun script Bash en SSHnœuds Unix
Script PowerShellun script en SSH ou WinRMnœuds Windows
Playbook Ansibleun playbook Ansibleles nœuds
Script et rapport SQLrequêtes, rapports avec graphiquesbases de données
Requête HTTPappel d'API, webhook sortanttoute URL
Workflowenchaîne d'autres tâches, en série ou en parallèleautres tâches

Une exécution se déclenche à la main depuis l'interface ou l'API REST, selon une expression cron combinée si besoin à un calendrier, par un webhook entrant, ou depuis un workflow parent. Les tâches sont rangées par projet, et les droits s'attribuent par projet.

Les éditions, telles que l'éditeur les décrit

Sans clé de licence, CTFreak tourne en édition FREE. La page de licence de l'éditeur en fixe les limites :

Les éditions payantes, PRO, BUSINESS et SOVEREIGN, lèvent ces limites et ajoutent notamment l'exécution concurrente, les bases Oracle et SQL Server, le chiffrement des secrets et le provisionnement SCIM. Les éditions PRO et BUSINESS vérifient leur licence en ligne : l'instance doit disposer d'un accès Internet au moins deux heures par jour. Les tarifs figurent sur le site de l'éditeur ; cette page n'en reprend aucun.

Installer CTFreak sur Linux

L'installation manuelle est la seule qui permet les tâches Ansible. La documentation demande au moins 1 Go de RAM, un noyau Linux 4.15 ou plus récent, une architecture AMD64 ou ARM64, et un dossier de configuration qui ne soit pas sur un lecteur réseau.

Téléchargez le binaire et rendez-le exécutable :

sudo curl https://ctfreak.com/download/release/latest/linux/amd64 --output /usr/local/bin/ctfreak
sudo chmod +x /usr/local/bin/ctfreak

Créez un compte dédié, par exemple ctfreak, puis le service systemd /etc/systemd/system/ctfreak.service donné par la documentation :

[Unit]
Description=Run CTFreak server
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
Restart=on-failure
ExecStart=/usr/local/bin/ctfreak run
User=ctfreak
Group=ctfreak
LimitNOFILE=100000
LimitNOFILESoft=100000

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable ctfreak
sudo systemctl start ctfreak

Au démarrage, CTFreak crée $HOME/.config/ctfreak dans le compte de service, pour sa configuration, sa base SQLite embarquée et les journaux d'exécution. L'interface répond sur le port 6700, avec l'identifiant par défaut admin et le mot de passe ctfreak : changez-le à la première connexion. L'éditeur conseille ensuite de placer un proxy inverse devant l'application.

Activer les tâches Ansible

Il faut installer sur le serveur CTFreak Ansible 2.17 ou plus récent, sshpass et le module Python pypsrp pour les cibles Windows. L'exécutable ansible-playbook doit être dans le PATH du compte qui fait tourner CTFreak. Les étapes côté Ansible sont détaillées dans la page pour installer Ansible, et la connexion aux serveurs Windows dans celle sur Ansible pour Windows Server.

Installer avec Docker

Une image est publiée sous jypsoftware/ctfreak. La documentation demande au moins 2 Go de RAM et Docker Compose :

services:
  ctfreak:
    image: jypsoftware/ctfreak
    environment:
      - TZ=Europe/Paris
    ports:
      - "6700:6700"
    volumes:
      - ctfreak-data:/data
    restart: "unless-stopped"
volumes:
  ctfreak-data:
docker compose up -d

Réglez TZ sur votre fuseau : c'est lui qui sert à planifier les tâches. Limite importante : en Docker, Snap ou Cloudron, les tâches Ansible ne sont pas disponibles, et les commandes locales s'exécutent dans le conteneur, pas sur le serveur hôte.

Quand choisir CTFreak

SituationPiste
Quelques tâches planifiées, une petite équipel'édition gratuite peut suffire, en acceptant l'exécution en série
Besoin d'un logiciel open sourceRundeck, édition open source
Playbooks Ansible lancés par d'autres équipesCTFreak en installation Linux, ou Rundeck
Serveur sans accès Internetédition SOVEREIGN, ou un outil sans licence en ligne

La même démarche de comparaison par critères s'applique à la supervision, comme dans la page Zabbix ou Centreon pour une supervision open source. Les autres outils sont dans la rubrique automatisation de l'administration système.

Questions fréquentes

CTFreak est-il open source ?

Non. C'est un logiciel propriétaire de JYP Software ; son contrat de licence interdit notamment de le modifier ou de le décompiler. Une édition gratuite existe, avec des limites sur le nombre de tâches, d'utilisateurs et d'exécutions simultanées.

Faut-il installer un agent sur les serveurs ?

Non. CTFreak se connecte aux serveurs en SSH ou en WinRM, et aux bases de données par leur protocole natif. Les identifiants sont stockés dans CTFreak et partagés entre les nœuds qui les utilisent.

Sur quel port répond CTFreak ?

Le port 6700 par défaut, en installation Linux comme dans l'exemple Docker de la documentation. L'éditeur recommande de le placer derrière un proxy inverse pour exposer l'interface.

CTFreak fonctionne-t-il sans Internet ?

La documentation ne demande un accès Internet, au moins deux heures par jour, que pour les licences PRO et BUSINESS, afin de vérifier la clé. L'édition SOVEREIGN, elle, est conçue pour fonctionner entièrement hors ligne.

Quelle différence avec Rundeck ?

Les deux centralisent l'exécution de tâches sur des nœuds distants. Rundeck existe en édition open source et tourne sur Java ; CTFreak est un binaire unique, propriétaire, avec une édition gratuite limitée.