如何在 Ubuntu 20.04 上安裝 Rundeck

跑台 是一款用於自動化服務的免費開源軟件。 它允許自助訪問他們完成工作所需的流程和工具。 使用 Rundeck,您可以從現有工具或腳本創建自動化工作流。 它提供了一個 Web 控制台、CLI 工具和一個 Web API 來運行自動化任務。

在本教程中,我們將學習如何 安裝 Rundeck 社區上 Ubuntu 20.04.

先決條件

  • 一個至少有 2 個 CPU 的 Ubuntu 20.04 實例
  • 4 GB 內存
  • 20 GB 硬盤
  • Java 8 或更高版本
  • 數據庫 – MySQL/MariaDB、Oracle 或 PostgrSQL
  • 日誌存儲,用於作為默認文件系統或 S3 兼容對象存儲的日誌
  • 端口 4440 (http) 和 4443 (https) 打開

第 1 步:在 Ubuntu 上安裝 Java

Rundeck 需要 Java 8 或 Java 11 正常運行。 如果默認情況下未安裝,請使用以下命令安裝 Java。

一、更新倉庫的緩存

$ sudo apt update

現在要安裝 Java 11,請運行以下命令:

$ sudo apt install openjdk-11-jre-headless

您可以驗證版本:

java -version

第 2 步:在 Ubuntu 上安裝 MySQL

Rundeck 支持 MySQL、PostgreSQL、Oracle 和 MS SQL Server 來存儲其數據。 在我們的例子中,我們將使用 MySQL。

要在 Ubuntu 上安裝 MySQL,請運行以下命令:

$ sudo apt install mysql-server

然後在啟動時啟用MySQL服務,輸入:

$ sudo systemctl enable mysql-server

現在訪問數據庫:

$ mysql -u root -p

創建 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

第 3 步:在 Ubuntu 20.04 上安裝 Rundeck

在這裡,我們將安裝 Rundeck 社區版本。 你可以 下載 deb 包 通過填寫表格或從官方存儲庫直接從網站獲取文件。

在這裡我要從安裝 官方倉庫 這始終確保擁有最新版本。

為此,我們將首先導入 repo 簽名密鑰。

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

然後我們添加Rundeck的sources list文件 /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

更新存儲庫的緩存

$ sudo apt update

現在,使用 apt 命令安裝 Rundeck,輸入:

$ sudo apt install rundeck

我們現在需要告訴 Rundeck 如何連接數據庫。 我們將編輯其配置文件並進行一些更新。 確保用與您的配置匹配的良好值替換已經存在的行

$ 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

如果您安裝了另一個數據庫,那麼一些配置應該會發生變化。

現在在啟動時啟用服務

$ sudo systemctl enable rundeckd.service

然後,啟動 Rundeck 服務:

$ sudo systemctl start rundeckd.service

您可以查看狀態

$ 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.

我們應該首先更改默認密碼 admin 用戶作為默認用戶仍然是 admin

$ sudo vim /etc/rundeck/realm.properties

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

此時,如果您想檢查一切是否正常,您可以嘗試使用 IP 和端口 4440 訪問 Rundeck,但您需要先在防火牆上打開它。

由於我們將使用 Nginx,因此我們需要編輯其他一些配置文件來修改 Rundeck 的 URL。 我們需要指明 Nginx 將用於訪問 Rundeck 的 URL。 我們將首先編輯 /etc/rundeck/framework.properties 配置文件

$ sudo vim /etc/rundeck/framework.properties

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

然後我們將重新編輯 /etc/rundeck/rundeck-config.properties 配置文件。 它是我們過去用來指示服務器的 IP 地址和默認端口的一個,但現在將放置域名。

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

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

第 4 步:SSL 終止代理

這裡我們將使用 Nginx 作為 反向代理 用於 SSL 終止。 這有助於 Rundeck 支持 SSL/HTTPS。

Nginx 在 apt 存儲庫中可用,您可以使用以下命令簡單地安裝:

$ sudo apt install nginx

現在您需要復制 Rundeck 域的證書。

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

您還需要復制密鑰

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

讓我們刪除默認配置文件以避免任何衝突

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

現在讓我們創建 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;
}
}

現在讓我們啟用配置文件

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

檢查 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

第 5 步:訪問 Rundeck 界面

現在您可以轉到瀏覽器並使用 URL https://rundeck.domain.com 訪問 Rundeck

對於 Rundeck Web 界面訪問,用戶名是 admin 密碼是我們之前編輯的那個 NEW_ADMIN_PASSWORD.

現在您可以訪問您的 Rundeck

Rundeck 儀表板

您可以創建一個新項目以開始配置。

結論

在本教程中,我們學習瞭如何在 Ubuntu 20.04 服務器上安裝 Rundeck 社區版。 您可以進行一些配置並創建一個新項目以開始使用您的 Rundeck