Rundeck(一)安装与启动

目录

自动化运维工具rundeck

它能做什么

系统环境

下载与安装

主要的目录(RPM)

配置与启动(单节点)

配置mysql

mysql初始化

配置URL

启动rundeck

指定java版本

启动与开机启动

简单的配置一个nginx 代理

登录

升级

通用 RPM/YUM方式

通用war 包方式

问题汇总

问题1

问题2

问题3


自动化运维工具rundeck

GitHub - rundeck 是java开发的开源自动化服务,具有 Web 控制台、命令行工具和 WebAPI。它使您可以轻松地跨一组节点运行自动化任务,适合运维自动化管理、自动发布管理、运维数据分析等

它能做什么

  • 分布式命令执行
  • 工作流程(包括参数传递、条件、错误处理和多种工作流程策略)
  • 可插拔执行系统(默认为 SSH 和 WinRM;可使用 PowerShell)
  • 可插拔资源模型(从外部系统获取基础设施的详细信息)
  • 按需(Web GUI、API 或 CLI)或计划的作业执行
  • 支持密码和密钥
  • 基于角色的访问控制策略,支持 LDAP/ActiveDirectory/SSO
  • 可编辑/管理访问控制策略
  • 历史和审计日志
  • 使用任何脚本语言

社区版本基本够用,社区vs企业 | Rundeck

功能文档: 使用文档

系统环境

#环境要求:
    https://docs.rundeck.com/docs/administration/install/system-requirements.html

测试环境:
    openjdk version "11.0.22"
    CentOS Linux release 7.4.1708 (Core) 
    rundeck-5.2.0.20240410-1
    Database:mysql Server 5.7.36   #MySQL5.6已经禁用了,MySQL5.7 需要utf8mb4字符集,推荐MySQL8.0
    Logstore:syslog

下载与安装

下载地址
pagerduty/rundeck - Packages · packagecloud
Rundeck Community Version History
注意:Rundeck 5.0.x 需要在 Java 11 上运行
error: Failed dependencies:
有其他版本的java正在使用 -见 问题1
ubuntu debian windows tomcat docker 安装请查看官网
#https://docs.rundeck.com/docs/administration/install/
# 【java】 如果没有安装,可以使用官方推荐的java和rundeck
curl https://raw.githubusercontent.com/rundeck/packaging/main/scripts/rpm-setup.sh 2> /dev/null | sudo bash -s rundeckpro
sudo yum install java rundeckpro-enterprise #pro

# RPM 方式安装
yum localinstall rundeck-5.2.0.20240410-1.noarchm
rpm -ql  rundeck     # 查看安装路径主要目录
    /etc/rundeck/    # 主要配置文件
    /var/lib/rundeck # lib库、日志、work目录等

# war 包方式安装
 mkdir -p /opt/app/rundeck
 cd /opt/app/rundeck/
 wget https://packages.rundeck.com/pagerduty/rundeck/packages/java/org.rundeck/rundeck-4.17.6-20240402.war?distro_version_id=167
 java -Xms4g -Xmx4g -Xmn1024m  -jar  rundeck-5.2.0.20240410-1.war   # 启动
 #第一次启动需要等待一小会(383.544 s),担心卡死的可以使用 strace 命令查看一下,最后看到就是成功
 Grails application running at http://localhost:4440 in environment: production

# 后面都是用 rpm 安装为例
主要的目录(RPM)
/etc/rundeck/               # 主要配置文件
├── profile
├── project.properties
└── rundeck-config.properties

/var/lib/rundeck/           #也是用户家目录 
├── bootstrap               # war程序目录
├── data                    # H2数据库目录 --改为mysql
├── i18n                    # 本地化目录
├── libext                  # lib目录
├── projects                # 项目配置
├── repository              # 插件存储库
├── var                     # Cache目录
└── work

/var/log/rundeck            #日志目录

配置与启动(单节点)

首先看看框架的默认配置文件framework.properties,可以看到大致的web信息和重要目录配置,修改之前先备份rundeck-config.properties

配置mysql
Database Configuration Overview
支持mysql、 postgresql、 sql server 、 oracle
配置文件:
RPM: /etc/rundeck/rundeck-config.properties
WAR: $RDECK_BASE/server/config/rundeck-config.properties
注意:mysql需要授权 REFERENCES 权限 - 见 问题2
#注释
#dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=MONTH,HOUR,MINUTE,YEAR,SECONDS

# 添加如下配置:
dataSource.driverClassName = org.mariadb.jdbc.Driver 
dataSource.url = jdbc:mysql://myserver/rundeck?autoReconnect=true&useSSL=false    
    #autoReconnect=true 连接保活 修复 Rundeck 服务器与 Mysql 的连接在一段时间内不活动后被中断,从而导致错误消息:“消息:无法从服务器读取响应"
