编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

0门槛的自动化管理平台,不懂技术也能玩转DevOps

wxchong 2024-10-05 02:13:12 开源技术 12 ℃ 0 评论

随着信息时代的持续发展,IT 运维面对越来越复杂的业务,越来越多样化的用户需求。处处都驱动着 IT 运维发展更加 灵活、便捷、安全、稳定。IT 运维的服务器的数量也从之前的几台,发展到集群和数据中心。自动化运维也是受到的IT领域更多的关注。今天跟大家分享一个大大降低 IT服务成本和自动化运维门槛的管理平台。

Rundeck 是用 Java 开发的开源自动化部署持续集成的工具应用。Rundeck的产品属性和Jenkis类似。提供Web界面和restapi来给用户使用,Web界面主要提供给非开发人员使用,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。

开源地址:https://github.com/rundeck/rundeck

官网地址:http://rundeck.org/

功能强大的Rundeck支持:

  1. 提供web界面和命令行来执行shell命令和job
  2. 自定义job步骤
  3. 设置shell命令/job运行周期(类似cron table的功能)
  4. 用户权限控制,支持LDAP/ActiveDirectory
  5. 保存历史日志
  6. 提供web API

通过上述的功能,Rundeck可以在任意数量的服务器上批量执行不同的任务,降低对自动化的部署、执行、维护的工作。

Rundeck 6 个基本概念

  • Projects︰ 项目,就是咱们平时理解的那样。所有的 Rundeck 活动发生在项目的上下文内。多个项目可以保持相同的 Rundeck 服务器上。
  • Jobs︰ 业务处理单元,可以理解成java中的函数把复杂命令做成一个 Job。
  • Nodes︰ 资源,简单理解成一个Server,一个节点就是一台服务器。Jobs 和Commands都是再 Node 上执行的,同样一个 Projects 可以部署到多个 Server。
  • Commands︰ 命令,对于你在的 resource.xml 中配置的 Node 可以用命令对其进行操作。也可以理解成是再 Xshell 上加了一层封装。
  • Executions︰ 执行,表示某一正在运行或已完成的命令或工作。执行数据在 rundeck 用于监测工作或命令的进展。
  • Activity:工作流,记录你最近 Commands 和 Jobs 的情况

备注:用project和tag对服务器进行分类;通过job来管理任务

Rundeck的典型应用场景

1.标准流程自动化

通过 Rundeck 定义日常标准的服务器操作过程,对服务器的操作通过Rundeck进行,便于可视化、权限控制、与审计。

2.作业调度,提供 Web 界面定义调度任务执行 shell 命令

作业调度是Rundeck的核心功能

使用场景如:

自动调度任务,提供可视化的界面查看结构反馈,支持的调度特征如:无代理、跨平台(Windows需要插件支持)、文件传输、审计报告、等等.

3.事故响应

4.自动化部署

通过持续集成系统(Jenkins)调用Rundeck实现不同环境的自动化部署和部署验证

RunDeck 安装、配置

说明:RunDeck 是用 Java/Grails 编写的,官方直接提供打包好的war包下载。其源代码供二次开发使用,其编译安装环境及过程较为复杂,故不推荐使用编译安装的方式。

1、在线安装

1.1 Debian/Ubuntu

apt-get install openjdk-8-jdk-headless
wget https://dl.bintray.com/rundeck/rundeck-deb/rundeck_3.0.8.20181029-1.201810292220_all.deb
dpkg -i rundeck_3.0.8.20181029-1.201810292220_all.deb

1.2 RedHat/CentOS

yum install java-1.8.0
rpm -Uvh https://repo.rundeck.org/latest.rpm
yum install rundeck -y
service rundeckd start

2、Rundeck配置

2.1 使用HTTP域名访问

rundeck的框架配置文件路径 $RDECK_BASE/etc/framework.properties

修改server端地址,实现域名访问。配置文件路径 $RDECK_BASE/server/config/rundeck-config.properties

grails.serverURL=http://rundeck.jiagouyun.com:4440

修改完配置文件后重启rundeck服务使其生效。域名解析正常的话,现在就可以通过域名访问系统了。

2.2 修改数据源为MySQL数据库

rundeck默认的数据是以文件的形式存储的,可以将其修改为mysql数据库。

安装MySQL数据库(略),创建rundeck数据库和用户

mysql> create database rundeck;
mysql> grant ALL on rundeck.* to 'rundeck'@'localhost' identified by 'xxxxxx';
mysql> flush privileges;

修改数据源,配置文件为 $RDECK_BASE/server/config/rundeck-config.properties

#dataSource.url = jdbc:h2:file:/home/rundeck/rundeck/server/data/grailsdb;MVCC=true
dataSource.url = jdbc:mysql://localhost:3306/rundeck?autoReconnect=true
dataSource.username=rundeck
dataSource.password=xxxxxx
dataSource.driverClassName=com.mysql.jdbc.Driver

重启服务

rundeckd restart
netstat -an | egrep '4440|4443'

2.3 配置SSL证书

Rundeck还支持https访问,配置过程参考:

用keytool工具生产keystore文件

keytool -keystore etc/keystore -alias rundeck -genkey -keyalg RSA -keypass admin -storepass admin

复制keystore为trustore文件

cp etc/keystore etc/trustore

修改ssl配置文件,路径 $RDECK_BASE/server/config/ssl.properties

keystore=/home/rundeck/rundeck/etc/keystore
keystore.password=admin
key.password=admin
truststore=/home/rundeck/rundeck/etc/truststore
truststore.password=admin

修改框架配置文件 $RDECK_BASE/etc/framework.properties

keystore=/home/rundeck/rundeck/etc/keystore
keystore.password=admin
key.password=admin
truststore=/home/rundeck/rundeck/etc/truststore
truststore.password=admin

注意以下几个参数:

framework.server.url
framework.rundeck.url
framework.server.port

修改服务端配置文件 $RDECK_BASE/server/config/rundeck-config.properties

grails.serverURL=https://rundeck.xxxxxx.com:4443

修改变量文件,$RDECK_BASE/etc/profile,增加以下参数

export RDECK_JVM="$RDECK_JVM -Drundeck.ssl.config=$RDECK_BASE/server/config/ssl.properties -Dserver.https.port=${RDECK_HTTPS_PORT}"

重启服务,访问登录页面 https://rundeck.xxxxxx.com:4443

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表