首页 运维 正文
Foreman 安装配置及使用技巧

 2022-10-23    440  

由于Foreman的应用资料比较***,苦于像我们这些IT民众花费大量的时间研究,所以将相关内容共享出来,文章内容主要是针对安装配置应用的一些实例,在网上安装的文章很多,但对于配置的细节问题,没有太多的讲解,特别是针对操作系统安装的这个方面,网上的文章少之又少,针对这种情况,特写此文,也算尽我的微薄之力。

本文的重点也源自于像Cobbler那样无人值守安装操作系统,其它的针对Puppet的整合操作并不会在本文中出现太多。

一、安装

1、环境介绍

  • System:CentOS 6.4 Minimal版本
  • IP:192.168.252.138
  • Hostname:puppet.lishixin.com

  架构

本环境是在Puppet的环境之上进行的安装,Puppet环境已经成功运行。所有的版本均采用repo库中***的安装包,yum自动识别安装。

2. 安装

yum clean all
yum -y groupinstall "Development tools"
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -vih http://yum.puppetlabs.com/el/6/products/x86_64/\
puppetlabs-release-6-7.noarch.rpm
yum -y install http://yum.theforeman.org/releases/1.2/el6/x86_64/\
foreman-release.rpm
yum -y install dhcp
yum -y install foreman-installer
ruby /usr/share/foreman-installer/generate_answers.rb

三个都是y,经过大概一段时间的等待就安装OK了。

Note:如果你这一步都没有安装完成,请不断重试这一步骤以完成这一步的成功安装进行下一步的配置工作。#p#

二、配置

1、配置DHCP服务

vim /etc/dhcp/dhcpd.conf 
ddns-update-style interim; 
ignore client-updates; 
authoritative; 
allow booting; 
allow bootp; 
omapi-port 7911; 
subnet 192.168.252.0 netmask 255.255.255.0 { 
option routers      192.168.252.2; 
option subnet-mask  255.255.255.0; 
option domain-name    "lishixin.com"; 
option domain-name-servers  192.168.252.2; 
option log-servers    syslog; 
option ntp-servers    ntp; 
range dynamic-bootp 192.168.252.2 192.168.252.25; 
default-lease-time 21600; 
max-lease-time 43200; 
}
chgrpforeman-proxy/etc/dhcp/-R chkconfigdhcpdon servicedhcpdstart

2、配置Foreman-Proxy

vim/etc/foreman-proxy/settings.yml

vim/etc/foreman-proxy/settings.yml

3、配置Puppet及HTTP

https://puppet.lishixin.com
username:admin
password:changeme
vim/etc/puppet/puppet.conf

红色区域全部删除,不需要这样细化配置环境,不然配置起来就复杂了,***次以简单为主。

servicehttpdrestart

出现上图说明安装成功。

4、简单Web配置

点击Settings进入下图的设置项:

foreman_url 改成一个网络中可以解析的域名,我这里直接改成IP:192.168.252.138,这样可以省了DNS服务器的配置。

5、Create a Smart Proxy

添加完成。

6、Import your data

vim/etc/foreman/database.yml

#添加

production:
adapter:postgresql
database:foreman
username:foreman
password:xNPq6xBYgBSEJbNhiBbooL2bYquMYopi
host:localhost

默认没有host这个可能是puppet安装的foreman一个bug

cd/usr/share/foreman
ruby193-rakepuppet:import:hosts_and_factsRAILS_ENV=production

在puppet-c01 puppet-c02配置文件添加:

report=true

导入类

7、基本设置完成

#p#

使用

1、添加子网

More>>Provisioning>>Subnets

如下是我添加好的。

2、添加安装源

More>>Provisioning>>InstallationMedia

如图是在原来的基础上面更改的,当然也可以自己添加:

3、添加安装使用模板

More >>Provisioning >> Provisioning Templates

这里的模板分为PXE引导使用的与ks 文件 使用的模板当然这里不仅仅只有这两种,但我们与Cobbler相比,我们经常使用就只有这两种了。

PXELINUX模板

我们使用系统自带的PXE模板即可满足要求:

以下是PXE模板内容:

defaultlinux
labellinux
kernel<%=@kernel%>
<%if@host.operatingsystem.name=="Fedora"and@host.operatingsystem.major.to_i>16-%>
appendinitrd=<%=@initrd%>ks=<%=foreman_url("provision")%>ks.device=bootifnetworkks.sendmac
<%else-%>
appendinitrd=<%=@initrd%>ks=<%=foreman_url("provision")%>ksdevice=bootifnetworkkssendmac
<%end-%>

