6-5補充2 cobbler應用

回顧:
之前講到了dhc服務,pxe的實現,cobbler的簡單介紹
dhcp:是一種協議,監聽在UDP67(服務端)68(客戶端)端口
實現:dhcpd(isc維護,維護的還有bind),dnsmasq
dhcp包:dhcpd(ipv4,ipv6),dhcrelay(實現中繼功能,通常不會同時使用)python

tftp server:tftp協議,監聽在udp的69端口,通常只在本地網絡中使用。
centos6和7的啓動方式是不同的,6是守護進程
systemctl start tftp.socket(7)
使用xinetd來啓動(6)
pxe:藉助於dhcp,tftp,yum repository構建出基於網絡引導的自動安裝環境
通常只針對一種環境來自動安裝linux

cobbler:pxe的二次封裝,由python研發
distro(依賴repository)+kickstart--->profile+ip/mask--->system
使用cobbler check檢測,有可能檢測出不少問題,一個一個解決就能夠了
問題:
關閉selinux
vim /etc/sysconfig/selinuxgit

#This file controls the state of SELinux on the system.
#SELINUX= can take one of these three values;
#   enforcing - SELinux security policy is enfored.
#   permissive - SELinux prints warnings instead of enforcing.
#   disabled - No SELinux policy is loaded.
SELINUX=permissive---這裏改成disabled,再重啓服務才能生效,由於selinux是內核中的功能
#SELINUXTYPE= can take one of three two values;
#   targeted - Targeted processes are protected,
# minimum - Modification of targeted policy.Only selected processes are protected.
#   mls - Multi Level Security protection.
SELINUXTYPE=targeted

distro:表示一個發行版,標記一個發行版的最關鍵資源是kernel:vmlinuz和ramdisk

總結:
cobbler安裝完之後須要先啓動cobbler服務,而後cobbler check,若是有問題,就一個一個的去修復
必需要作的是複製這兩個文件
/usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/cobbler/loaders/
而後cobbler sync作一次同步,此時cobbler就可使用了
做用:
管理distro:
cobbler distro {list|add|remove|edit|rename}
管理profile:
cobbler profile {list|add|remove|edit|rename}
同步:
cobbler syncgithub

cobbler-web
Django
http://host/cobbler_web/web

插播:
視頻中有一個課件:沒有記錄徹底

執行"cobbler check"命令檢查存在的 問題,然後逐一按提示解決之。常見的問題以下所示:
1:The 'server' field in /etc/cobbler/settings must be set to something other than localhost,or kickstarting features will not work.This should be a resolvable hostname or IP for the boot server as reachable by all machines that wille use it.
2:For PXE to be functional,the 'next_server' field in /etc/cobbler/settings must be set to someting other than 127.0.0.1,and should match the IP of the boot server on the PXE network.
3:some network boot-loaders are missing from /var/lib/cobbler/loaders,you may run 'cobbler get-loaders' to download them,or,if you only want to handle x86/x86_64 netbooting,you may ensure that you have installed a recent version of the syslinux package installed an can ignore this message entirely. Files in this directory,should you want to support all architectures,should include pxelinux.0,menu.c32,elilo.efi,and yaboot.The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4:change 'disable' to 'no' in /etc/xinetd.d/rsync
5:comment 'dists' on /etc/debmirror.conf for proper debian support
6:comment 'arches' on /etc/debmirror.conf for proper debian support
7:The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed,try:"openssl passwd -1 -salt 'random-phrase-here''your-password-here'" to generate new one
8:fencing tools were not found,and are required to use the (optional) power management features.install cman or fence-agents to use themredis

Restart cobblerd and then run 'cobbler sync' to apply changes.django

