文档章节

rundeck入门-基础知识

China_OS
 China_OS
发布于 2015/10/15 16:08
字数 2377
阅读 1355
收藏 1
点赞 0
评论 0

Rundeck这个产品很早就知道了,不过一直没有时间尝试,当时也没有相关的应用场景,最近cron job是越来越多,管理起来很是麻烦,忽然记起来还有Rundeck这么一个工具,决定先具体调研一番,看看是否能完全解决我的问题。

    rundeck是一款开源的可以帮助你在数据中心或者云环境自动运行日常程序的软件,rundeck提供了一些特性来缓解费事繁琐的工作,并且很容易让你扩展自己的自动化成果。rundeck允许你在web界面或者命令行上指定在任何节点运行任务。rundeck也包含了其他特性来容易的扩展的你的自动化成果,例如:访问控制、工作流构建、调度、日志等等。

    rundeck的特性如下:

  •     提供web api
  •     分布式命令执行
  •     可插拔的系统插件
  •     多步骤工作流构建
  •     以守护进程执行job或者调度运行
  •     图形化web控制台来控制job执行
  •     基于规则的访问控制,支持LDAP/AD
  •     历史及构建日志查看
  •     可以集成到外部工具
  •     命令行控制工具

先看看一些概念和术语:

    role-based access control policies

        rundeck的访问控制策略,授权用户和用户组以授权的权限来操作rundeck的资源,例如:project、job、nodes、commands、api。

    projects

        project是一个管理各个项目的地方,rundeck的活动都是在各自的project范围内进行活动,可以在一个rundeck server上设置多个project,多个project可以同一台rundeck server上进行操作维护。

     jobs

        job是一个封装的操作步骤序列,job选择节点和执行的步骤。

    nodes

        rundeck server可以访问的物理机或者虚拟机实例,资源以node模式在一个project中表示

    commands

        在node上可执行的单个字符串命令,rundeck通过node executor调用nodes上的commands。

    executions

        表示已经完成或者正在运行的command或者job,这些数据可以用来监控job的执行状态

    plugins

        rundeck 支持的第三方插件


下面我们看看rundeck的一些详细介绍:

    rundeck是一个服务端的应用,是一个由你控制的中央管理控制系统。在内部,rundeck存储job的定义和执行结果在一个关系数据库中,command和job执行结果的输出则保存在磁盘上,你也可以把这些结果重定向到远程存储上,例如:S3、logstash。rundeck分发分布式执行命令是通过可插拔的执行插件来分发的,默认是使用SSH,但是你也可以使用其他插件,例如:salt,或者你自定义的方法。rundeck服务端也可以配置在远程服务器上以哪个用户执行命令。

    rundeck是一个基于java的应用,需要jdk1.7的版本,该应用包括一个图形接口和一个网络接口,访问rundeck需要经过用户认证。运行rundeck不需要root或者管理员权限,我们建议使用一个单独的用户运行rundeck。rundeck启动后一般监听两个端口:http(4440)、https(4443)。保证客户端的22端口是被SSH监听的,因为rundeck默认使用ssh public-key来连接客户端。由于rundeck是基于java的,因此你在启动的时候可以修改一些默认配置,比如web端口之类的,格式如下:-Dproperty=value,加在java启动参数中即可,可以设置以下内容:

server.http.port The HTTP port to use for the server, default "4440"
    server.https.port The HTTPS port to use or the server, default "4443"
    server.http.host Address/hostname to listen on, default is all addresses "0.0.0.0"
    server.hostname Hostname to use for the server, default is the system hostname
    server.web.context Web context path to use, such as "/rundeck". Default is "/".
    rdeck.base Rundeck Basedir to use, default is the directory containing the launcher jar
    server.datastore.path Path to server datastore dir
    default.user.name Username for default user account to create
    default.user.password Password for default user account to create
    rundeck.jaaslogin "true/false" - if true, enable JAAS login. If false, use the realm.properties file for login information.
    loginmodule.name Custom JAAS loginmodule name to use
    loginmodule.conf.name Name of a custom JAAS config file, located in the server's config dir.
    rundeck.config.name Name of a custom rundeck config file, located in the server's config dir.
    rundeck.ssl.config Path to the SSL config properties file to enable SSL. If not set, SSL is not enabled.
    rundeck.jetty.connector.forwarded true/false. Set to true to enable support for "X-forwarded-*" headers which may be sent by a front-end proxy to the rundeck server. See Using an SSL Terminated Proxy.
    rundeck.jetty.connector.ssl.excludedProtocols Comma-separated list of SSL protocols to disable. Default: 'SSLv3'. See Disabling SSL Protocols.
    rundeck.jetty.connector.ssl.includedProtocols Comma-separated list of SSL protocols to include. Default is based on available protocols. See Disabling SSL Protocols.
    rundeck.jetty.connector.ssl.excludedCipherSuites Comma-separated list of Cipher suites to disable. No default. See Disabling SSL Protocols.
    rundeck.jetty.connector.ssl.includedCipherSuites Comma-separated list of Cipher suites to enable. Default is based on available cipher suites. See Disabling SSL Protocols.

    rundeck支持多用户配置,安装完毕后,会自动创建两个用户:user 是用来执行job和command的,密码是user。admin 是管理员用户,属于admin group,密码是admin。在浏览机器中访问即可,第一次登录rundeck时会让你创建一个project,project name可以包含数字以及字母,但是不能包含空格和特殊字符。