ks模板

我们也同样使用系统自带的:

但这个是要根据个人的情况做修改的,如果你对ks文件的结构比较了解这个应该不是问题,和普通的KS文件没有太大区别,只是引用了一些变量。

以下是修改后的KS内容:

#InstallOSinsteadofupgrade
install
<%=@mediapath%>
#SELinuxconfiguration
selinux--disabled
#DonotconfiguretheXWindowSystem
skipx
#Donotkey
key--skip
#Usenetworkinstallation
#NetworkDHCPIP
#network--bootproto<%=@static?"static":"dhcp"%>--hostname<%=@host%>
#UseStaticIP
network--bootproto=static--hostname=<%=@host%>--ip=<%=@host.ip%>--netmask=<%=@host.subnet.mask%>--gateway=<%=@host.subnet.gateway%>--nameserver=<%=@host.subnet.dns_primary%>
#Endnetworkinstallation
#Rootpassword
rootpw--iscrypted<%=root_pass%>
#Systemauthorizationinformation
auth--useshadow--enablemd5
#Firewallconfiguration
firewall--disabled
#Systemkeyboard
keyboardus
#Systemlanguage
langen_US
#Installationlogginglevel
logging--level=info
#Usetextmodeinstall
text
#Rebootafterinstallation
reboot
#Systemtimezone
timezoneAsia/Shanghai
#DisableService
services--disabledpostfix
#Systembootloaderconfiguration
bootloader--location=mbr
#IncludediskLayout
<%=@host.diskLayout%>
#InstallPackages
%packages--ignoremissing
@Core
%end

%post
logger"Startinganaconda<%=@host%>postinstall"
exec</dev/tty3>/dev/tty3
#changingtoVT3sothatwecanseewhatsgoingon....
/usr/bin/chvt3
(
#andaddthehost
echo"<%=@host.params['PuppetMasterIP']%><%=@host.puppetmaster%>">>/etc/hosts
echo"<%=@host.ip%><%=@host%>">>/etc/hosts
#andaddthepuppetpackage
rpm-ivh<%=@host.params['epel']%>
rpm-ivh<%=@host.params['puppetlabs']%>
yum-t-y-e0installpuppet
#Setuppuppettorunonsystemreboot
/sbin/chkconfig--level345puppeton
/usr/bin/puppetagent--server<%=@host.puppetmaster%>--no-daemonize
sync
#Informthebuildsystemthatwearedone.
echo"InformingForemanthatwearebuilt"
wget-q-O/dev/null--no-check-certificate<%=foreman_url%>
#Sleepinganhourfordebug
)2>&1|tee/root/install.post.log
exit0

4、添加使用的分区表

More>>Provisioning>>PartitionTables

这里我们使用系统默认的,当然你也是可以编辑这些内容:

以下是分区表的内容:

#CleartheMasterBootRecord
zerombr
#Allowanacondatopartitionthesystemasneeded
autopart
#Partitionclearinginformation
clearpart--all-initlabel

5、添加操作系统

More >>Provisioning >> Operating systems

这里主要是对上面创建的模板及分区表进行关联:

6、安装操作系统

如下变量是在KS文件中使用的。

添加全局变量:

More>>Configuration>>GlobalParameters

这个主要用于指定一个PuppetMaster的IP,因为我没有使用广域网解析,所以这个是在主机安装的过程中添加HOSTS使用的。

添加系统变量

More>>Provisioning>>Operatingsystems

Edit Operating System页面

大家一看就知道了,这是添加两个仓库的变量方便以后修改,所以KS引用以后这些地址变了,就只需要在这个地方修改即可。

添加主机

这里面的IP址址会自动分配,如果你的DHCP配置没有问题。

这里面列出了所有的参数。

所有的设置配置完成后,就可以Submit了。

然后打开主机注意MAC地址那台主机,它会自动的生成pxelinux引导文件,及KS文件。然后你就可以等待主机安装成功了.

安装完成

【作者信息】本文作者LSX,个人博客地址:http://blog.lishixin.net/,微博:@warriornew,邮箱:admin@lishixin.net,欢迎留言讨论。

原文链接:https://77isp.com/post/8581.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。