Comment installer Rundeck sur Ubuntu 20.04

Rundeck est un logiciel open source gratuit pour les services d’automatisation. Il donne un accès en libre-service aux processus et outils dont ils ont besoin pour faire leur travail. En utilisant Rundeck, vous pouvez créer des workflows d’automatisation à partir d’outils ou de scripts existants. Il fournit une console Web, des outils CLI et une API Web pour exécuter des tâches d’automatisation.

Dans ce tutoriel, nous apprenons à installer le Rundeck communauté sur Ubuntu 20.04.

Conditions préalables

  • Une instance Ubuntu 20.04 avec au moins 2 CPU
  • 4 Go de RAM
  • Disque dur de 20 Go
  • Java 8 ou version ultérieure
  • Une base de données – MySQL/MariaDB, Oracle ou PostgrSQL
  • Log Store pour les journaux qui sont soit le système de fichiers par défaut, soit un magasin d’objets compatible S3
  • Ports 4440 (http) et 4443 (https) ouverts

Étape 1 : Installer Java sur Ubuntu

Rundeck nécessite Java 8 ou Java 11 pour fonctionner correctement. S’il n’est pas installé par défaut, installez Java à l’aide des commandes suivantes.

Tout d’abord, mettez à jour le cache du référentiel

$ sudo apt update

Maintenant, pour installer Java 11, exécutez la commande suivante :

$ sudo apt install openjdk-11-jre-headless

Vous pouvez vérifier la version :

java -version

Étape 2 : Installer MySQL sur Ubuntu

Rundeck prend en charge MySQL, PostgreSQL, Oracle et MS SQL Server pour stocker ses données. Dans notre cas, nous allons utiliser MySQL.

Pour installer MySQL sur Ubuntu, exécutez la commande suivante :

$ sudo apt install mysql-server

Activez ensuite le service MySQL au démarrage, tapez :

$ sudo systemctl enable mysql-server

Accédez maintenant à la base de données :

$ mysql -u root -p

Créez la base de données et l’utilisateur Rundeck :

mysql> CREATE DATABASE rundeckdb;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'rundeck_user'@'localhost' IDENTIFIED BY 'PASSWORD';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'rundeck_user'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
bye

Étape 3 : Installez Rundeck sur Ubuntu 20.04

Ici, nous allons installer la version communautaire de Rundeck. Tu peux soit télécharger le paquet deb directement depuis le site en remplissant le formulaire ou depuis le référentiel officiel.

Ici, je vais installer à partir du référentiel officiel qui garantit toujours d’avoir la dernière version.

Pour ce faire, nous allons d’abord importer la clé de signature du référentiel.

$ curl -L https://packages.rundeck.com/pagerduty/rundeck/gpgkey | sudo apt-key add -

Ajoutons ensuite le fichier de liste des sources de Rundeck /etc/apt/sources.list.d/rundeck.list

$ sudo vim /etc/apt/sources.list.d/rundeck.list

deb https://packages.rundeck.com/pagerduty/rundeck/any/ any main
deb-src https://packages.rundeck.com/pagerduty/rundeck/any/ any main

Mettre à jour le cache du référentiel

$ sudo apt update

Maintenant, installez Rundeck à l’aide de la commande apt, tapez :

$ sudo apt install rundeck

Nous devons maintenant indiquer à Rundeck comment connecter la base de données. Nous allons éditer son fichier de configuration avec quelques mises à jour. Assurez-vous de remplacer les lignes déjà existantes par les bonnes valeurs correspondant à votre configuration

$ sudo vim /etc/rundeck/rundeck-config.properties

grails.serverURL=https://YOUR_SERVER_IP:4440
dataSource.driverClassName = org.mariadb.jdbc.Driver
dataSource.url = jdbc:mysql://localhost/rundeckdb?autoReconnect=true&useSSL=false
dataSource.username = rundeck_user
dataSource.password = PASSWORD

Si vous avez installé une autre base de données, certaines configurations devraient changer.

Activez maintenant le service au démarrage

$ sudo systemctl enable rundeckd.service

Ensuite, démarrez le service Rundeck :

$ sudo systemctl start rundeckd.service

Vous pouvez vérifier l’état

$ sudo systemctl status rundeckd.service