安装启动rundeck

    rundeck官方提供rpm和deb包,选择符合你操作系统的软件包即可,当然官方也提供编译好的tar包。我选择的是deb包:rundeck-2.5.2-1-GA.deb。安装完成后直接启动:/etc/init.d/rundeckd start

    如果你选择的已经编译好的tar包,则这样启动:$RDECK_BASE/server/sbin/rundeckd start


下面介绍一下rundeck的各个组件

project

    一个project就是一个管理独立活动的地方,rundeck的所有活动都发生在它自己的project范围内。多个project可以在一个rundeck server上进行维护,各个project之间是互相独立的,因此你可以像在一台单独的rundeck server上组织他们,你可以管理不同的基础设施、环境、应用。所以,在刚部署完毕的rundeck之后,第一件事就是创建project


    在rundeck 2.4以及之前,所project的定义和配置文件是存储在本地文件系统上的,自从rundeck 2.5开始,你可以设置把定义和配置文件存储在数据库上。需要在rundeck-config.properties配置文件中增加:rundeck.projectsStorageType=db或者filesystem,如果你以及使用了一个基于filesystem的存储系统,当你修改为db,重启rundeck之后,project会自动的加载进数据库中。这里的数据库不是mysql之类的关系数据库,是rundeck自己的Storage Facility数据库。

    当你使用基于fileststem的配置存储系统,每个project都有一个配置文件,叫做project.properties,位置在:/var/rundeck/projects/project-name/etc/project.properties。

    配置解释:http://rundeck.org/docs/administration/configuration-file-reference.html#project.properties

    我们可以通过web管理截面创建project,也可以通过rd-project命令行创建project。project的名称由字母数字构成,但是不能包含空格和特殊字符。输入project名称创建,rundeck会自动初始化,并跳转到job页面。

    如果创建了一个project,又希望时间久了还能记住该project的作用,你可以创建一个readme.md文件,来简单的介绍一个该project的作用,readme.md文件可以是markdown格式、甚至可以可以包含图片,这个readme.md文件默认是不自带的,你可以自建后,放置于/var/rundeck/projects/project-name/readme.md,然后在总的project管理截面会看到相关project的readme.md内容。

node

    Resource Model就是设置一组nodes,rundeck可以分发commands到这些nodes上。每个project都有自己的Resource Model。project创建完毕后,会有一个初始化的resource model文件包含一些rundeck server的信息,而且只能在本地运行command,你可以在nodes界面浏览这些信息。node的resource会包含一些基础的属性,例如hostname,但也有一些有用的属性,例如tags,tag就是你给该node的标签,一个node可以有多个标签,你可以通过标签对node进行分组。

    在project初始化之后,project会创建一个resource model source文件,project.properties文件中有resource model文件的配置路径(project.resources.file),一般在/var/rundeck/projects/project-name/etc/resources.xml。也可以为一个project配置多个Resource Model Sources,刚才说来Resource Model就是定义一组nodes,因此在一个Resource Model Sources文件中你可以定义多个node。Resource Model Sources文件目前支持两种格式:XML和YAML,默认是XML。

logging

    rundeck安装完毕后,在log目录下会有多个日志文件产生,默认日志路径是:/var/log/rundeck,会有以下日志文件:

command.log: Shell tools log their activity to the command.log
    rundeck.audit.log: Authorization messages pertaining to aclpolicy
    rundeck.job.log: Log of all job definition changes
    rundeck.options.log: Logs remote HTTP requests for Options JSON data
    rundeck.log: General Rundeck application messages
    service.log: Standard input and output generated during runtime

command

    command可以设置在node上执行你配置的命令,rundeck的图形截面提供了设置command的截面,设置完成后,rundeck通过ssh或者通过dispatch工具来执行命令。注意:你能够查看的节点以及能够执行哪些命令,是受ACL策略限制的。


后端使用RDB Database

    rundeck默认使用文件来存储数据,你也可以配置rundeck使用RDB来存储数据,比如:mysql。需要修改rundeck-config.properties文件的dataSource配置项。如下:
dataSource.url = jdbc:mysql://myserver/rundeckdb?autoReconnect=true
dataSource.username = dbuser
dataSource.password = dbpass
dataSource.driverClassName=com.mysql.jdbc.Driver
    使用jdbc连接mysql,rundeck默认已经自带了mysql的jdbc驱动,不需要你另外安装。


