Install Rundeck on Ubuntu 22.04

|
Last Updated:
|
|

This tutorial will take you through how to install Rundeck on Ubuntu 22.04. Rundeck is an opensource runbook automation tool. It enables the creation of automated workflows from existing tools or scripts. Such workflows can be triggered from the Web GUI, API, CLI, or by schedule.

Install Rundeck on Ubuntu 22.04

Hardware Requirements

Ensure that your system has at least 2 CPUs, 4GB of RAM and 20GB of disk space.

Install Java 8 or Java 11

Rundeck is a Java-Servlet based server and therefore requires the Java runtime. We are using Java 11 in this setup.

Check how to install Java 11 in the guide below;

Install Java 11 on Ubuntu 22.04

java --version
openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

Set JAVA_HOME environment variable if not already set;

echo "JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java" >> /etc/environment
source /etc/environment

Install MySQL Database for Rundeck

MySQL 8 is the recommended version for Rundeck, as of this writing. Follow through this guide to learn how to install MySQL 8 on Ubuntu 22.04

Install MySQL 8 on Ubuntu 22.04

Create database and database User for Rundeck. The names of database/user used here are not standard. Use any names!

mysql -u root -p
create database rundeckdb;
create user rundeckadmin@localhost identified by 'ChangeME';
grant all on rundeckdb.* to rundeckadmin@localhost;
flush privileges;
quit

Install Rundeck on Ubuntu

Install Rundeck APT Repository on Ubuntu 22.04

wget -qO- https://packages.rundeck.com/pagerduty/rundeck/gpgkey \
| gpg --dearmor > /etc/apt/trusted.gpg.d/rundeck.gpg
echo \
"deb https://packages.rundeck.com/pagerduty/rundeck/any/ any main
deb-src https://packages.rundeck.com/pagerduty/rundeck/any/ any main" \
> /etc/apt/sources.list.d/rundeck.list

Next, install Rundeck;

apt update
apt install rundeck

Configure Rundeck server url;

vim /etc/rundeck/framework.properties

# ----------------------------------------------------------------
# Rundeck server connection information
# ----------------------------------------------------------------

framework.server.name = rundeck
framework.server.hostname = rundeck.kifarunix-demo.com
framework.server.port = 4440
framework.server.url = http://rundeck.kifarunix-demo.com:4440
...
vim /etc/rundeck/rundeck-config.properties
# change hostname here
#grails.serverURL=http://localhost:4440
grails.serverURL=http://rundeck.kifarunix-demo.com:4440

Configure MySQL Database Backend

Open the Rundeck configuration file and update the database connection details;


#dataSource.dbCreate = none
#dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=MONTH,HOUR,MINUTE,YEAR,SECONDS
grails.plugin.databasemigration.updateOnStart=true
dataSource.driverClassName = org.mariadb.jdbc.Driver
dataSource.url = jdbc:mysql://localhost/rundeckdb?autoReconnect=true&useSSL=false
dataSource.username = rundeckadmin
dataSource.password = ChangeME
...

Running Rundeck on Ubuntu 22.04

Start and enable Rundeck on Ubuntu 22.04;

systemctl start rundeckd
systemctl enable rundeckd

Check the status;

systemctl status rundeckd

● rundeckd.service - LSB: rundeck job automation console
     Loaded: loaded (/etc/init.d/rundeckd; generated)
     Active: active (running) since Tue 2022-05-10 20:05:45 UTC; 1s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 1472 ExecStart=/etc/init.d/rundeckd start (code=exited, status=0/SUCCESS)
   Main PID: 1482 (java)
      Tasks: 15 (limit: 2241)
     Memory: 35.6M
        CPU: 239ms
     CGroup: /system.slice/rundeckd.service
             └─1482 java -Drundeck.jaaslogin=true -Djava.security.auth.login.config=/etc/rundeck/jaas-loginmodule.conf -Dloginmodule.name=RDpropertyfilelogin -Drdeck.confi>

May 10 20:05:45 jellyfish systemd[1]: Starting LSB: rundeck job automation console...
May 10 20:05:45 jellyfish rundeckd[1472]:  * Starting rundeckd
May 10 20:05:45 jellyfish rundeckd[1472]:    ...done.
May 10 20:05:45 jellyfish systemd[1]: Started LSB: rundeck job automation console.

You can also check the logs;

tail -f /var/log/rundeck/rundeck.log

Accesing Rundeck Web User Interface

Rundeck listens on port 4440/tcp for HTTP and 4443 for HTTPS web services.

ss -altnp | grep 44
LISTEN 0      50                 *:4440             *:*    users:(("java",pid=1482,fd=131))

Open this port on firewall to allow external access to Rundeck;

iptables -A INPUT -p tcp --dport 4440 -j ACCEPT

or

ufw allow 4440/tcp

Default username as admin and password as admin.

Install Rundeck on Ubuntu 22.04

You can change the password in the /etc/rundeck/realm.properties file.

Rundeck dashboard;

Install Rundeck on Ubuntu 22.04

And that is it on how to install Rundeck.

Read more on Rundeck User Guide;

Rundeck User Guide

SUPPORT US VIA A VIRTUAL CUP OF COFFEE

We're passionate about sharing our knowledge and experiences with you through our blog. If you appreciate our efforts, consider buying us a virtual coffee. Your support keeps us motivated and enables us to continually improve, ensuring that we can provide you with the best content possible. Thank you for being a coffee-fueled champion of our work!

Photo of author
koromicha
I am the Co-founder of Kifarunix.com, Linux and the whole FOSS enthusiast, Linux System Admin and a Blue Teamer who loves to share technological tips and hacks with others as a way of sharing knowledge as: "In vain have you acquired knowledge if you have not imparted it to others".

Leave a Comment