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âche | Ce qu'elle fait | Où elle s'exécute |
|---|---|---|
| Commande locale | une commande sur le serveur CTFreak | l'hôte CTFreak |
| Commande | une ligne de commande en SSH ou WinRM | les nœuds |
| Script Bash | un script Bash en SSH | nœuds Unix |
| Script PowerShell | un script en SSH ou WinRM | nœuds Windows |
| Playbook Ansible | un playbook Ansible | les nœuds |
| Script et rapport SQL | requêtes, rapports avec graphiques | bases de données |
| Requête HTTP | appel d'API, webhook sortant | toute URL |
| Workflow | enchaîne d'autres tâches, en série ou en parallèle | autres 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 :
- une seule exécution à la fois : tout s'exécute en série ;
- 8 tâches au maximum, avec un seul paramètre par tâche ;
- 3 utilisateurs et un calendrier au maximum ;
- bases PostgreSQL, MySQL et MariaDB seulement.
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
| Situation | Piste |
|---|---|
| Quelques tâches planifiées, une petite équipe | l'édition gratuite peut suffire, en acceptant l'exécution en série |
| Besoin d'un logiciel open source | Rundeck, édition open source |
| Playbooks Ansible lancés par d'autres équipes | CTFreak 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.