Rails 有人了解 theforeman 这个项目吗?

LongLonghaoran · 2021年05月18日 · 507 次阅读

不卖关子,我是来寻求帮助的😂

官方链接

以我这段时间的理解,非常简要的介绍一下

  • 这是一个用于管理软件生命周期、主机、SSL 证书、HTTP 代理等很多与进行主机配置有关的操作的工具,涉及到技术插件比较多
  • 这是它官方的架构图
  • 如图所示,该项目是以 foreman(一个用 rails 框架开发的 web 项目) 为中心的系统管理平台,利用它进一步管理其余多台主机
  • 除了这个 web 项目以外,其余的的涉及到外部主机管理的功能主要通过插件 plugin 的来提供,大致会用到的技术有:
  • libvirt 远程虚拟机管理
  • smart-proxy 智能代理,借助智能代理,统一管理外部主机配置(具体怎么用我现在也不是很清楚)
  • katello,内容管理,这个内容指的是软件包,比如用 katello 来管理使用 yum、apt 时下载软件包时,需要使用到的源,或者利用 katello 也可以自己搭建一个源
  • candlepin,这个好像是和 katello 集成在一起的,用于处理发布订阅,主机订阅之后,可以定期将我们搭建好的源中的内容推送给主机,使用 java+tomcat
  • pulp,这个好像也是和 katello 集成的,用于构建软件源仓库的,使用 python 编写
  • puppet,用于自动化安装、配置主机,内部使用 jruby 编写
  • ....etc
  • 接下来是 foreman 这个 web 项目本身,其用到的 gem、技术也和我之前写的 ruby on rails 截然不同
  • gettext 对应 i18n
  • rabl 对应 jbuilder
  • angular+react+webpacker-rails 对应 asset-pipeline(前端这块我挺傻眼的,代码规模有点大)
  • dynflow 对应 workflow
  • sidekiq 对应 foreman-task(其实仍然是用的 sidekiq,但是它封装了一层)
  • ...etc

其实我被这个项目弄的很头疼

  • 这个项目其实用到的技术挺多的,如果只是考虑搭建起来自己使用的话,还是比较方便的,官方提供了 foreman-installer 以及很多安装文档,尤其是 foreman-installer,在 rhel 环境是可以一键安装并运行的

  • 但是对于如何开发这个项目我就很头疼了 (公司已经在使用这个项目进行运维管理,会有少数开发需求,主要集中在 foreman 和 katello),不知道有没有人进行这方面开发工作,这该如何上手,看着 foreman 明明是一个 rails 项目,现在却只能在生产模式下改代码然后给它重启,着实难受

LongLonghaoran 关闭了讨论。 05月25日 17:10
需要 登录 后方可回复, 如果你还没有账号请 注册新账号