Foreman

一个自动化服务器生命周期的应用程序。「an application that automates the lifecycle of servers.」

Github stars Tracking Chart

Foreman

Foreman 是一个免费的开源项目,它使您能够轻松地将重复性任务自动化,快速部署应用程序,并主动管理您的服务器生命周期,无论是在内部还是在云中。

从配置和配置到协调和监控,Foreman 与您现有的基础架构集成,使操作更加简单。

使用 PuppetAnsibleChefSalt 和 Foreman 的 智能代理 架构,您可以轻松实现重复性任务的自动化,快速部署应用,并主动管理变更,无论是在内部使用VM和裸机还是在云端。

Foreman 提供了全面的、交互设施,包括 Web 前端、CLIRESTful API,使您能够在坚实的基础上构建更高级别的业务逻辑。

Foreman 是一个成熟的项目,部署在许多组织中,管理着从 10 几台到 10000 多台服务器。它被用于 RDO 和 RHOS(红帽 OpenStack 发行版)等发行版中,并拥有丰富的插件库

Foreman 特性:

  • 自动化您的混合基础设施,使操作更愉快
  • 发现、调配和升级您的整个裸机基础设施
  • 跨私有云和公共云创建和管理实例
  • 对您的主机进行分组并批量管理,而不考虑其位置
  • 查看历史更改以进行审核或故障排除
  • 根据需要通过一个健壮的插件架构进行扩展
  • 根据系统定义自动构建映像(在每个平台上),以优化部署
  • 对您的基础架构进行 LDAP 认证和 RBAC 授权
  • 还有更多

支持平台

  • CentOS,Scientific Linux 或 Oracle Linux 7,x86_64
  • Debian 8(Jessie),i386 /amd64 /armhf
  • Fedora 24,x86_64
  • 红帽企业版 Linux 7,x86_64
  • Ubuntu 16.04(Xenial),i386 /amd64 /armhf /aarch64
  • Ubuntu 14.04(Trusty),i386 /amd64
  • 其他操作系统将需要使用替代安装方法(参见手册)。
  • 安装将需要至少 4GB 内存,有关详细信息,请参阅系统要求。

安装

阅读手册的快速入门部分。如果您知道您的设置有一些特定的需要,请阅读安装方案部分

文档

我们的主要文档参考是 Foreman 手册。如果你发现了一些你想填补的空白,请在这个 repo 中贡献你的力量。

API

我们使用 apipie。那个 API 章节提供了有关访问 API 以及请求和响应布局的更多信息。另请参阅我们网站上提供的参考文档,或者通过你自己的 Foreman 安装,在 URL 上添加 /apidoc 来查看可用的 API 路由。

插件

插件是扩展和修改 Foreman 功能的工具。它们被实现为 Rails 引擎,打包成 gems,因此很容易安装到 Foreman 中。

插件页面 列出了所有可用的插件,并提供了关于如何安装和开发它们的更多信息。

如何捐助?

一般来说,请遵循 Foreman 指南。对于与代码相关的贡献,请将这个项目分叉,并发送一个包含所有改动的拉取请求。一些需要注意的事情:

遵循提交信息风格的规则,并创建一个 Redmine 问题。这样做可以帮助审稿人更快地合并你的贡献。

我们有一本开发手册来帮助开发人员了解 Foreman 开发人员如何编写代码。

Rubocop 会分析你的代码,你可以用 rake rubocop 在本地运行。

我们所有的拉取请求都会在我们的 Jenkins CI system 系统中运行完整的测试套件。请在您的拉取请求中包含测试,以满足任何功能的添加或更改。

媒介

我们在网站的媒体部分保留了一个关于 Foreman 生态系统中所有内容的讲座、教程和文章的存储库。如果你想发表你的文章,只需向 theforeman.org 资源库 提交一个拉取请求。

特别感谢

这个项目的原作者是 Ohad LevyPaul Kelly。你可以在 Contributors 中找到一个更详细的名单,其中包括对这个项目做出贡献的人。

许可证

请参阅 LICENSE 文件。

Foreman 软件库/软件包采用 GNU GPL v3 或更新版本授权,但有一些例外。
Copyright (c) 2009-2020 to Ohad Levy, Paul Kelly and their respective owners.
Foreman项目的所有版权人都在单独的文件 "Contributors "中。

除非下面有特别说明,这个程序和整个软件库都是自由软件:你可以根据自由软件基金会发布的 GNU 通用公共许可证(GNU General Public License)的条款重新发布它和/或修改它,无论是该许可证的第3版,还是任何更新的版本。

本程序发布的目的是希望它是有用的,但没有任何保证,甚至没有默示的适销性或适合特定用途的保证。请参阅 GNU 通用公共许可证了解更多详情。

您应该已经随本程序收到了一份GNU通用公共许可证的副本。如果没有,请看 GNU 许可证。

以下文件和目录是例外:

  • app/views/unattended/ztp/provision.erb is (c) 2013, Juniper Networks under 2-clause BSD license.
  • lib/tasks/convert.rake is (c) 2008, Matson Systems, Inc. under Revised BSD license.
  • extras/noVNC/websockify is (c) 2011, Joel Martin under LGPL v3 license.
  • vendor/assets/fonts/ is (c) 2011-2016, Red Hat Inc. under SIL Open Font License v1.1 or LGPL v2.1 licenses.
  • vendor/assets/javascripts/jquery.flot.axislabels.js is (c) 2010 Xuan Luo under MIT license.
  • app/assets/images/RancherOS.png is (c) 2018 Rancher Labs, Inc.

