如何在 CentOS 7/RHEL 7 上安装 Foreman 3.x
Foreman是一个开源工具,用于配置、配置和管理物理和虚拟服务器的生命周期。它通过与 Ansible、chef、salt、Puppet 等配置工具的深度集成,帮助用户执行重复性配置任务。 Foreman 允许人们在裸机(使用 DHCP、DNS、TFTP)、虚拟和云平台上进行配置。 Foreman 提供 3 种全面的交互工具,即命令行界面、基于网络的 UI 和强大的REST API
Foreman 于2009 年 7 月开发,具有不同的项目名称,后来由Ohad Levy于2009发布。它是针对 Linux 系统而生成的,尽管也有报告称它可以在 macOS、Windows 和 BSD 系统等其他操作系统上成功安装。官方支持的平台有:
- 软呢帽
- Red Hat Enterprise Linux(及其衍生产品,例如 CentOS)
- 德班
- 乌班图
Foreman 的惊人功能包括:
- 它允许一组批量托管和管理它们,无论位置如何
- 允许发现、配置和升级您的整个裸机基础设施
- 跨私有云和公共云创建和管理实例
- 它有一个庞大的插件架构,您可以根据需要扩展 Foreman
- 根据系统定义自动构建映像(在每个平台上)以优化部署
- 它允许人们查看历史更改以进行审核或故障排除
按照本指南进行到底,您应该能够在 CentOS 7/RHEL 7 上安装 Foreman 3.x。我们还为重复性任务执行 ansible 配置。
在 CentOS 7/RHEL 7 上安装 Foreman 3.x
Foreman 3.x 安装可以使用 Foreman 安装程序完成。这是 Puppet 模块的集合,用于安装 Foreman 所需的所有组件。这些组件包括:智能代理、Puppet 服务器、Foreman Web U 以及其他 TFTP、DNS 和 DHCP 服务器。
第 1 步 – 设置系统主机名
运行 Foreman 安装和配置时需要主机名。如下设置系统主机名。
sudo hostnamectl set-hostname foreman.computingforgeeks.com
将主机名添加到主机文件中。
$ sudo vi /etc/hosts
192.168.205.20 foreman.computingforgeeks.com
步骤 2 – 添加 Foreman 3.x 安装程序存储库
在 RHEL 7 上,首先启用 SCL 存储库:
sudo yum -y install yum-utils
sudo yum-config-manager --enable rhel-7-server-optional-rpms rhel-server-rhscl-7-rpms
在 CentOS 7 上启用额外功能。
sudo yum -y install yum-utils
sudo yum-config-manager --enable extras
现在在 CentOS 7/RHEL 7 上启用 Puppet 6.x 存储库。
sudo yum -y install https://yum.puppet.com/puppet6-release-el-7.noarch.rpm
继续并在 CentOS 7/RHEL 7 系统上启用 EPEL 存储库。
##On RHEL 7
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
##On CentOS 7
sudo yum -y install epel-release centos-release-scl-rh
现在将 Foreman 3.x 存储库添加到系统中。在这里,我们添加最新版本的 Foreman 存储库。
sudo yum -y install https://yum.theforeman.org/releases/latest/el7/x86_64/foreman-release.rpm
步骤 3 – 运行 Foreman 3.x 安装程序
添加存储库后,您需要使用以下命令下载 Foreman 3.x 安装程序:
sudo yum -y install foreman-installer
该脚本将安装所有必需的软件包,包括 rubygem-kafo、puppet 等
现在运行安装程序。您还可以使用 foreman-installer --help
中的选项进行配置。
sudo foreman-installer
示例输出:
步骤 3 – 允许 Foreman 防火墙端口
有几个端口需要允许通过防火墙才能让 Foreman 运行。可以按如下方式允许这些端口。
sudo firewall-cmd --permanent --add-port=53/tcp
sudo firewall-cmd --permanent --add-port=67-69/udp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --permanent --add-port=5910-5930/tcp
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --permanent --add-port=8140/tcp
sudo firewall-cmd --permanent --add-port=8443/tcp
现在重新加载守护进程以使上述更改生效。
sudo firewall-cmd --reload
访问 Foreman Web UI
如前所述,可用于与 Foreman 交互的工具之一是 Web UI。可以使用 URL https://IP_address 或 https://domain_name 进行访问
通过提供安装期间创建的凭据进行登录,然后进入 Foreman 仪表板。
创建操作系统
Foreman 允许创建一台要管理的主机。首先在主机 > 操作系统下创建用于安装的操作系统。为所需的发行版创建一个新的操作系统。
提供分区表详细信息并为操作系统创建安装介质
创建一个主机。
创建操作系统后,您可以在主机 > 创建主机下使用它创建主机。在此处提供所需的详细信息。
继续并链接创建的操作系统和安装介质。
设置网络接口。
提交以应用更改。
现在,在主机 > 所有主机下,您应该添加新主机。
在 Foreman 中开始使用 Ansible
现在我们将为 Foreman 上的重复任务配置 Ansible。首先在 Foreman 上启用 Ansible 插件,如下所示。
sudo foreman-installer --enable-foreman-plugin-ansible \
--enable-foreman-proxy-plugin-ansible
继续并将角色添加到 /etc/ansible/roles 目录。例如,可以按如下方式创建用于安装 vim、检查系统正常运行时间的示例 ansible 角色。
sudo vi /etc/ansible/roles/playbook.yaml
在文件中添加内容:
---
- hosts: foreman.computingforgeeks.com
tasks:
- name: Install latest version of vim on CentOS Linux Node
yum: name=vim state=latest
- name: start nginx
service:
name: nginx
state: started
- name: Check uptime of the remote host
shell: uptime
register: command_output
- debug:
var: command_output.stdout_line
保存文件,前往 Foreman Web UI,然后在 Configure > Ansible > Roles 下导入角色
导入后,可以将角色分配给主机 > 所有主机下的给定角色。编辑主机并向其添加 Ansible 角色。
提交所做的更改,角色将添加到主持人。验证是否已配置重复任务。
这就对了!
您将在 CentOS 7/RHEL 7 上使用 Foreman 3.x 来管理主机并使用 Ansible 或您想要的任何工具执行多项重复性任务。我希望这可以帮到你。
查看更多:
- 在 CentOS 8|RHEL 8|Rocky Linux 8 上安装 Foreman 3.x
- 如何在 Ubuntu 上安装 Foreman 3.x
- 在 Debian 上安装和配置 Foreman 3.x