Foreman 安裝配置及使用技巧
原創(chuàng)【51CTO專稿】由于Foreman的應(yīng)用資料比較***,苦于像我們這些IT民眾花費大量的時間研究,所以將相關(guān)內(nèi)容共享出來,文章內(nèi)容主要是針對安裝配置應(yīng)用的一些實例,在網(wǎng)上安裝的文章很多,但對于配置的細節(jié)問題,沒有太多的講解,特別是針對操作系統(tǒng)安裝的這個方面,網(wǎng)上的文章少之又少,針對這種情況,特寫此文,也算盡我的微薄之力。
本文的重點也源自于像Cobbler那樣無人值守安裝操作系統(tǒng),其它的針對Puppet的整合操作并不會在本文中出現(xiàn)太多。
一、安裝
1、環(huán)境介紹
- System:CentOS 6.4 Minimal版本
- IP:192.168.252.138
- Hostname:puppet.lishixin.com
架構(gòu)
本環(huán)境是在Puppet的環(huán)境之上進行的安裝,Puppet環(huán)境已經(jīng)成功運行。所有的版本均采用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,經(jīng)過大概一段時間的等待就安裝OK了。
Note:如果你這一步都沒有安裝完成,請不斷重試這一步驟以完成這一步的成功安裝進行下一步的配置工作。#p#
二、配置
1、配置DHCP服務(wù)
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; }
- chgrp foreman-proxy /etc/dhcp/ -R
- chkconfig dhcpd on
- service dhcpd start
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
紅色區(qū)域全部刪除,不需要這樣細化配置環(huán)境,不然配置起來就復(fù)雜了,***次以簡單為主。
- service httpd restart
出現(xiàn)上圖說明安裝成功。
4、簡單Web配置
點擊Settings進入下圖的設(shè)置項:
foreman_url 改成一個網(wǎng)絡(luò)中可以解析的域名,我這里直接改成IP:192.168.252.138,這樣可以省了DNS服務(wù)器的配置。
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
默認(rèn)沒有host這個可能是puppet安裝的foreman一個bug
- cd /usr/share/foreman
- ruby193-rake puppet:import:hosts_and_facts RAILS_ENV=production
在puppet-c01 puppet-c02配置文件添加:
- report = true
導(dǎo)入類
7、基本設(shè)置完成
#p#
使用
1、添加子網(wǎng)
- More >>Provisioning >> Subnets
如下是我添加好的。
2、添加安裝源
- More >>Provisioning >> Installation Media
如圖是在原來的基礎(chǔ)上面更改的,當(dāng)然也可以自己添加:
3、添加安裝使用模板
More >>Provisioning >> Provisioning Templates
這里的模板分為PXE引導(dǎo)使用的與ks 文件 使用的模板當(dāng)然這里不僅僅只有這兩種,但我們與Cobbler相比,我們經(jīng)常使用就只有這兩種了。
PXELINUX模板
我們使用系統(tǒng)自帶的PXE模板即可滿足要求:
以下是PXE模板內(nèi)容:
- default linux
- label linux
- kernel <%= @kernel %>
- <% if @host.operatingsystem.name == "Fedora" and @host.operatingsystem.major.to_i > 16 -%>
- append initrd=<%= @initrd %> ks=<%= foreman_url("provision")%> ks.device=bootif network ks.sendmac
- <% else -%>
- append initrd=<%= @initrd %> ks=<%= foreman_url("provision")%> ksdevice=bootif network kssendmac
- <% end -%>
ks模板
我們也同樣使用系統(tǒng)自帶的:
但這個是要根據(jù)個人的情況做修改的,如果你對ks文件的結(jié)構(gòu)比較了解這個應(yīng)該不是問題,和普通的KS文件沒有太大區(qū)別,只是引用了一些變量。
以下是修改后的KS內(nèi)容:
- # Install OS instead of upgrade
- install
- <%= @mediapath %>
- # SELinux configuration
- selinux --disabled
- # Do not configure the X Window System
- skipx
- # Do not key
- key --skip
- # Use network installation
- # Network DHCP IP
- #network --bootproto <%= @static ? "static" : "dhcp" %> --hostname <%= @host %>
- # Use Static IP
- network --bootproto=static --hostname=<%= @host %> --ip=<%= @host.ip %> --netmask=<%= @host.subnet.mask %> --gateway=<%= @host.subnet.gateway %> --nameserver=<%= @host.subnet.dns_primary %>
- # End network installation
- #Root password
- rootpw --iscrypted <%= root_pass %>
- # System authorization information
- auth --useshadow --enablemd5
- # Firewall configuration
- firewall --disabled
- # System keyboard
- keyboard us
- # System language
- lang en_US
- # Installation logging level
- logging --level=info
- # Use text mode install
- text
- # Reboot after installation
- reboot
- # System timezone
- timezone Asia/Shanghai
- # Disable Service
- services --disabled postfix
- # System bootloader configuration
- bootloader --location=mbr
- # Include diskLayout
- <%= @host.diskLayout %>
- # Install Packages
- %packages --ignoremissing
- @Core
- %end
- %post
- logger "Starting anaconda <%= @host %> postinstall"
- exec < /dev/tty3 > /dev/tty3
- #changing to VT 3 so that we can see whats going on....
- /usr/bin/chvt 3
- (
- # and add the host
- echo "<%= @host.params['PuppetMasterIP'] %> <%= @host.puppetmaster %>" >> /etc/hosts
- echo "<%= @host.ip %> <%= @host %>" >> /etc/hosts
- # and add the puppet package
- rpm -ivh <%= @host.params['epel'] %>
- rpm -ivh <%= @host.params['puppetlabs'] %>
- yum -t -y -e 0 install puppet
- # Setup puppet to run on system reboot
- /sbin/chkconfig --level 345 puppet on
- /usr/bin/puppet agent --server <%= @host.puppetmaster %> --no-daemonize
- sync
- # Inform the build system that we are done.
- echo "Informing Foreman that we are built"
- wget -q -O /dev/null --no-check-certificate <%= foreman_url %>
- # Sleeping an hour for debug
- ) 2>&1 | tee /root/install.post.log
- exit 0
4、添加使用的分區(qū)表
- More>>Provisioning>>PartitionTables
這里我們使用系統(tǒng)默認(rèn)的,當(dāng)然你也是可以編輯這些內(nèi)容:
以下是分區(qū)表的內(nèi)容:
- # Clear the Master Boot Record
- zerombr
- # Allow anaconda to partition the system as needed
- autopart
- # Partition clearing information
- clearpart --all -initlabel
5、添加操作系統(tǒng)
More >>Provisioning >> Operating systems
這里主要是對上面創(chuàng)建的模板及分區(qū)表進行關(guān)聯(lián):
6、安裝操作系統(tǒng)
如下變量是在KS文件中使用的。
添加全局變量:
- More >> Configuration >> Global Parameters
這個主要用于指定一個PuppetMaster的IP,因為我沒有使用廣域網(wǎng)解析,所以這個是在主機安裝的過程中添加HOSTS使用的。
添加系統(tǒng)變量
- More >> Provisioning >> Operating systems
Edit Operating System頁面
大家一看就知道了,這是添加兩個倉庫的變量方便以后修改,所以KS引用以后這些地址變了,就只需要在這個地方修改即可。
添加主機
這里面的IP址址會自動分配,如果你的DHCP配置沒有問題。
這里面列出了所有的參數(shù)。
所有的設(shè)置配置完成后,就可以Submit了。
然后打開主機注意MAC地址那臺主機,它會自動的生成pxelinux引導(dǎo)文件,及KS文件。然后你就可以等待主機安裝成功了.
安裝完成
【作者信息】本文作者LSX,個人博客地址:http://blog.lishixin.net/,微博:@warriornew,郵箱:admin@lishixin.net,歡迎留言討論。