© 著作权归作者所有

共有 人打赏支持
China_OS
粉丝 403
博文 438
码字总数 487778
作品 0
徐汇
技术主管
运维利器 RunDeck 2.11.1 发布,服务器自动化操作

RunDeck 2.11.1 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大...

局长
05/06
0
0
运维利器 RunDeck v3.0.0-beta1,服务器自动化操作

RunDeck v3.0.0-beta1 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操...

达尔文
07/08
0
0
运维利器 RunDeck 2.11.5 发布,服务器自动化操作

RunDeck 2.11.5 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大...

达尔文
07/07
0
0
运维利器 RunDeck 2.11.4 发布,服务器自动化操作工具

RunDeck 2.11.4 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大...

达尔文
06/09
0
0
运维利器 RunDeck 2.11.3 发布,服务器自动化操作

RunDeck 2.11.3 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大...

达尔文
05/12
0
0
RunDeck v2.11.0发布,带来大量新特性与 bug 修复

RunDeck v2.11.0发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大大...

雨田桑
04/28
0
0
运维利器 RunDeck 2.11.2 发布,服务器自动化操作

RunDeck 2.11.2 已发布,RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面,用户可以对任意数量的服务器进行操作,大...

局长
05/11
0
0
Rundeck crontab格式

rundeck的crontab任务不同于Linux上边的,它精确到秒级别。另外它还存在几个关键的注意事项。 官网链接:http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger ...

陈延宗
06/29
0
0
SaltStack;以及与AnsibleWorks,Chef-solo,puppet等等等的比较!

SaltStack;以及与AnsibleWorks,Chef-solo,puppet等等等的比较! ...       http://www.vpsee.com/2013/08/a-system-configuration-management-and-orchestration-tool-saltstack/ 系统......

carocy
2017/10/31
0
0
rundeck入门-初步操作

本章就初步的操作一下rundeck web界面,主要分为project、node、command、activity四个方面。下面会有大量的图片展示。 0 login,密码和用户名均是admin 1 project 安装完毕第一次登录时会让...

China_OS
2015/10/16
504
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect(spawn) 自动化git提交和scp拷贝---centos(linux)

**在进行SCP文件拷贝中,往往需要进行用户密码的输入,即用户交互。若采用自动化脚本的方式进行,则可用以下方式: ** #!/usr/bin/expect #设置参数 set src [lindex $argv 0] set dest [lin...

helplove
8分钟前
1
0
用Build来构建对象的写法

如果一个类的属性过多,用构造器来构建对象很难写,因此我们时用Build方式来构建对象。写法大致如下。 import java.io.Serializable;import java.util.Date;public class Log impleme...

算法之名
10分钟前
11
0
利用 acme.sh 获取网站证书并配置https访问

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.(https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E) 主要步骤: 安装 acme.sh 生成证书 copy 证书到 nginx/ap...

haoyuehong
23分钟前
2
0
微擎框架内如何根据media_id获取到微信图片的路径

微擎的框架内,图片选择后,获取的是那个字符串是media_id,相当于你这张图片在微信的图片服务器里面的id 要求是:获取https://mmbiz.qpic.cn/mmbiz_jpg/…… 微信图片的路径 而微信并没有根据m...

老bia同学
27分钟前
1
0
Spring boot中日期的json格式化

Model 在model层中,类的日期属性上面添加如下注解: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss") 参考 Jackson Date格式化教程...

亚林瓜子
29分钟前
2
0
Eclipse:Failed to load the JNI shared library

1.问题背景: 由于我之前使用jdk1.9学习,当使用Luke的时候发现jdk版本过高,需要向下配置jdk,就向朋友拷了一个安装包。重新配置路径后,便开始报错。 2.问题描述: Failed to load the JNI...

tinder_boy
31分钟前
1
0
少儿学习编程课程是否真的适合七八岁的低龄儿童[图]

少儿学习编程课程是否真的适合七八岁的低龄儿童[图]: 天下熙熙皆为利来,天下攘攘皆为利往。 这几年来,乐高教育机构在国内如同雨后春笋般出现,当然关闭/转手的也很多。从教师角度来看,部...

原创小博客
37分钟前
1
0
ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
45分钟前
2
0
http状态码与ajax的状态值

ajax状态值 1.1 200 & OK:状态请求成功

litCabbage
48分钟前
2
0
iOS动画效果合集、飞吧企鹅游戏、换肤方案、画板、文字效果等源码

iOS精选源码 动画知识运用及常见动画效果收集 3D卡片拖拽卡片叠加卡片 iFIERO - FLYING PENGUIN 飞吧企鹅SpriteKit游戏(源码) Swift封装的空数据提醒界面EmptyView 沙盒文件浏览与分享调试控...

sunnyaigd
51分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部