Foreman 安装配置及使用技巧

原创
运维 系统运维
本文主要是针对安装配置应用的一些实例,在网上安装的文章很多,但对于配置的细节问题,没有太多的讲解,特别是针对操作系统安装的这个方面,网上的文章少之又少,所以本文重点分享了Foreman 安装配置及使用技巧。

【51CTO专稿】由于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; 
}
  1. chgrp foreman-proxy /etc/dhcp/ -R 
  2. chkconfig dhcpd on 
  3. service dhcpd start 

2、配置Foreman-Proxy

  1. vim /etc/foreman-proxy/settings.yml

  1. vim /etc/foreman-proxy/settings.yml 

 3、配置Puppet及HTTP

  1. https://puppet.lishixin.com 
  2. username: admin 
  3. password: changeme 
  4. vim /etc/puppet/puppet.conf 

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

  1. service httpd restart 

出现上图说明安装成功。

4、简单Web配置

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

 

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

5、Create a Smart Proxy

添加完成。

6、Import your data

  1. vim /etc/foreman/database.yml 

#添加

  1. production: 
  2. adapter: postgresql 
  3. database: foreman 
  4. username: foreman 
  5. password: xNPq6xBYgBSEJbNhiBbooL2bYquMYopi 
  6. host: localhost 

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

  1. cd /usr/share/foreman 
  2. ruby193-rake puppet:import:hosts_and_facts RAILS_ENV=production 

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

  1. report = true 

导入类

7、基本设置完成

#p#

使用

1、添加子网

  1. More >>Provisioning >> Subnets 

如下是我添加好的。

2、添加安装源

  1. More >>Provisioning >> Installation Media 

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

 

 

3、添加安装使用模板

More >>Provisioning >> Provisioning Templates

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

PXELINUX模板

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

以下是PXE模板内容:

  1. default linux 
  2. label linux 
  3. kernel <%= @kernel %> 
  4. <% if @host.operatingsystem.name == "Fedora" and @host.operatingsystem.major.to_i > 16 -%> 
  5. append initrd=<%= @initrd %> ks=<%= foreman_url("provision")%> ks.device=bootif network ks.sendmac 
  6. <% else -%> 
  7. append initrd=<%= @initrd %> ks=<%= foreman_url("provision")%> ksdevice=bootif network kssendmac 
  8. <% end -%> 

ks模板

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

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

以下是修改后的KS内容:

  1. # Install OS instead of upgrade 
  2. install 
  3. <%= @mediapath %> 
  4. # SELinux configuration 
  5. selinux --disabled 
  6. # Do not configure the X Window System 
  7. skipx 
  8. # Do not key  
  9. key --skip 
  10. # Use network installation 
  11. # Network DHCP IP 
  12. #network --bootproto <%= @static ? "static" : "dhcp" %> --hostname <%= @host %> 
  13. # Use Static IP  
  14. network --bootproto=static --hostname=<%= @host %> --ip=<%= @host.ip %> --netmask=<%= @host.subnet.mask %> --gateway=<%= @host.subnet.gateway %> --nameserver=<%= @host.subnet.dns_primary %> 
  15. # End network installation 
  16. #Root password 
  17. rootpw --iscrypted <%= root_pass %> 
  18. # System authorization information 
  19. auth  --useshadow  --enablemd5 
  20. # Firewall configuration 
  21. firewall --disabled 
  22. # System keyboard 
  23. keyboard us 
  24. # System language 
  25. lang en_US 
  26. # Installation logging level 
  27. logging --level=info 
  28. # Use text mode install 
  29. text 
  30. # Reboot after installation 
  31. reboot 
  32. # System timezone 
  33. timezone  Asia/Shanghai 
  34. # Disable Service 
  35. services --disabled postfix 
  36. # System bootloader configuration 
  37. bootloader --location=mbr 
  38. # Include diskLayout 
  39. <%= @host.diskLayout %> 
  40. # Install Packages 
  41. %packages --ignoremissing 
  42. @Core 
  43. %end 
  44.  
  45. %post 
  46. logger "Starting anaconda <%= @host %> postinstall" 
  47. exec < /dev/tty3 > /dev/tty3 
  48. #changing to VT 3 so that we can see whats going on.... 
  49. /usr/bin/chvt 3 
  50.     # and add the host 
  51.     echo "<%= @host.params['PuppetMasterIP'] %> <%= @host.puppetmaster %>>> /etc/hosts 
  52.     echo "<%= @host.ip %>   <%= @host %>>> /etc/hosts 
  53.     # and add the puppet package 
  54.     rpm -ivh <%= @host.params['epel'] %> 
  55.     rpm -ivh <%= @host.params['puppetlabs'] %> 
  56.     yum -t -y -e 0 install puppet 
  57.     # Setup puppet to run on system reboot 
  58.     /sbin/chkconfig --level 345 puppet on 
  59.     /usr/bin/puppet agent --server <%= @host.puppetmaster %>  --no-daemonize 
  60.     sync 
  61.     # Inform the build system that we are done. 
  62.     echo "Informing Foreman that we are built" 
  63.     wget -q -O /dev/null --no-check-certificate <%= foreman_url %> 
  64.     # Sleeping an hour for debug 
  65. ) 2>&1 | tee /root/install.post.log 
  66. exit 0 

4、添加使用的分区表

  1. More>>Provisioning>>PartitionTables 

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

以下是分区表的内容:

  1. # Clear the Master Boot Record 
  2. zerombr 
  3. # Allow anaconda to partition the system as needed 
  4. autopart 
  5. # Partition clearing information 
  6. clearpart --all -initlabel 

5、添加操作系统

More >>Provisioning >> Operating systems

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

 

6、安装操作系统

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

添加全局变量:

  1. More >> Configuration >> Global Parameters 

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

添加系统变量

  1. More >> Provisioning >> Operating systems 

Edit Operating System页面

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

添加主机

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

 

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

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

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

安装完成

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

 

责任编辑:黄丹 来源: 51CTO.com
相关推荐

2011-01-28 09:20:02

CentOSpuppetforeman

2009-06-04 20:45:11

Eclipse插件安装Eclipse插件使用

2011-02-25 17:48:52

2010-06-07 11:22:28

2011-04-02 14:21:46

MRTG安装

2011-03-02 10:41:41

Vsftpd安装

2011-04-01 15:00:35

2011-02-23 10:43:17

2015-09-09 15:02:21

Foreman安装Ubuntu

2010-02-05 13:37:07

Ubuntu安装

2013-09-10 15:32:38

Eclipse环境配置

2011-03-11 16:42:38

Ubuntu安装LAMP

2011-03-25 13:40:28

Cacti安装配置

2013-11-28 09:44:00

2011-11-08 21:55:58

MRTG 配置

2011-03-30 15:05:40

MRTG安装

2011-02-25 17:19:09

Pureftpd安装

2011-03-25 15:01:44

Cacti安装

2011-04-02 15:26:51

Cacti安装

2011-04-02 15:17:59

点赞
收藏

51CTO技术栈公众号