如上各問題的解決方法以下所示:
一、修改/etc/cobbler/settings文件中的server參數的值爲提供cobbler服務的主機相應的IP地址或主機名,如:172.16.100.15;
二、修改/etc/cobbler/settings文件中的next_server參數的值爲提供PXE服務的主機相應的IP地址,如172.16.100.16;
三、若是當前節點能夠訪問互聯網,執行"cobbler get-loaders"命令便可;不然,須要安裝syslinux程序包,然後複製/usr/share/syslinux/{pxelinux.0,menu.c32}等文件至/var/lib/cobbler/loaders/目錄中;---最好是複製全部的文件
四、執行"chkconfig rsync on"命令便可;br/>五、註釋/etc/debmirror.conf文件中的"@dists="sid";"一行;---對於centos7而言,這個文件是不存在的,能夠直接忽略
六、註釋/etc/debmirror.conf文件中的"@arches="i386";"一行;
七、執行"openssl passwd -1 -salt $(openssl rand -hex 4)"生成密碼,並用其替換/etc/cobbler/settings文件中default_password_crypted參數的值;
八、執行"yum install cman fence-agents"命令安裝相應的程序包便可;---這是高可用集羣中用到的組件vim

接着重啓cobblerd,然後執行"cobbler sync"同步新的配置至cobbler。centos

2、配置及啓動cobbler所依賴的各服務
cobbler的運行以來與dhcp、tftp、rsync及dns(並不是必須)服務。其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler自帶的tftp功能提供;rsync由rsync程序包提供;dns可由bind提供,也可由dnsmasq提供。
cobbler可自行管理這些服務中部分甚至是所有,但須要配置/etc/cobbler/settings文件中的"manage_dhcp"、"manage_tftpd"、"manage_rsync"和"manage_dns"分別進行定義,另外,因爲每種服務都有着不一樣的實現方式,如若須要進行自定義,須要經過修改/etc/cobbler/modules.conf配置文件中各服務的模塊參數的值來實現。
本文采用了獨立管理的方式,即不經過cobbler來管理這些服務。
2.1配置dhcp服務
定義好所需的"subnet"及其它參數或選項,然後啓動dhcpd守護進程便可。本示例中所用的dhcpd的配置以下所示:
option domain-name "magedu.com";
option domain-name-server 192.168.10.254,172.16.0.1;瀏覽器

default-lease-time 43200;
max-lease-time 86400;

log-facility local7;

subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.121 172.16.100200;
option routers 172.16.100.7;
}

next-server 172.16.100.7;
filename="pxelinux.0";
接着使用"service dhcpd start"啓動服務便可。

2.2配置tftp服務
#chkconfig tftp on
#service xinetd restart

3、配置cobbler
cobbler的各主要組件間的關係以下圖所示。
3.1管理distro
使cobbler變得可用的第一步爲定義distro,其能夠經過爲其指定外部的安裝引導內核及ramdisk文件的方式實現。而若是已經有完整的系統安裝樹(如centos6的安裝鏡像)則推薦使用import直接導入的方式進行。
例如,對於已經掛載至/media/cdrom目錄的Centos 6.5 x86_64的安裝鏡像,則可使用相似以下命令進行導入。
#cobbler import --name=centos-6.5-x86_64 --path=/meida/cdrom
可以使用"cobbler distro list"列出全部的distro。
若是有kickstart文件,也可使用"--kickstart=/path/to/kickstart_file"進行導入,所以import會自動爲導入的distro生成一個profile。

3.2管理profile
cobbler使用profile來爲特定的需求類別提供所須要安裝配置,即在distro的基礎上經過提供kickstart文件來生成一個特定的系統安裝配置,distro的profile能夠出如今PXE的引導菜單中做爲安裝的選擇之一。

所以,若是須要爲前面建立的centos-6.5-x86_64這個distro提供一個可引導安裝條目,其用到的kickstart文件爲/tmp/centos-6.5-x86_64.cfg(只提供了最基本的程序包),則可經過以下命令實現。
#cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64 --kickstart=/tmp/centos-6.5-x86_64.cfg
可以使用"cobbler profile list"查看已經建立的profile。

4、使用cobbler_web
4.1配置cobbler_web的認證功能
cobbler_web支持多種認證方式,如authn_configfile、anthn_ldap或authn_pam(基於操做系統用戶)等,默認爲authn_denyall,即拒絕全部用戶登陸。下面說明兩種能認證用戶登陸cobbler_web的方式。
4.1.1使用authn_pam模塊認證cobbler_web用戶
首先修改modules中[authentication]段的module參數的值爲authn_pam。
接着添加系統用戶,用戶名和密碼按需設定便可,例以下面的命令所示。
#useradd cblradmin
#echo 'cblrpass' | passwd --stdim cblradmin