dataSource.username = rundeckuser 
dataSource.password = rundeckpassword
#使用带有特殊字符的密码时,等号后面不要有空格
mysql初始化
mysql> create database rundeck;
mysql> create user 'rundeckuser'@'localhost' identified by 'rundeckpassword';
mysql> grant ALL on rundeck.* to 'rundeckuser'@'localhost';
mysql> GRANT REFERENCES ON *.* TO 'rundeckuser'@'localhost'; 
配置URL
web访问登录后的跳转地址
配置文件:
RPM: /etc/rundeck/rundeck-config.properties
WAR: $RDECK_BASE/server/config/rundeck-config.properties
我前端是nginx代理了 所以就改成 rundeck.example.com
登录后一直转圈圈 - 问题3
# change hostname here
grails.serverURL=http://rundeck.example.com   #不能有空格       
# rundeck.multiURL.enabled=true 多域名配置
# 设url前缀, 默认是'/',此配置可以很好的集成到其他系统中,共用同一个域名。
# grails.serverURL=http://rundeck.example.com/rundeck
# server.servlet.context-path=/rundeck    #不能有空格

启动rundeck

指定java版本
若环境中有其他版本的java 正在使用,后续启动时需要指定java版本
#/etc/passwd
# rundeck:x:1007:1007::/var/lib/rundeck:/bin/bash

#指定加载java版本
runuser -u rundeck vim /var/lib/rundeck/.bash_profile
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.22.0.7-1.el7_9.x86_64
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
启动与开机启动

#第一次启动需要初始化,需要等待一小会,最后看到就是成功 Grails application running at http://localhost:4440 in environment: production

# 默认启动端口
> 4440 (http)
> 4443 (https)
> 5985(Windows  http )
> 5986(Windows   https )

# 命令支持功能
rundeckd [start|stop|restart|condrestart|status]

# RPM 安装方式启动
# 脚本位置:/etc/init.d/rundeckd 
# 添加开机启动
    chkconfig rundeckd on 
#启动
    service rundeckd start 
    systemctl status rundeckd 

# war 包方式
启动:
export RDECK_BASE='/opt/app/rundeck/'
$RDECK_BASE/server/sbin/rundeckd start 

# war默认监听的 127.0.0.1

简单的配置一个nginx 代理

当然也可以不用nginx代理,用 http://ip:4440 直接访问
upstream rundeck_upstream {
        server 127.0.0.1:4440;
}

server{
        listen   80;
        server_name rundeck.example.com;

        access_log /data/logs/nginx/rundeck.example.com.access.log json;
        error_log /data/logs/nginx/rundeck.example.com.error.log;

        location / {
                real_ip_header X-Forwarded-For;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://rundeck_upstream;
        }
}

登录

默认用户名: admin 默认用户密码: admin

升级

升级之前做好数据和代码的备份。 不同的版本升级方式不一致,请查看升级说明 General Upgrade Guide,支持H2数据库升级,从 4.1+ 升级到 5.0,需要更新数据库结构
通用 RPM/YUM方式
在 RPM 或 Yum 升级的情况下,任何更改的配置文件都不会被修改,并且新文件将以扩展名保存 .rpmnew。如果您更改了配置文件,请将其与该 .rpmnew文件进行比较,以了解可能需要包含哪些更改。
#rpm 
rpm -Uvh rundeck-5.2.0.20240410-1.noarch

warning: /etc/rundeck/framework.properties created as /etc/rundeck/framework.properties.rpmnew
warning: /etc/rundeck/rundeck-config.properties created as /etc/rundeck/rundeck-config.properties.rpmnew
rundeck.server.uuid = XXXXXXXXXXXXXXX

#yum
yum upgrade rundeck
通用war 包方式
https://docs.rundeck.com/docs/upgrading/upgrading.html#runnable-war

问题汇总

问题1

error: Failed dependencies:

java-11-headless is needed by rundeck-0:5.2.0.20240410-1.noarch

安装
yum install java-11-headless
版本切换 - 永久:
update-alternatives --display java
update-alternatives --config java
版本切换 - 临时:
若环境中有其他版本的java 正在使用,后续启动时需要指定java版本
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.22.0.7-1.el7_9.x86_64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH 

# java -version
openjdk version "11.0.22" 2024-01-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.22.0.7-1.el7_9) (build 11.0.22+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.22.0.7-1.el7_9) (build 11.0.22+7-LTS, mixed mode, sharing)
问题2

liquibase.exception.DatabaseException: (conn=9387) REFERENCES command denied to user

REFERENCES-command-denied-to-user错误详解 - 云数据库RDS | 百度智能云文档
在5.5和5.6版本中只需要增删查改权限即可,而5.7正式启用REFERENCES权限,需要显示的授予REFERENCES权限才能创建外键关系到表。
解决方案
对MySQL5.7版本的数据库账户,显示的授予REFERENCES权限,解决导入含外键关系表的过程中导致的报错。
GRANT REFERENCES ON *.* TO 'rundeckuser'@'localhost';
问题3

登录一直转圈,提示:Request URL: http://****:4440/ 不通

rundeck-config.properties 配置错误,需要改成你实际访问的地址
grails.serverURL= http://rundeck.example.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值