Foreman是一个开源工具,可以帮助您提供、配置、管理和监视服务器。在Puppet、Chef、Salt和Foreman
的智能代理体系结构等配置管理工具的帮助下,您可以轻松地自动化重复的任务,快速部署应用程序,并主
动地管理更改。Foreman提供了全面的交互功能,包括web前端、CLI和RESTful API,这些功能使您能够完
成上述任务,同时支持vm和裸机或云计算。有了Foreman,我们可以通过web浏览器管理10到10000个物理或
虚拟服务器。
Foreman安装包含一个中央Foreman实例,负责提供基于Web的GUI、节点配置、初始主机配置文件等。但
是,如果Foreman安装支持无人值守的安装,那么需要执行其他操作来完全自动化这个过程。智能代理管
理远程服务,通常与所有Foreman安装一起安装,用于管理TFTP、DHCP、DNS、Puppet、Puppet CA、
Ansible、Salt和Chef。智能代理位于执行特定功能的机器上或附近,帮助foreman协调调试新主机的过
程。将代理放置在实际服务上或靠近实际服务的位置也有助于减少大型分布式组织中的延迟。
准备工作
1,系统采用CentOS7.5,系统安装完成后,修改hostname和/etc/hosts
vi /etc/hosts
172.16.80.117 foreman.kclouder.local foreman
hostnamectl set-hostname foreman.kclouder.local
2,配置安装源
rpm -ivh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh https://yum.theforeman.org/releases/1.20/el7/x86\_64/foreman-release.rpm
3,关闭防火墙和SELINUX,如果需要开启防火墙,需要配置以下端口:
firewall-cmd –permanent –add-port=53/tcp
firewall-cmd –permanent –add-port=67-69/udp
firewall-cmd –permanent –add-port=80/tcp
firewall-cmd –permanent –add-port=443/tcp
firewall-cmd –permanent –add-port=3000/tcp
firewall-cmd –permanent –add-port=3306/tcp
firewall-cmd –permanent –add-port=5910-5930/tcp
firewall-cmd –permanent –add-port=5432/tcp
firewall-cmd –permanent –add-port=8140/tcp
firewall-cmd –permanent –add-port=8443/tcp
firewall-cmd –reload
开始安装
1,安装Foreman Installer
yum -y install foreman-installer
2,安装Foreman,Foreman安装程序是一组Puppet模块的集合,用于安装完整工作的Foreman安装所需的所
有模块。它使用本机OS打包(例如RPM打包),并为整个安装添加必要的配置。Foreman安装程序将安装必要
的组件,如Foreman web UI、智能代理、Passenger(用于puppet master和Foreman本身),以及可选的
TFTP、DNS和DHCP服务器。
foreman-installer
3,安装完成后,输出如下图,包括访问Foreman的初始用户名和密码。
4,通过浏览器访问Foreman Web控制台,输入初始化时的用户名和密码进行登录
添加Puppet代理节点
1,确保被添加的节点与Forman可以彼此解析主机名。可以通过/etc/hosts文件或DNS服务器。
2,在被添加的节点上安装Puppet Agent,首先添加安装源
rpm -Uvh https://yum.puppet.com/puppet5/puppet5-release-el-7.noarch.rpm
3,安装puppet-agent
yum install -y puppet-agent
4,编辑puppet-agent配置文件
vi /etc/puppetlabs/puppet/puppet.conf
5,在配置文件中添加如下内容,定义服务器与代理节点地址
[agent]
server = foreman.kclouder.local
certname = bgfs01.kclouder.local
runinterval = 180
environment = production
listen = false
pluginsync = true
report = true
6,配置文件修改完成后,执行以下命令启用并运行puppet代理服务。
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
7,重启Puppet服务
systemctl restart puppet
8,在Formman中添加Puppet节点,可通过命令行方式添加,也可以通过Web控制台添加
通过命令行方式添加
1,列出未签名的证书
/opt/puppetlabs/bin/puppet cert list
2,执行以下命令签署证书
/opt/puppetlabs/bin/puppet cert sign bgfs01.kclouder.local
过Web控制台添加
1,打开Foreman web控制台,转到基础设施>>智能代理。从下拉列表中选择证书。
2,如下所示,代理证书(bgfs02.kclouder.local)正在等待签名,请单击“登入”按钮。
3,以同样的方式添加需要添加的节点,在主机>>所有主机中,验证新节点已添加到Foreman。
4,查看节点状态
安装NTP模块
1,在Forman节点上执行以下命令
/opt/puppetlabs/bin/puppet module install puppetlabs/ntp
输出如下:
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules …
Notice: Downloading from https://forgeapi.puppet.com …
Notice: Installing – do not interrupt …
/etc/puppetlabs/code/environments/production/modules
└─┬ puppetlabs-ntp (v7.3.0)
└── puppetlabs-stdlib (v5.1.0)
[root@foreman ~]# /opt/puppetlabs/bin/puppet agent –test
2,在Foreman的web控制台,转到配置>> Puppet >>类型,并单击右上角的“从主机名导入环境”,以从
Puppet主机读取可用的Puppet类并填充Foreman的数据库。
3,选择NTP模块并单击update按钮。
4,单击update按钮后,您将看到如下所示的内容。如果安装正确,ntp类将出现在Puppet类列表中。单击
左边的NTP类。
5,单击ntp>>智能代理参数,然后选择左侧的Servers。勾选Override复选框,以便Foreman管理servers
参数。在默认值中键入NTP服务器名称,然后单击提交。
6,将NTP类分配给Foreman主机。转到主机>>所有主机,编辑Forman主机的配置。
7,选择“Puppet类”,点击+添加ntp类
8,执行以下命令确认NTP模块配置正确
/opt/puppetlabs/bin/puppet agent –test
cat /etc/ntp.conf
9,在主机>>所有主机>>选择Foreman主机>>报告>>最新报告中验证已经安装NTP模块,