CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

[TOC]

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

¿Qué es Rundeck?

Rundeck es un software gratuito y de código abierto para administrar automáticamente servidores ( Linux , Windows y MacOS ) a través de trabajos programados .

Rundeck se basa en la idea de administrar todos los servidores en una red informática desde un servidor de administración. Rundeck proporciona una interfaz web para realizar estas tareas de gestión.

Rundeck está escrito en el lenguaje de programación Java y se distribuye bajo la licencia Apache Software 2.0 .

Rundeck proporciona edición empresarial (comercial) y edición comunitaria (gratuita) . En comparación con Rundeck Community Edition, Rundeck Enterprise proporciona más funciones, pero debe pagar por ello.

Características de Rundeck:


Las funciones principales de Rundeck son:

  • API web
  • Sistema de ejecución conectable (por defecto es SSH)
  • Ejecución distribuida de comandos
  • Flujo de trabajo de varios pasos
  • Consola web gráfica para ejecutar comandos y trabajos
  • Estrategia de control de acceso basada en roles
  • Ejecute trabajos a pedido o según lo programado
  • Herramienta de interfaz de línea de comandos
  • Historial y registro de auditoría

Especificaciones ambientales:


  • CPU : 3,4 GHz (2 núcleos)
  • RAM : 2 GB
  • Espacio de almacenamiento : 20 GB
  • Sistema operativo : CentOS 8.2
  • Nombre de host : rundeck.lianglab.cn
  • Dirección IP : 192.168.6.200/24

Paso 1: instale la actualización de software en CentOS 8


Utilice la herramienta SSH para conectarse con rundeck.lianglab.cn como usuario root .

Utilice el comando dnf para actualizar todos los paquetes instalados en CentOS 8.

[root@mariadb ~]# hostnamectl set-hostname rundeck.lianglab.cn
[root@mariadb ~]# dnf update -y
Dependencies resolved.
Nothing to do.
Complete!

Nuestro servidor CentOS 8 ya está actualizado, por lo que no tiene nada que ver con el administrador de paquetes de Linux.

Paso 2: Instale Java en CentOS 8


Rundeck está escrito en lenguaje de programación Java , por lo que necesita JRE (Java Runtime Environment) para ejecutarse.

Por lo tanto, instalamos OpenJDK en CentOS 8 en nuestro repositorio yum estándar como se muestra a continuación.

[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!

Para verificar la instalación de Java Runtime Environment , verifique la versión del comando java .

[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)

Paso 3: Instale el repositorio Rundeck Yum en CentOS 8


El software Rundeck se distribuye a través de su repositorio oficial de yum. Por lo tanto, necesitamos agregar el repositorio Rundeck yum en el servidor CentOS 8.

Rundeck proporciona un paquete RPM para instalar el repositorio de yum en CentOS 8. Por lo tanto, usamos el comando dnf para instalar.

[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!

Cree un caché para el repositorio de Rundeck .

[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 ~]# 

El repositorio Rundeck yum está instalado.

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Siete

Paso 4: Instale RunDeck en CentOS 8


Ahora, podemos instalar el software Rundeck usando el comando dnf .

[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!

Iniciar y configurar el servicio rundeckd de inicio automático

[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

Ver el estado del servicio rundeckd y la información del puerto de escucha del servicio

[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       

Puerto de servicio Rundeck: 4440 está permitido en el firewall de CentOS .

[root@rundeck ~]#  firewall-cmd --permanent --add-port=4440/tcp
success
[root@rundeck ~]#  firewall-cmd --reload
success

Si accede a la interfaz web de Rundeck desde otra computadora, pueden ocurrir algunos errores. Para resolver este problema, necesitamos editar el archivo de configuración de Rundeck.

[root@rundeck-01 ~]# vi /etc/rundeck/rundeck-config.properties

Busque y actualice el parámetro grails.serverURL como se muestra a continuación.

修改之前
grails.serverURL=http://localhost:4440

修改之后
grails.serverURL=http://192.168.6.200:4440

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Reinicie el servicio rundeckd para volver a cargar el proceso con la nueva configuración.

[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  ]

Paso 5: Rundeck configura el backend de la base de datos MySQL


Por defecto, Rundeck usa la base de datos H2 como su repositorio. Sin embargo, no se recomienda utilizar la base de datos H2 en un entorno de producción . Por lo tanto, configuramos MySQL como el backend de la base de datos de Rundeck .

[1] Conéctese al servidor de la base de datos MySQL. Si no tiene un servidor de base de datos MySQL en ejecución, necesita CentOS 8.2 para implementar el servicio de base de datos MariaDB 10.5.3 .

[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] Cree una base de datos para el servidor Rundeck.

MariaDB [(none)]> create database rundeck;
Query OK, 1 row affected (0.001 sec)

[3] Cree un usuario de base de datos y otorgue los privilegios requeridos por la base de datos Rundeck .

MariaDB [(none)]> grant ALL on rundeck.* to 'rundeckuser'@'localhost' identified by 'lianglab123';
Query OK, 0 rows affected (0.001 sec)

[4] Vuelva a cargar la tabla de privilegios.

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

Salga de MySQL Shell.

MariaDB [(none)]> exit
Bye

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

[5] Ahora edite el archivo de configuración de Rundeck.

[root@rundeck-01 ~]# vi /etc/rundeck/rundeck-config.properties

[6] Busque y actualice los siguientes parámetros en este archivo. (Si no puede encontrar ningún parámetro, agréguelo)

修改前
# 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] Reinicie el servicio rundeckd para aplicar los cambios.

[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] Si tiene problemas para iniciar el servicio rundeckd , debe buscar errores en el archivo de registro de Rundeck en el directorio / var / log / rundeck / .

[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

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

配置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】 Vista de registro

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

imagen-20201227222424525

Paso 6: crea tu primer proyecto Rundeck

Explore la URL http://192.168.6.200:4440 en un navegador como [Google Chrome .

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Utilice el nombre de usuario predeterminado : admin y contraseña: admin para iniciar sesión en la interfaz web de Rundeck .

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Haga clic en el botón Nuevo proyecto + para crear un nuevo proyecto.

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Complete los detalles necesarios sobre el proyecto y haga clic en Crear.

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Nuestro proyecto ha sido creado y ahora está en la página " Editar nodo" .

Puede encontrar que se ha agregado un nodo "Local" a la lista de Rundeck . Esta es nuestra computadora servidor Rundeck, que se agregará automáticamente al crear este proyecto.

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Paso 7: cree un nuevo trabajo

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Mi propia ruta en linux: / opt / shell, crea un nuevo shell.sh y concede permisos de ejecución, contenido del script:

[root@rundeck shell]# vi shell.sh
[root@rundeck shell]# cat  shell.sh
#!/bin/bash
date
uptime

[root@rundeck shell]# chmod 755 shell.sh 

[1] Crea nuestra tarea

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

[2] Seleccione una ruta URL local, ingrese la ruta del archivo y haga clic para guardar

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

[3] Programación de tiempos de Rundeck
CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

[4] Podemos ver la interfaz de ejecución de tareas en tiempo real en la ubicación de ACTIVIDAD:

CentOS 8.2 implementa el servidor de administración automática de trabajos Rundeck 3.3.7

Nuestro servidor Rundeck se ha instalado y configurado correctamente. Para obtener información sobre el uso de la interfaz web de Rundeck, consulte la documentación de Rundeck .

Supongo que te gusta

Origin blog.51cto.com/56281688/2575403
Recomendado
Clasificación