然後將cblradmin用戶添加至cobbler_web的admin組中。修改/etc/cobbler/users.conf文件,將cblradmin用戶名添加爲admin參數的值便可,以下所示:
[admin]
admin = "cblradmin"
最後重啓cobblerd服務,經過http://YOUR_COBBLERD_IP/cobbler_web訪問便可。
4.1.2使用authn_configfile模塊認證cobbler_web用戶
首先修改modules.conf中[authentication]段的module參數的值爲authn_configfile。
接着建立其認證文件/etc/cobbler/users.digest,並添加所需的用戶便可,須要注意的是,添加第一個用戶時,須要爲htdigest命令使用"-c"選項,後續添加其餘用戶時不能再使用;另外,cobbler_web的realm只能爲Cobbler。以下所示:
#htdigest -c /etc/cobbler/users.digest Cobbler cblradmin---帳號、密碼
最後重啓cobbler服務,經過http://YOU_COBBLERD_IP/cobbler_web訪問便可。
---end---

演示:
三、
ls /usr/share/syslinux/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/cobbler/loaders/
systemctl restart cobblerd.service
cobbler check---檢查一下
cobbler sync---作一次同步操做
而後就應該沒有什麼問題了
vim /etc/cobbler/settings---去找到manage關鍵詞,查看使用的是什麼方式來管理dhcp、tftp、dns等服務
manage_dhcp:0---0表示不適用cobbler來管理
manage_dns:0
manage_tftpd:1
manage_rsync:0---只要確保rsync服務是啓動就能夠systemctl status rsyncd.socket

演示:講解cobbler import命令
已經掛載光盤,導入操做會把光盤上全部文件所有複製到當前文件系統中,因此要確保磁盤空間夠用。會複製到/var/www/下,會在這裏自動建立一個cobbler目錄以及cobbler/ks_mirror/
ls /media/cdrom
df -lh---查看磁盤空間

cobbler import --name="CentOS-7_x86_64-1503" --path=/media/cdrom---這樣就會開始導入
cobbler distro list---列出全部的distro
cobbler profile list---導入之後會自動建立一個distro,而且還會建立一個同名的profile,只不過這個profile沒有kickstart文件,因此沒辦法實現自動安裝。
cobbler sync---若是要肯定使用,就同步一下。
systemctl restart cobblerd.service---爲了萬無一失,重啓下服務
而後要確保這臺主機的dhcp服務開啓
systemctl start dhcpd.service
而後網段中的其餘主機就會自動獲取到一個安裝菜單,第一項local(表示從本地硬盤啓動),第二項CentOS-7-1503-x86_64(本身定義的,此時沒有kickstart文件,可是cobbler會自動提供默認的kickstart文件)

若是想給上邊生成的distro更名字,須要用到編輯命令
cobbler profile edit --help查看如何使用
cobbler profile list
CentOS-7-1503-x86_64
cobbler profile rename --name=CentOS-7-1503-x86_64 --newname=CentOS-7-1503-x86_64-minimal
cobbler profile list---更名成功
CentOS-7-1503-x86_64-minimal

vim centos7.conf---修改kickstart文件
install
xconfig --startxonboot
keyboard --vckeymap=cn --xlayouts='cn'
reboot
rootpw --iscrypted $1$HDHf2v4i$LMo.xGHfxQDO43c.g/
timezone Asia/Shanghai
url --url="http://172.16.100.67/cobbler/ks_mirror/CentOS-7_x86_64-1503/"---這裏改成導入光盤的路徑
lang zh_CN
user --groups=wheel --name=mageedu --password=$6$1eW$..... --iscrypted --gecos="MageEdu"
firewall --disabled
network --bootproto=dhcp
auth --useshadow --passalgo=sha512
text
firstboot --disable
selinux --permissive
ignoredisk --only-use=sda