保留所有权利。

LICENSE 文件包含 GNU GPL v3 许可证的全文,以及上面提到的所有附加许可证的文本。

(Second edition: vz revised at 2020.10.15)

Overview

Name With Ownertheforeman/foreman
Primary LanguageRuby
Program languageRuby (Language Count: 11)
PlatformBSD, Linux, Solaris, Juniper Junos, Cisco NX-OS
License:GNU General Public License v3.0
Release Count287
Last Release Name3.9.2 (Posted on 2024-04-04 12:54:49)
First Release Name0.1 (Posted on 2009-09-10 00:07:41)
Created At2009-07-23 15:07:00
Pushed At2024-04-14 13:37:03
Last Commit At
Stargazers Count2.5k
Watchers Count108
Fork Count1k
Commits Count10.5k
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count5324
Pull Requests Open Count89
Pull Requests Close Count4702
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Foreman

Build Status
Code Climate
Coverage Status
Reviewed by Hound
Support IRC channel
Storybook

Foreman is a free open source project that gives you the power to easily automate repetitive tasks, quickly deploy applications, and proactively manage your servers lifecyle, on-premises or in the cloud.

From provisioning and configuration to orchestration and monitoring, Foreman integrates with your existing infrastructure to make operations easier.

Using Puppet, Ansible, Chef, Salt and Foreman's smart proxy architecture, you can easily automate repetitive tasks, quickly deploy applications, and proactively manage change, both on-premise with VMs and bare-metal or in the cloud.

Foreman provides comprehensive, interaction facilities including a web frontend, CLI and RESTful API which enables you to build higher level business logic on top of a solid foundation.

Foreman is a mature project, deployed in many organizations, managing from 10s to 10000s of servers. It is used in distributions such as RDO and RHOS (Red Hat OpenStack distribution) and has an extensive library of plugins.

Features

  • Automate your mixed infrastructure to make operations enjoyable
  • Discover, provision and upgrade your entire bare-metal infrastructure
  • Create and manage instances across private and public clouds
  • Group your hosts and manage them in bulk, regardless of location
  • Review historical changes for auditing or troubleshooting
  • Extend as needed via a robust plugin architecture
  • Automatically build images (on each platform) per system definition to optimize deployment
  • LDAP authentication and RBAC authorization to your infrastructure
  • and so much more

Screenshots

Hosts list
New host
EC2
Provisioning templates
Subnets
Compute Resource
Edit Puppet class
Reports
Statistics
Partition tables
Installation media

Installation

Read the quickstart section of the manual. If you know your setup has some specific needs, read the installation scenarios section.

Documentation

Our main documentation reference is the Foreman manual. If you find some gaps you would like to fill in the manual, please contribute in this repo.

API

We document our API using apipie.The API chapter has more information about accessing the API and the layout of requests and responses. Also see the reference documentation available on our website, or via your own Foreman installation by appending /apidoc to the URL to see the API routes available.

Plugins

Plugins are tools to extend and modify the functionality of Foreman. They are implemented as Rails engines that are packaged as gems and thus easily installed into Foreman.

The plugins page lists all available plugins and has more information about how to install and develop them.

How to contribute?

Generally, follow the Foreman guidelines. For code-related contributions, fork this project and send a pull request with all changes. Some things to keep in mind:

  • Follow the rules about commit message style and create a Redmine issue. Doing this right will help reviewers to get your contribution merged faster.
  • We have a development handbook to help developers understand how Foreman developers code.
  • Rubocop will analyze your code, you can run it locally with rake rubocop.
  • All of our pull requests run the full test suite in our Jenkins CI system. Please include tests in your pull requests for any additions or changes in functionality

Media

We keep a repository of talks, tutorials, articles about everything in the Foreman ecosystem in the media section of our web. If you want to get yours published, just submit a pull request to theforeman.org repository

Special thanks

The original authors of this project are Ohad Levy and Paul Kelly.
You can find a more thorough list of people who have contributed to this project at some point in Contributors.

Licensing

See LICENSE file.

The Foreman repository/package is licensed under the GNU GPL v3 or newer, with some exceptions.

Copyright (c) 2009-2018 to Ohad Levy, Paul Kelly and their respective owners.

All copyright holders for the Foreman project are in the separate file called Contributors.

Except where specified below, this program and entire repository is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see GNU licenses.

The following files and directories are exceptions:

  • app/views/unattended/ztp/provision.erb is (c) 2013, Juniper Networks under 2-clause BSD license.
  • lib/tasks/convert.rake is (c) 2008, Matson Systems, Inc. under Revised BSD license.
  • extras/noVNC/websockify is (c) 2011, Joel Martin under LGPL v3 license.
  • vendor/assets/fonts/ is (c) 2011-2016, Red Hat Inc. under SIL Open Font License v1.1 or LGPL v2.1 licenses.
  • vendor/assets/javascripts/jquery.flot.axislabels.js is (c) 2010 Xuan Luo under MIT license.
  • app/assets/images/RancherOS.png is (c) 2018 Rancher Labs, Inc.

All rights reserved.

The LICENSE file contains the full text of the GNU GPL v3 license, along with the text for all additional licenses referenced above.

To the top