zoukankan      html  css  js  c++  java
  • CentOS 8.2部署Rundeck3.3.7计划作业自动管理服务器

    什么是Rundeck ?

    Rundeck是一个免费的开源软件,用于通过计划作业自动管理服务器(LinuxWindowsMacOS)。

    Rundeck围绕从一台管理服务器管理计算机网络中所有服务器的想法而构建。Rundeck提供了用于执行这些管理任务的Web界面。

    RundeckJava编程语言编写,并根据Apache Software 2.0许可发行。

    Rundeck提供企业版(商业)社区版(免费)。与Rundeck社区版相比,Rundeck Enterprise提供的功能更多,但需要付费使用。

    Rundeck功能:


    Rundeck的核心功能是:

    • 网络API
    • 可插拔执行系统(默认为SSH)
    • 分布式命令执行
    • 多步骤工作流程
    • 图形化Web控制台,用于执行命令和作业
    • 基于角色的访问控制策略
    • 按需或按计划运行作业
    • 命令行界面工具
    • 历史记录和审核日志

    环境规格:


    • CPU :3.4 GHz(2核)
    • 内存:2 GB
    • 储存空间:20 GB
    • 作业系统:CentOS 8.2
    • 主机名:rundeck.lianglab.cn
    • IP地址:192.168.6.200/24

    第一步:CentOS 8上安装软件升级


    使用SSH工具以root用户身份与rundeck.lianglab.cn连接。

    使用dnf命令升级CentOS 8中所有已安装的软件包。

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

    我们的CentOS 8服务器已经是最新的,因此与Linux软件包管理器无关。

    第二步:CentOS 8上安装Java


    RundeckJava编程语言编写,因此它需要JRE(Java运行时环境)来执行。

    因此,我们标准yum存储库中的CentOS 8上安装OpenJDK,如下所示。

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

    要验证Java Runtime Environment的安装,请检查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)
    

    第三步:CentOS 8上安装Rundeck Yum存储库


    Rundeck软件通过其正式的yum存储库分发。因此,我们需要在CentOS 8服务器中添加Rundeck yum存储库。

    Rundeck提供了一个RPM软件包以在CentOS 8上安装yum存储库。因此,我们使用dnf命令进行安装。

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

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

    已安装Rundeck yum存储库。

    作者:亮亮实验室
    文章:https://www.cnblogs.com/lianglab/p/14199655.html

    第四步:CentOS 8上安装RunDeck


    现在,我们可以使用dnf命令安装Rundeck软件。

    [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) <build@rundeck.org>"
     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!
    

    开启并设置自启动rundeckd服务

    [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
    

    查看rundeckd服务的状态和服务监听端口信息

    [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       
    

    在CentOS防火墙中允许Rundeck服务端口:4440

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

    如果从另一台计算机访问Rundeck Web界面,则可能会出现一些错误。要解决此问题,我们需要编辑Rundeck配置文件。

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

    查找并更新grails.serverURL参数,如下所示。

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

    重新启动rundeckd服务以使用新配置重新加载该过程。

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

    作者:亮亮实验室
    微信:lianglab
    文章:https://www.cnblogs.com/lianglab/p/14199655.html

    第五步:Rundeck配置MySQL数据库后端


    默认情况下,Rundeck使用H2数据库作为其存储库。但是不建议在生产环境中使用H2数据库。因此,我们将MySQL配置为Rundeck的数据库后端。

    【1】连接到MySQL数据库服务器。如果您没有正在运行的MySQL数据库服务器,则需要CentOS 8.2部署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】为Rundeck服务器创建数据库。

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

    【3】创建数据库用户并授予Rundeck数据库所需的特权。

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

    【4】重新加载特权表。

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

    从MySQL Shell退出。

    MariaDB [(none)]> exit
    Bye
    

    【5】现在编辑Rundeck配置文件。

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

    【6】在此文件中找到并更新以下参数。(如果找不到任何参数,请在其中添加)

    修改前
    # 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】重新启动rundeckd服务以应用更改。

    [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】如果您在启动rundeckd服务时遇到困难,则应该在/ var/log/rundeck/目录中的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
    
    

    配置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】日志查看

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

    第六步:创建您的第一个Rundeck项目

    在诸如[Google Chrome 类的浏览器中浏览URL http://192.168.6.200:4440

    使用默认用户名:admin密码:admin登录到Rundeck Web界面

    单击新建项目+按钮创建一个新项目。

    填写有关项目的必要详细信息,然后单击创建。

    我们的项目已创建,现在位于“编辑节点”页面。

    您可能会发现在Rundeck清单中已经添加了一个节点“ Local”。这是我们的Rundeck服务器计算机,在创建此项目时会自动添加。

    第七步:创建新的Job

    自己在linux下的这个路径:/opt/shell下新建一个shell.sh,并授执行权限,脚本内容:

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

    【1】创建我们的任务

    【2】选中一个本地URL路径,输入文件路径后单击进行保存

    【3】Rundeck的定时调度

    【4】我们在ACTIVITY位置可以查看到实时的任务运行界面:

    广告时间:


    • 关于我 :全国7*24高效代维服务
    • 微信:lianglab
    • QQ:867266199
    • 淘宝店全国7*24高效代维服务
    • 全国高效代维:为中小型企业,提供云计算咨询代维、架构设计、降低成本。

    我们的Rundeck服务器已成功安装和配置。有关使用Rundeck Web界面的信息,请参阅Rundeck文档

    知识共享许可协议
    本作品采用知识共享署名 4.0 国际许可协议进行许可。

  • 相关阅读:
    常用SQL语句
    H5内嵌原生app
    github 从一个仓库换到另一个仓库
    vue使用install函数把组件做成插件方便全局调用
    git 支持tree命令
    vue---vue2.x自定义plugin,给vue添加全局方法,原型上增加全局方法
    vue 生命周期函数
    登录拦截设置白名单-坑
    vue
    vue实现滚动条滚到相应高度触发动画的操作
  • 原文地址:https://www.cnblogs.com/lianglab/p/14199655.html
Copyright © 2011-2022 走看看