● rundeckd.service - LSB: rundeck job automation console
Loaded: loaded (/etc/init.d/rundeckd; generated)
Active: active (running) since Sat 2021-11-06 01:05:34 UTC; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 229955 ExecStart=/etc/init.d/rundeckd start (code=exited, status=0/SUCCESS)
Main PID: 229976 (java)
Tasks: 12 (limit: 2279)
Memory: 114.7M
CGroup: /system.slice/rundeckd.service
└─229976 java -Drundeck.jaaslogin=true -Djava.security.auth.login.config=/etc/rundeck/jaas-loginmodule.conf -Dloginmodule.name=RDpropertyfilelogin -Drdeck.config=/etc/rundeck -Drundeck.server.configDir=/etc/rundeck -D>

Nov 06 01:05:34 li663-64 systemd[1]: Starting LSB: rundeck job automation console...
Nov 06 01:05:34 li663-64 rundeckd[229955]: * Starting rundeckd
Nov 06 01:05:34 li663-64 rundeckd[229955]: ...done.
Nov 06 01:05:34 li663-64 systemd[1]: Started LSB: rundeck job automation console.

Nous devons d’abord changer le mot de passe par défaut du admin l’utilisateur par défaut est toujours admin

$ sudo vim /etc/rundeck/realm.properties

admin:NEW_ADMIN_PASSWORD,user,admin,architect,deploy,build

À ce stade, si vous voulez vérifier que tout fonctionne, vous pouvez essayer d’accéder à Rundeck avec l’IP et le port 4440 mais vous devrez l’ouvrir sur le pare-feu avant.

Comme nous utiliserons Nginx, nous devrons éditer d’autres fichiers de configuration dans d’autres pour modifier l’URL de Rundeck. Nous devrons indiquer l’URL que Nginx utilisera pour accéder à Rundeck. Nous allons d’abord éditer le /etc/rundeck/framework.properties fichier de configuration

$ sudo vim /etc/rundeck/framework.properties

framework.server.url = https://rundeck.domain.com

Ensuite, nous allons rééditer le /etc/rundeck/rundeck-config.properties fichier de configuration. C’est celui qu’on utilisait pour indiquer l’adresse IP du serveur et le port par défaut mais maintenant on va mettre le nom de domaine.

$ sudo vim /etc/rundeck/rundeck-config.properties

grails.serverURL=https://rundeck.websitefortesting.com

Étape 4 : proxy terminé par SSL

Ici, nous utiliserons Nginx comme proxy inverse pour la résiliation SSL. Cela aide Rundeck avec le support SSL/HTTPS.

Nginx est disponible dans le référentiel apt, vous pouvez simplement l’installer à l’aide de la commande suivante :

$ sudo apt install nginx

Vous devez maintenant copier le certificat de votre domaine Rundeck.

$ sudo cp rundeck.domain.com.crt /etc/nginx/certs/rundeck.domain.com.crt

Vous devez également copier la clé

$ sudo cp rundeck.domain.com.key /etc/nginx/certs/rundeck.domain.com.key

Supprimons le fichier de configuration par défaut pour éviter tout conflit

$ sudo rm /etc/nginx/sites-enabled/default

Créons maintenant le fichier de configuration de Rundeck.

$ sudo vim /etc/nginx/sites-available/rundeck.conf

server {
server_name rundeck.domain.com;
listen 80 ;
access_log /var/log/nginx/rundeck.log;
return 301 https://$host$request_uri;
}
server {
server_name rundeck.domain.com;
listen 443 ssl http2 ;
access_log /var/log/nginx/rundeck.log;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
ssl_certificate /etc/nginx/certs/rundeck.domain.com.crt;
ssl_certificate_key /etc/nginx/certs/rundeck.domain.com.key;
add_header Strict-Transport-Security "max-age=31536000";

location / {
proxy_pass https://localhost:4440;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Activons maintenant le fichier de configuration

$ sudo ln -s /etc/nginx/sites-available/rundeck.conf /etc/nginx/sites-enabled/rundeck.conf

Vérifier la configuration Nginx

$ sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Étape 5 : Accéder à l’interface Rundeck

Vous pouvez maintenant accéder à votre navigateur et accéder à Rundeck avec l’URL https://rundeck.domain.com

Pour l’accès à l’interface Web de Rundeck, le nom d’utilisateur est admin et le mot de passe est celui que nous avons édité précédemment NEW_ADMIN_PASSWORD.

Vous avez maintenant accès à votre Rundeck

Tableau de bord Rundeck

Vous pouvez créer un nouveau projet pour commencer avec votre configuration.

Conclusion

Dans ce didacticiel, nous avons appris à installer l’édition communautaire de Rundeck sur votre serveur Ubuntu 20.04. Vous pouvez faire quelques configurations et créer un nouveau projet afin de commencer à utiliser votre Rundeck