[Inhaltsverzeichnis]
Was ist Rundeck?
Rundeck ist eine kostenlose Open-Source-Software zur automatischen Verwaltung von Servern ( Linux , Windows und MacOS ) über geplante Jobs .
Rundeck basiert auf der Idee, alle Server in einem Computernetzwerk von einem Verwaltungsserver aus zu verwalten. Rundeck bietet eine Webschnittstelle zur Ausführung dieser Verwaltungsaufgaben.
Rundeck ist in der Programmiersprache Java geschrieben und wird unter der Apache Software 2.0- Lizenz vertrieben.
Rundeck bietet Enterprise Edition (kommerziell) und Community Edition (kostenlos) an . Im Vergleich zur Rundeck Community Edition bietet Rundeck Enterprise mehr Funktionen, die Sie jedoch bezahlen müssen.
Rundeck-Funktionen:
Die Kernfunktionen von Rundeck sind:
- Web-API
- Steckbares Ausführungssystem (Standard ist SSH)
- Verteilte Befehlsausführung
- Mehrstufiger Workflow
- Grafische Webkonsole zum Ausführen von Befehlen und Jobs
- Rollenbasierte Zugriffssteuerungsstrategie
- Führen Sie Jobs nach Bedarf oder nach Zeitplan aus
- Befehlszeilenschnittstellen-Tool
- Verlauf und Überwachungsprotokoll
Umweltspezifikationen:
- CPU : 3,4 GHz (2 Kerne)
- RAM : 2 GB
- Speicherplatz : 20 GB
- Betriebssystem : CentOS 8.2
- Hostname : rundeck.lianglab.cn
- IP-Adresse : 192.168.6.200/24
Schritt 1: Installieren Sie das Software-Upgrade unter CentOS 8
Verwenden Sie das SSH- Tool, um eine Verbindung mit rundeck.lianglab.cn als Root- Benutzer herzustellen .
Verwenden Sie den Befehl dnf , um alle in CentOS 8 installierten Pakete zu aktualisieren.
[root@mariadb ~]# hostnamectl set-hostname rundeck.lianglab.cn
[root@mariadb ~]# dnf update -y
Dependencies resolved.
Nothing to do.
Complete!
Unser CentOS 8-Server ist bereits auf dem neuesten Stand und hat daher nichts mit dem Linux-Paketmanager zu tun.
Schritt 2: Installieren Sie Java unter CentOS 8
Rundeck ist in der Programmiersprache Java geschrieben und benötigt zur Ausführung JRE (Java Runtime Environment) .
Daher installieren wir OpenJDK unter CentOS 8 in unserem Standard-Yum-Repository, wie unten gezeigt.
[root@mariadb ~]# dnf install -y java-1.8.0-openjdk
...
Installed:
java-1.8.0-openjdk-1:1.8.0.252.b09-2.el8_1.x86_64
gtk2-2.24.32-4.el8.x86_64
alsa-lib-1.1.9-4.el8.x86_64
copy-jdk-configs-3.7-1.el8.noarch
fribidi-1.0.4-7.el8_1.x86_64
gdk-pixbuf2-modules-2.36.12-5.el8.x86_64
giflib-5.1.4-3.el8.x86_64
graphite2-1.3.10-10.el8.x86_64
gtk-update-icon-cache-3.22.30-4.el8.x86_64
harfbuzz-1.7.5-3.el8.x86_64
hicolor-icon-theme-0.17-2.el8.noarch
jasper-libs-2.0.14-4.el8.x86_64
java-1.8.0-openjdk-headless-1:1.8.0.252.b09-2.el8_1.x86_64
javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch
jbigkit-libs-2.1-14.el8.x86_64
libX11-1.6.7-1.el8.x86_64
libX11-common-1.6.7-1.el8.noarch
libXau-1.0.8-13.el8.x86_64
libXcomposite-0.4.4-14.el8.x86_64
libXcursor-1.1.15-3.el8.x86_64
libXdamage-1.1.4-14.el8.x86_64
libXext-1.3.3-9.el8.x86_64
libXfixes-5.0.3-7.el8.x86_64
libXft-2.3.2-10.el8.x86_64
libXi-1.7.9-7.el8.x86_64
libXinerama-1.1.4-1.el8.x86_64
libXrandr-1.5.1-7.el8.x86_64
libXrender-0.9.10-7.el8.x86_64
pixman-0.36.0-1.el8.x86_64
ttmkfdir-3.0.9-54.el8.x86_64
tzdata-java-2019c-1.el8.noarch
xorg-x11-font-utils-1:7.5-40.el8.x86_64
xorg-x11-fonts-Type1-7.5-19.el8.noarch
avahi-libs-0.7-19.el8.x86_64
cups-libs-1:2.2.6-28.el8.x86_64
dejavu-fonts-common-2.35-6.el8.noarch
dejavu-sans-fonts-2.35-6.el8.noarch
fontconfig-2.13.1-3.el8.x86_64
fontpackages-filesystem-1.44-22.el8.noarch
gdk-pixbuf2-2.36.12-5.el8.x86_64
lksctp-tools-1.0.18-3.el8.x86_64
Complete!
Überprüfen Sie die Version des Java- Befehls, um die Installation der Java-Laufzeitumgebung zu überprüfen .
[root@rundeck ~]# java -version
openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)
Schritt 3: Installieren Sie das Rundeck Yum-Repository unter CentOS 8
Rundeck- Software wird über das offizielle Yum-Repository vertrieben. Daher müssen wir das Rundeck yum-Repository im CentOS 8-Server hinzufügen.
Rundeck bietet ein RPM-Paket zur Installation des yum-Repositorys unter CentOS 8. Daher verwenden wir den Befehl dnf zur Installation.
[root@rundeck ~]# dnf install -y http://repo.rundeck.org/latest.rpm
Last metadata expiration check: 2:56:08 ago on Sun 27 Dec 2020 07:03:07 PM CST.
latest.rpm 1.8 kB/s | 3.0 kB 00:01
Dependencies resolved.
=====================================================================================================================
Package Architecture Version Repository Size
=====================================================================================================================
Installing:
rundeck-repo noarch 4-0 @commandline 3.0 k
Transaction Summary
=====================================================================================================================
Install 1 Package
Total size: 3.0 k
Installed size: 181
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : rundeck-repo-4-0.noarch 1/1
Verifying : rundeck-repo-4-0.noarch 1/1
Installed products updated.
Installed:
rundeck-repo-4-0.noarch
Complete!
Erstellen Sie einen Cache für Rundeck Repo.
[root@rundeck ~]# dnf makecache
CentOS-8 - Base - mirrors.tongdun.cn 1.7 MB/s | 3.9 kB 00:00
CentOS-8 - Extras - mirrors.tongdun.cn 772 kB/s | 1.5 kB 00:00
CentOS-8 - AppStream - mirrors.tongdun.c 2.5 MB/s | 4.3 kB 00:00
MariaDB 4.4 kB/s | 2.9 kB 00:00
bintray--apache-couchdb-rpm 4.2 kB/s | 1.3 kB 00:00
Extra Packages for Enterprise Linux 8 - 3.0 MB/s | 4.7 kB 00:00
Extra Packages for Enterprise Linux 8 - 1.5 MB/s | 3.0 kB 00:00
Extra Packages for Enterprise Linux 8 - 1.8 MB/s | 3.5 kB 00:00
Rundeck - Release 1.1 kB/s | 1.3 kB 00:01
Metadata cache created.
[root@rundeck ~]#
Rundeck yum Repository ist installiert.
Sieben
Schritt 4: Installieren Sie RunDeck unter CentOS 8
Jetzt können wir die Rundeck-Software mit dem Befehl dnf installieren.
[root@rundeck ~]# dnf install -y rundeck
Last metadata expiration check: 0:00:53 ago on Sun 27 Dec 2020 10:00:45 PM CST.
Dependencies resolved.
=========================================================================
Package Arch Version Repository Size
=========================================================================
Installing:
rundeck noarch 3.3.7.20201208-1 rundeck-release-bintray 172 M
Transaction Summary
=========================================================================
Install 1 Package
Total download size: 172 M
Installed size: 185 M
Downloading Packages:
rundeck-3.3.7.20201208-1.noarch.rpm 10 MB/s | 172 MB 00:16
-------------------------------------------------------------------------
Total 10 MB/s | 172 MB 00:16
warning: /var/cache/dnf/rundeck-release-bintray-330204ab97cd1651/packages/rundeck-3.3.7.20201208-1.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID e2d1065b: NOKEY
Rundeck - Release 1.7 kB/s | 3.1 kB 00:01
Importing GPG key 0xE2D1065B:
Userid : "Rundeck Build (automated builds) <[email protected]>"
Fingerprint: 85E9 DBC7 4FCB 329E DEDA DD2E 9077 0E1B E2D1 065B
From : http://rundeck.org/keys/BUILD-GPG-KEY-Rundeck.org.key
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Running scriptlet: rundeck-3.3.7.20201208-1.noarch 1/1
Preparing : 1/1
Running scriptlet: rundeck-3.3.7.20201208-1.noarch 1/1
Installing : rundeck-3.3.7.20201208-1.noarch 1/1
Running scriptlet: rundeck-3.3.7.20201208-1.noarch 1/1
Verifying : rundeck-3.3.7.20201208-1.noarch 1/1
Installed products updated.
Installed:
rundeck-3.3.7.20201208-1.noarch
Complete!
Starten und richten Sie den selbststartenden rundeckd- Dienst ein
[root@rundeck ~]# systemctl enable --now rundeckd.service
rundeckd.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable rundeckd
Sehen Sie den Status der rundeckd Service und Service - Listening - Port Informationen
[root@rundeck ~]# systemctl start rundeckd.service
[root@rundeck ~]# systemctl status rundeckd.service
● rundeckd.service - SYSV: rundeckd, providing rundeckd
Loaded: loaded (/etc/rc.d/init.d/rundeckd; generated)
Active: active (running) since Sun 2020-12-27 22:05:33 CST; 1s ago
Docs: man:systemd-sysv-generator(8)
Process: 140032 ExecStart=/etc/rc.d/init.d/rundeckd start (code=exited, status=0/SUCCESS)
Main PID: 140042 (runuser)
Tasks: 0 (limit: 49642)
Memory: 2.0M
CGroup: /system.slice/rundeckd.service
‣ 140042 runuser -s /bin/bash -l rundeck -c java -Drundeck.jaaslogin=true >
Dec 27 22:05:33 rundeck.lianglab.cn systemd[1]: Starting SYSV: rundeckd, providing rundeckd.>
Dec 27 22:05:33 rundeck.lianglab.cn rundeckd[140032]: Starting rundeckd: [ OK ]
Dec 27 22:05:33 rundeck.lianglab.cn systemd[1]: Started SYSV: rundeckd, providing rundeckd.
lines 1-14/14 (END)
[root@rundeck ~]# netstat -anptl | grep 4440
tcp 0 0 0.0.0.0:4440 0.0.0.0:* LISTEN 140074/java
Rundeck-Service-Port: 4440 ist in der CentOS-Firewall zulässig .
[root@rundeck ~]# firewall-cmd --permanent --add-port=4440/tcp
success
[root@rundeck ~]# firewall-cmd --reload
success
Wenn Sie von einem anderen Computer aus auf die Rundeck-Weboberfläche zugreifen, können einige Fehler auftreten. Um dieses Problem zu lösen, müssen wir die Rundeck-Konfigurationsdatei bearbeiten.
[root@rundeck-01 ~]# vi /etc/rundeck/rundeck-config.properties
Suchen und aktualisieren Sie den Parameter grails.serverURL wie unten gezeigt.
修改之前
grails.serverURL=http://localhost:4440
修改之后
grails.serverURL=http://192.168.6.200:4440
Starten Sie den rundeckd- Dienst neu, um den Prozess mit der neuen Konfiguration neu zu laden.
[root@rundeck ~]# systemctl restart rundeckd.service
[root@rundeck ~]# systemctl status rundeckd.service
● rundeckd.service - SYSV: rundeckd, providing rundeckd
Loaded: loaded (/etc/rc.d/init.d/rundeckd; generated)
Active: active (running) since Sun 2020-12-27 22:12:07 CST; 20s ago
Docs: man:systemd-sysv-generator(8)
Process: 140813 ExecStop=/etc/rc.d/init.d/rundeckd stop (code=exited, status=0/SUCCESS)
Process: 140848 ExecStart=/etc/rc.d/init.d/rundeckd start (code=exited, status=0/SUCCESS)
Main PID: 140858 (runuser)
Tasks: 0 (limit: 49642)
Memory: 1.9M
CGroup: /system.slice/rundeckd.service
‣ 140858 runuser -s /bin/bash -l rundeck -c java -Drundeck.jaaslogin=true >
Dec 27 22:12:07 rundeck.lianglab.cn systemd[1]: Starting SYSV: rundeckd, providing rundeckd.>
Dec 27 22:12:07 rundeck.lianglab.cn rundeckd[140848]: Starting rundeckd: [ OK ]
Schritt 5: Rundeck konfiguriert das MySQL-Datenbank-Backend
Standardmäßig verwendet Rundeck die H2-Datenbank als Repository. Es wird jedoch nicht empfohlen, die H2- Datenbank in einer Produktionsumgebung zu verwenden . Daher haben wir MySQL als Rundecks Datenbank-Backend konfiguriert .
[1] Stellen Sie eine Verbindung zum MySQL-Datenbankserver her. Wenn Sie keinen laufenden MySQL-Datenbankserver haben, benötigen Sie CentOS 8.2, um den MariaDB 10.5.3-Datenbankdienst bereitzustellen .
[root@rundeck ~]# mysql -u root -plianglab@123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.5.8-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
[2] Erstellen Sie eine Datenbank für den Rundeck-Server.
MariaDB [(none)]> create database rundeck;
Query OK, 1 row affected (0.001 sec)
[3] Erstellen Sie einen Datenbankbenutzer und gewähren Sie die für die Rundeck- Datenbank erforderlichen Berechtigungen.
MariaDB [(none)]> grant ALL on rundeck.* to 'rundeckuser'@'localhost' identified by 'lianglab123';
Query OK, 0 rows affected (0.001 sec)
[4] Laden Sie die Berechtigungstabelle neu.
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)
Beenden Sie die MySQL-Shell.
MariaDB [(none)]> exit
Bye
[5] Bearbeiten Sie nun die Rundeck-Konfigurationsdatei.
[root@rundeck-01 ~]# vi /etc/rundeck/rundeck-config.properties
[6] Suchen und aktualisieren Sie die folgenden Parameter in dieser Datei. (Wenn Sie keine Parameter finden können, fügen Sie diese bitte hinzu.)
修改前
# change hostname here
grails.serverURL=http://192.168.6.200:4440
dataSource.dbCreate = update
dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true
修改后
# change hostname here
grails.serverURL=http://192.168.6.200:4440
dataSource.dbCreate = update
#dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true
dataSource.url = jdbc:mysql://192.168.6.200/rundeck?autoReconnect=true
dataSource.username=rundeckuser
dataSource.password=lianglab123
dataSource.driverClassName=com.mysql.jdbc.Driver
[7] Starten Sie den rundeckd- Dienst neu, um die Änderungen zu übernehmen.
[root@rundeck ~]# systemctl restart rundeckd.service
[root@rundeck ~]# systemctl status rundeckd.service
● rundeckd.service - SYSV: rundeckd, providing rundeckd
Loaded: loaded (/etc/rc.d/init.d/rundeckd; generated)
Active: active (running) since Sun 2020-12-27 22:22:50 CST; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 141411 ExecStop=/etc/rc.d/init.d/rundeckd stop (code=exited, status=0/SUCCESS)
Process: 141451 ExecStart=/etc/rc.d/init.d/rundeckd start (code=exited, status=0/SUCCESS)
Main PID: 141461 (runuser)
Tasks: 0 (limit: 49642)
Memory: 1.9M
CGroup: /system.slice/rundeckd.service
‣ 141461 runuser -s /bin/bash -l rundeck -c java -Drundeck.jaaslogin=true >
Dec 27 22:22:50 rundeck.lianglab.cn systemd[1]: Starting SYSV: rundeckd, providing rundeckd.>
Dec 27 22:22:50 rundeck.lianglab.cn rundeckd[141451]: Starting rundeckd: [ OK ]
[8] Wenn Sie Probleme beim Starten des rundeckd- Dienstes haben, sollten Sie in der Rundeck-Protokolldatei im Verzeichnis / var / log / rundeck / nach Fehlern suchen.
[2020-12-27T22:54:48,841] ERROR pool.ConnectionPool [main] - Unable to create initial connections of pool.
java.sql.SQLException: Unable to load class: com.mysql.jdbc.Driver from ClassLoader:org.springframework.boot.loader.LaunchedURLClassLoader@7a07c5b4;ClassLoader:org.springframework.boot.loader.LaunchedURLClassLoader@7a07c5b4
配置rundeck配置文件使其连接数据库
vim /etc/rundeck/rundeck-config.properties
grails.serverURL=http://192.168.6.200:4440
dataSource.dbCreate = update
#dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;MVCC=true
dataSource.url = jdbc:mysql://192.168.6.200:3306/rundeck?autoReconnect=true&useSSL=false
dataSource.username=rundeckuser
dataSource.password=lianglab123
dataSource.driverClassName=com.mysql.jdbc.Driver
[root@rundeck ~]# systemctl restart rundeckd.service
查看rundeck日志
tailf /var/log/rundeck/service.log
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
解决:
vim /etc/my.cnf
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
重启生效,需要同时修改这两个参数
【9】 Protokollansicht
[root@rundeck ~]# ls -alt /var/log/rundeck/
total 3084
-rw-r--r--. 1 rundeck rundeck 1569895 Dec 27 22:23 rundeck.log
-rw-rw-r--. 1 root root 1573703 Dec 27 22:23 service.log
drwxrwxr-x. 2 rundeck rundeck 4096 Dec 27 22:05 .
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.executions.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.options.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.audit.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.jobs.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.cleanup.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.webhooks.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.api.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.storage.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.project.log
-rw-r--r--. 1 rundeck rundeck 0 Dec 27 22:05 rundeck.access.log
drwxr-xr-x. 21 root root 4096 Dec 27 22:02 ..
Schritt 6: Erstellen Sie Ihr erstes Rundeck-Projekt
Durchsuchen Sie die URL http://192.168.6.200:4440 in einem Browser wie [Google Chrome .
Verwenden Sie den Standardbenutzernamen : admin und das Kennwort: admin, um sich bei der Rundeck- Weboberfläche anzumelden .
Klicken Sie auf die Schaltfläche Neues Projekt +, um ein neues Projekt zu erstellen.
Geben Sie die erforderlichen Details zum Projekt ein und klicken Sie auf Erstellen.
Unser Projekt wurde erstellt und befindet sich jetzt auf der Seite " Knoten bearbeiten" .
Möglicherweise wurde der Rundeck-Liste ein Knoten "Lokal" hinzugefügt . Dies ist unser Rundeck-Servercomputer, der beim Erstellen dieses Projekts automatisch hinzugefügt wird.
Schritt 7: Erstellen Sie einen neuen Job
Mein eigener Pfad unter Linux: / opt / shell, erstelle eine neue shell.sh und erteile Ausführungsberechtigungen, Skriptinhalt:
[root@rundeck shell]# vi shell.sh
[root@rundeck shell]# cat shell.sh
#!/bin/bash
date
uptime
[root@rundeck shell]# chmod 755 shell.sh
[1] Erstellen Sie unsere Aufgabe
[2] Wählen Sie einen lokalen URL-Pfad aus, geben Sie den Dateipfad ein und klicken Sie zum Speichern
[3] Rundecks Zeitplanung
[4] Wir können die Echtzeitschnittstelle zum Ausführen von Aufgaben am Standort ACTIVITY anzeigen:
Unser Rundeck-Server wurde erfolgreich installiert und konfiguriert. Informationen zur Verwendung der Rundeck-Weboberfläche finden Sie in der Rundeck-Dokumentation .