bootloader --location=mbr --boot-drive=sda
zerombr
clearpart --all --initlabel

part /boot --asprimary --fstype="xfs" --size=512
part swap --fstype="swap" --size=2048
part /usr --fstype="xfs" --size=20480
part / --fstype="xfs" --size=20480

%packagesbr/>@base
@core
lftp
screen
wget
tree

%end

cp centos7.cfg /var/lib/cobbler/kickstarts/---先把kickstart文件複製到這裏
cobbler profile add --name=CentOS-7-x86_64-1503-server --distro=CentOS-7-1503-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg
cobbler profile list---能夠看到如今就有了兩個,都是基於同一個發行版,可是使用不一樣的kikstart文件,安裝出來不一樣的系統環境
CentOS-7-1503-x86_64-minimal
CentOS-7-x86_64-1503-server
cobbler sync---每一次修改完成後都須要同步一下,這個同步操做實際上是在/var/lib/tftpboot/pxelinux.cfg/下生成default文件
vim default
DEFAULT
PROMPT 0
MENU TITLE Cobbler | http://cobbler.github.com---這裏是能夠本身修改的,改爲本身想要的名稱
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local

LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1

LABEL CentOS-7-1503-x86_64-minimal
kernel /images/CentOS-7-103-x86_64/vmlinuz
MENU LABEL CentOS-7-1503-x86_64-minimal
append initrd=/images/CentOS-7-1503-x86_64/initrd.img ksdevice=bootif lang= kssendmac text
ks=http://172.16.100.67/cblr/svc/op/ks/profile/CentOS-7-1503-x86_64-minimal
ipappend 2

LABEL CentOS-7-x86_64-1503-server
kernel /images/CentOS-7-1503-x86_64/vmlinuz
MENU LABEL CentOS-7-x86_64-1503-server
append initrd=/images/CentOS-7-1503-x86_64/initrd.img ksdevice=bootif lang= kssendmac text
ks=http://172.16.100.67/cblr/svc/op/ks/profile/CentOS-7-x86_64-1503-server
ipappen 2

MENU end

而後客戶端就能夠啓動了,自動從cobbler服務器獲取地址並自動安裝

安裝過程當中視頻裏出現了問題,是kickstart文件指定要從光盤安裝
vim /var/lib/cobbler/kickstarts/centos7.cfg
視頻中未找到問題緣由,忽略便可

下面講解的是在centos7的cobbler環境下部署centos6系統
umount /media/cdrom---卸載光盤,卸載以前的centos7系統
mount -r /dev/cdrom /media/cdrom---掛載centos6系統
cobbler import --name=CentOS-6-x86_64 --path=/media/cdrom---cobbler依然會提供centos6的最小化安裝,依然會導入/var/www/cobbler/ks_mirror/下
cobbler distro list---導入完成纔會顯示
CentOS-6-x86_64
CentOS-7-1503-x86_64
cobbler profile list
CentOS-6-x86_64---自動幫你生成最小化安裝的profile
CentOS-7-1503-x86_64-minimal
CentOS-7-x86_64-1503-server
cobbler sync

而後講解cobbler-web
確保如下服務開啓
systemctl start dhcpd.service
systemctl start tftp.socket
systemctl start rsyncd.socket
systemctl start cobblerd.service
systemctl start httpd.service

yum info cobbler-web---屬於epel源,用python-django(web框架)研發的
yum install cobbler-web
vim /etc/cobbler/modules.conf
[authentication]---認證
mocule = anth_configfile

[authorization]---受權
module = authz_allowall---容許全部人訪問

[dns]
module = manage_bind

[dhcp]
module=manage_isc

htdigest -h---仍然有httpd提供
htdigest -c /etc/cobbler/users.digest Cobbler cblradmin(用戶名)---會出現一個交互式命令行,輸入密碼便可

systemctl restart cobblerd.service---因爲是新的定義,因此須要重啓cobbler服務而後使用瀏覽器訪問172.16.100.67/cobbler_web便可看到頁面

相關文章
相關標籤/搜索