{"id":12669,"date":"2022-05-11T22:34:13","date_gmt":"2022-05-11T19:34:13","guid":{"rendered":"https:\/\/kifarunix.com\/?p=12669"},"modified":"2024-03-09T13:46:24","modified_gmt":"2024-03-09T10:46:24","slug":"install-rundeck-on-rocky-linux","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-rundeck-on-rocky-linux\/","title":{"rendered":"Install Rundeck on Rocky Linux"},"content":{"rendered":"\n
This tutorial will take you through how to install Rundeck on Rocky Linux. 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.<\/p>\n\n\n\n
Ensure that your system has at least 2 CPUs, 4GB of RAM and 20GB of disk space.<\/p>\n\n\n\n
Rundeck is a Java-Servlet based server and therefore requires the Java runtime. We are using Java 11 in this setup.<\/p>\n\n\n\n
Check how to install Java 11 in the guide below;<\/p>\n\n\n\n
Install Java 11 on Rocky Linux<\/a><\/p>\n\n\n\n Set JAVA_HOME environment variable if not already set;<\/p>\n\n\n\n MySQL 8 is the recommended version for Rundeck, as of this writing. Follow through this guide to learn how to install MySQL 8 on Rocky Linux<\/p>\n\n\n\n Install MySQL 8 on Rocky Linux 8<\/a><\/p>\n\n\n\n Create database and database User for Rundeck. The names of database\/user used here are not standard. Use any names!<\/p>\n\n\n\n Install Rundeck YUM Repository on Rocky Linux<\/p>\n\n\n\n Next, install Rundeck;<\/p>\n\n\n\n Open the Rundeck configuration file and update the database connection details;<\/p>\n\n\n\n Start and enable Rundeck on Rocky Linux;<\/p>\n\n\n\n Check the status;<\/p>\n\n\n\n You can also check the logs;<\/p>\n\n\n\n Rundeck listens on port 4440\/tcp for HTTP and 4443 for HTTPS web services.<\/p>\n\n\n\n Open this port on firewall to allow external access to Rundeck;<\/p>\n\n\n\n or<\/p>\n\n\n\n Default username as admin<\/strong> and password as admin<\/strong>.<\/p>\n\n\n\n You can change the password in the Rundeck dashboard;<\/p>\n\n\n\njava --version<\/code><\/pre>\n\n\n\n
openjdk 11.0.15 2022-04-19 LTS\nOpenJDK Runtime Environment 18.9 (build 11.0.15+9-LTS)\nOpenJDK 64-Bit Server VM 18.9 (build 11.0.15+9-LTS, mixed mode, sharing)<\/code><\/pre>\n\n\n\n
echo $JAVA_HOME<\/code><\/pre>\n\n\n\n
\/usr\/lib\/jvm\/java-11-openjdk-11.0.15.0.9-2.el8_5.x86_64\/bin\/java<\/code><\/pre>\n\n\n\n
Install MySQL Database for Rundeck<\/h3>\n\n\n\n
mysql -u root -p<\/code><\/pre>\n\n\n\n
create database rundeckdb;<\/code><\/pre>\n\n\n\n
create user rundeckadmin@localhost identified by 'ChangeME';<\/code><\/pre>\n\n\n\n
grant all on rundeckdb.* to rundeckadmin@localhost;<\/code><\/pre>\n\n\n\n
flush privileges;\nquit<\/code><\/pre>\n\n\n\n
Install Rundeck<\/h3>\n\n\n\n
\ncat > \/etc\/yum.repos.d\/rundeck.repo << 'EOL'\n[rundeck]\nname=rundeck\nbaseurl=https:\/\/packages.rundeck.com\/pagerduty\/rundeck\/rpm_any\/rpm_any\/$basearch\nrepo_gpgcheck=1\ngpgcheck=0\nenabled=1\ngpgkey=https:\/\/packages.rundeck.com\/pagerduty\/rundeck\/gpgkey\nsslverify=1\nsslcacert=\/etc\/pki\/tls\/certs\/ca-bundle.crt\nmetadata_expire=300\nEOL\n<\/code><\/pre>\n\n\n\n
dnf install rundeck -y<\/code><\/pre>\n\n\n\n
Configure Rundeck server url;<\/h3>\n\n\n\n
vim \/etc\/rundeck\/framework.properties<\/code><\/pre>\n\n\n\n
# ----------------------------------------------------------------\n# Rundeck server connection information\n# ----------------------------------------------------------------\n\nframework.server.name = rundeck\nframework.server.hostname = rundeck.kifarunix-demo.com\nframework.server.port = 4440\nframework.server.url = http:\/\/rundeck.kifarunix-demo.com:4440<\/strong>\n...\n<\/code><\/pre>\n\n\n\n
vim \/etc\/rundeck\/rundeck-config.properties<\/code><\/pre>\n\n\n\n
# change hostname here\n#grails.serverURL=http:\/\/localhost:4440\ngrails.serverURL=http:\/\/rundeck.kifarunix-demo.com:4440<\/strong><\/code><\/pre>\n\n\n\n
Configure MySQL Database Backend<\/h3>\n\n\n\n
#dataSource.dbCreate = none\n#dataSource.url = jdbc:h2:file:\/var\/lib\/rundeck\/data\/rundeckdb;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=MONTH,HOUR,MINUTE,YEAR,SECONDS\ngrails.plugin.databasemigration.updateOnStart=true\ndataSource.driverClassName = org.mariadb.jdbc.Driver\ndataSource.url = jdbc:mysql:\/\/localhost\/rundeckdb?autoReconnect=true&useSSL=false\ndataSource.username = rundeckadmin\ndataSource.password = ChangeME<\/strong>\n...\n<\/code><\/pre>\n\n\n\n
Running Rundeck on Rocky Linux<\/h3>\n\n\n\n
systemctl start rundeckd<\/code><\/pre>\n\n\n\n
systemctl enable rundeckd<\/code><\/pre>\n\n\n\n
systemctl status rundeckd<\/code><\/pre>\n\n\n\n
\n\u25cf rundeckd.service - SYSV: rundeckd, providing rundeckd\n Loaded: loaded (\/etc\/rc.d\/init.d\/rundeckd; generated)\n Active: active (running) since Wed 2022-05-11 16:47:18 EDT; 11s ago\n Docs: man:systemd-sysv-generator(8)\n Main PID: 17022 (runuser)\n Tasks: 0 (limit: 11256)\n Memory: 1.6M\n CGroup: \/system.slice\/rundeckd.service\n \u2023 17022 runuser -s \/bin\/bash -l rundeck -c java -Drundeck.jaaslogin=true -Djava.security.auth.login.config=\/etc\/rundeck\/jaas-loginmodule.conf >\n\nMay 11 16:47:17 localhost.localdomain systemd[1]: Starting SYSV: rundeckd, providing rundeckd...\nMay 11 16:47:18 localhost.localdomain rundeckd[17012]: Starting rundeckd: [ OK ]\nMay 11 16:47:18 localhost.localdomain systemd[1]: Started SYSV: rundeckd, providing rundeckd.\n<\/code><\/pre>\n\n\n\n
tail -f \/var\/log\/rundeck\/rundeck.log<\/code><\/pre>\n\n\n\n
Accesing Rundeck Web User Interface<\/h3>\n\n\n\n
ss -altnp | grep 44<\/code><\/pre>\n\n\n\n
LISTEN 0 50 *:4440 *:* users:((\"java\",pid=1482,fd=131))<\/code><\/pre>\n\n\n\n
iptables -A INPUT -p tcp --dport 4440 -j ACCEPT<\/code><\/pre>\n\n\n\n
firewall-cmd --add-port=4440\/tcp --permanent\nfirewall-cmd --reload<\/code><\/pre>\n\n\n\n
<\/figure><\/div><\/a><\/div>\n\n\n\n
\/etc\/rundeck\/realm.properties<\/strong><\/code> file.<\/p>\n\n\n\n