cobbler網絡裝機

cobbler網絡裝機

原理分析

cobbler簡介
Cobbler經過將設置和管理一個安裝服務器所涉及的任務集中在一塊兒,從而簡化了系統配置。至關於Cobbler封裝了DHCP、TFTP、XINTED等服務,結合了PXE、kickstart等安裝方法,能夠實現自動化安裝操做系統,而且能夠同時提供多種版本,以實如今線安裝不一樣版本的系統。linux

cobbler相關服務ios

DHCP:DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工做, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員做爲對全部計算機做中央管理的手段。DHCP有3個端口,其中UDP67和UDP68爲正常的DHCP服務端口,分別做爲DHCP Server和DHCP Client的服務端口;546號端口用於DHCPv6 Client,而不用於DHCPv4,是爲DHCP failover服務,這是須要特別開啓的服務,DHCP failover是用來作「雙機熱備」的。git

TFTP:TFTP是一種比較特殊的文件傳輸協議。相對於FTP和目前常用的SFTP,TFTP是基於TCP/IP協議簇,用於進行簡單文件傳輸,提供簡單、低開銷的傳輸服務。TFTP的端口設置爲69。
相對於常見的FTP,TFTP有兩個比較好的優點:github

  1. TFTP基於UDP協議,若是環境中沒有TCP協議,是比較合適的;
  2. TFTP執行和代碼佔用內存量比較小;

默認狀況下,Linux內部是安裝了tftp服務器包的。可是默認是不啓動的。vim

PXE:預啓動執行環境(Preboot eXecution Environment,PXE,也被稱爲預執行環境)提供了一種使用網絡接口(Network Interface)啓動計算機的機制。這種機制讓計算機的啓動能夠不依賴本地數據存儲設備(如硬盤)或本地已安裝的操做系統。centos

PXE當初是做爲Intel的有線管理體系的一部分,Intel 和 Systemsoft於1999年9月20日公佈其規格(版本2.1)[1]。經過使用像網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協定(DHCP)、小型文件傳輸協議(TFTP)等幾種網絡協議和全局惟一標識符(GUID)、通用網絡驅動接口(UNDI)、通用惟一識別碼(UUID)的概念並經過對客戶機(經過PXE自檢的電腦)固件擴展預設的API來實現目的。服務器

交互過程網絡

  1. 裸機配置了從網絡啓動後,開機後會廣播包請求DHCP服務器(cobbler server)發送其分配好的一個IP
  2. DHCP服務器(cobbler server)收到請求後發送responese,包括其ip地址
  3. 裸機拿到ip後再向cobbler server發送請求OS引導文件的請求
    4.cobbler server告訴裸機OS引導文件的名字和TFTP server的ip和port
  4. 裸機經過上面告知的TFTP server地址和port通訊,下載引導文件
  5. 裸機執行執行該引導文件,肯定加載信息,選擇要安裝的os,期間會再向cobbler server請求kickstart文件和os image
  6. cobbler server發送請求的kickstart和os iamge
  7. 裸機加載kickstart文件
  8. 裸機接收os image,安裝該os image

安裝部署

初始化環境dom

軟件:vmware workstation 14

操做系統: centos7.4-mini

關閉防火牆:
    systemctl stop firewalld
    systemctl disable firewalld
    
修改selinux:
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
    
修改網卡配置文件:
    BOOTPROTO=static
    IPV6INIT=no
    ONBOOT=YES
    IPADDR=192.168.26.30
    NETMASK=255.255.255.0
    GATEWAY=192.168.26.2
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    
添加yum源:
    cd /etc/yum.repos.d
    yum -y install epel-release
    yum clean all
    yum makecache
    
最後reboot,保存快照。

安裝須要的包工具

yum -y install httpd tftp xinetd pykickstart cobbler dhcp
systemctl start httpd cobblerd rsyncd
systemctl enable httpd cobblerd rsyncd

修改配置文件

cobbler主目錄在/etc/cobbler/settings

vim /etc/cobbler/settings
    將server: 127.0.0.1修改成server: 192.168.26.30
    將修改成next_server: 127.0.0.1修改成next_server: 192.168.26.30
    將manage_dhcp: 0修改成manage_dhcp: 1   -->表示由cobbler來控 制dhcp
    :x

修改tftp配置文件:/etc/xinetd.d/tftp
    disabled後面改成no  -->開機啓動
    
cobbler get-loaders  -->下載補丁

修改dhcp:/etc/cobbler/dhcp.template
##此處提出正確配置
subnet 192.168.26.0 netmask 255.255.255.0 {
     option routers             192.168.26.2;
     option domain-name-servers 114.114.114.114;  -->DNS,若是不寫後面在執行安裝後腳本會報錯
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.26.100 192.168.26.254;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;

設置安裝操做系統的root密碼:
    openssl passwd -1 -salt 'youdaoyun' 'youdaoyun'
    將生成的隨機字符添加到cobbler配置文件中
        將以前這行註釋掉替換成本身的密碼,以下圖

image

重啓應用
    systemctl restart cobblerd xinetd
    cobbler check  -->檢查命令,通常還剩餘兩個,不用管
    cobbler sync  -->同步配置文件

上傳鏡像

選擇的是centos7-mini.iso包,後面有須要的東西能夠寫在ks文件中

1.將iso包上傳到根目錄下
    mkdir -p /data/centos7.4-mini
    mount -o loop CentOS-7.4-x86_64-Minimall-1708.iso /data/centos7.4-mini/
    
    使用df -h查看是否掛載成功
    
2.導入鏡像文件
    cobbler import --path=/data/centos7.4-mini/ --name=CentOS_7.4_Mini --arch=x86_64
    
        --path表明鏡像地址
        --name表明當pxe啓動後選擇的哪一個鏡像
        --arch表明指定安裝源是64位
    
3.查看profile
    cobbler profile list
    
4.查看profile的內容
    cobbler profile report

5.將已經作好的ks文件修改成centos7_4.cfg上傳到/var/lib/cobbler/kickstarts/,等下會貼出來

6.自定義kickstart文件
cobbler profile edit --name=CentOS_7.4_Mini-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7_4.cfg

7.修改centos7內核,即網卡名
cobbler profile edit --name=CentOS_7.4_Mini-x86_64 --kopts='net.ifnames=0 biosdevname=0'

8.修改完配置文件必須運行cobbler sync同步配置

image

ks文件

#Kickstart Configurator for cobbler by Jason Zhao
#platform=x86, AMD64, or Intel EM64T
#System  language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $default_password_crypted
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
#System authorization infomation
auth  --useshadow  --enablemd5
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=em1 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
 
%post
systemctl disable postfix.service
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
yum -y install vim net-tools
%end

啓動虛擬機測試
1.設置服務器網絡啓動,在vmware workstation中爲按下電源時打開固件
image

2.DHCP獲取過程太快了,直接來到了cobbler的界面
image

選項1爲從本地磁盤啓動,可是由於在vmware workstation中作的,預先加載了centos7的環境,因此即便你從本地磁盤啓動,也會是一個安裝操做系統的界面

選項2是咱們剛剛作的,直接選擇第二個,而後等待安裝,在安裝完成後會關閉selinux、防火牆,而且安裝vim、net-tools工具包。

其他配置:有時候須要標識企業信息或者我的信息,能夠經過如下方式進行修改。

vim /etc/cobbler/pxe/pxedefault.template
    將第二行的 Cobbler | http://cobbler.github.io/修改爲你本身的標識
    
修改完配置文件後須要執行cobbler sync

因爲該文檔直接由有道雲筆記拷貝過來,圖像是看不到的,還請見諒。

相關文章
相關標籤/搜索