運維繫統自動化安裝


實驗1:製作啓動iso迷你版,yum源依賴網絡

1.創建引導光盤,複製光盤下的isolinux文件夾到指定的刻錄光盤的目錄下

cp -r /misc/cd/isolinux/ /app/iso

2.編輯菜單項isolinux.cfg加上一個圖形化安裝和mini模式安裝,一個本地安裝和手動安裝

vim/app/iso/isolinux/isolinux.cfg(下面這些都是可以更改的)

menu title Welcome to CentOSAutoinstall!

labellinux                           

  menu label AutoInstall a ^desktop system

  kernel vmlinuz

  append initrd=initrd.imgks=cdrom:/ks.desktop.cfg

label mini

  menu label AutoInstall a mini ^system

  kernel vmlinuz

  append initrd=initrd.imgks=cdrom:/ks.mini.cfg

label mannual

  menu label ^mannual installed system

  kernel vmlinuz

  append initrd=initrd.img

label local

  menu default

  menu label Boot from ^local drive

  localboot 0xffff

3.把提前做好的應答文件複製到刻錄光盤的根目錄下

 cp /root/ks.mini.cfg /app/iso/mini版的應答文件

 cp /root/ks.desktop.cfg /app/iso/:圖形化的應答文件

4.製作光盤鏡像

mkisofs -R -J-T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Autoinstallcentosboot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o/root/centos6boot.iso /app/iso

5.可以把它製作成U盤啓動盤,方法如下:

1.ddif=centos6boot.iso of=/dev/sdb

2.轉換成U盤格式,因爲有些U盤不支持這種格式,所以需要轉換一下格式

rpm -q syslinux

  isohybrid centos6boot.iso

3.setup參數設置中把U盤改成第一引導盤,然後重新啓動選擇U盤啓動就可以安裝系統了。

易錯tips

1.整個完成的目錄結構如下,app/iso作爲光盤的根目錄:

[root@Centos6mageduapp]# tree /app/iso/

/app/iso/

├── isolinux

   ├── boot.cat

   ├── boot.msg

   ├── grub.conf

   ├── initrd.img

   ├── isolinux.bin

   ├── isolinux.cfg

   ├── memtest

   ├── splash.jpg

   ├── TRANS.TBL

   ├── vesamenu.c32

   └── vmlinuz

├── ks.desktop.cfg

└── ks.mini.cfg

2.應答文件的路徑在光盤的根目錄下

ks=cdrom:/ks.desktop.cfg

ks=cdrom:/ks.desktop.cfg

3.製作光盤鏡像的時候的路徑一定要明確,iso文件的根路徑和製作後存放的路徑

/root/centos6boot.iso/app/iso

4.製作成優盤的時候可以試着掛載,然後查看一下mbr數據是否存在

 mount /dev/sdd /mnt/iso/

 hexdump -C -n 512 /dev/sdd

5.最重要的是能聯網可以拿到yum源,不然就是白搭。

 

實驗2:完整版的啓動光盤的製作,包括yum源和ks文件

第一步:複製完整的光盤目錄到要刻錄光盤的路徑下,由於光盤目錄下有一些隱藏文件,我們可以直接複製整個目錄過來並改名,不用提前創建目錄,所以光盤的根目錄就是centos6iso

cp -rv/misc/cd  /app/centos6iso

第二步:把複製過來的文件中TRANS.TBL刪除掉,暫時不要,留着創建光盤可能會失敗。

 find /app/centos6iso/ -name TRANS.TBL  -OK RM {} \;

第三步:刪除掉複製過來的yum源,自己創建,複製過來的不能用,只需要創建下面這個文件就可以把yum源恢復過來。

 rm -rf /app/centos6iso/repodata/

 createrepo -g/misc/cd/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml/app/centos6iso/

第四步:創建一個目錄存放應答文件

 mkdir /app/centos6iso/ksdir

第五步:複製製作好的應答文件到ksdir

cp/root/{ks.mini.cfg,ks.desktop.cfg} /app/centos6iso/ksdir/

第六步:修改應答文件,因爲yum源在製作在光盤中,所以yum源的路徑需要更改成光盤。

cdrom

#url--url="http://172.17.0.1/centos/6"

第七步:修改菜單文件isolinux.cfg,應答文件路徑是在光盤根目錄下的子文件ksdir目錄下。

defaultvesamenu.c32

#prompt 1

timeout 600

displayboot.msg

menubackground splash.jpg

menu titleWelcome to CentOS Autoinstall!

label desktop

  menu label Autoinstall a ^desktop system

  kernel vmlinuz

  append initrd=initrd.img  ks=cdrom:ksdir/ks.desktop.cfg

label mini

  menu label ^Auto Install a mini system

  kernel vmlinuz

  append initrd=initrd.imgks=cdrom:ksdir/ks.mini.cfg

label mannual

  menu label ^mannual install a system

  kernel vmlinuz

  append initrd=initrd.img

label local

  menu default

  menu label Boot from ^local drive

  localboot 0xffff

第八步:製作光盤。

 mkisofs -R -J -T -v --no-emul-boot--boot-load-size 4 --boot-info-table -V "Autoinstall centosboot" -bisolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6boot.iso/app/centos6iso

Tips:

光盤根目錄的文件夾如下:

[root@Centos6mageduapp]# cd centos6iso/

[root@Centos6mageducentos6iso]# ls

CentOS_BuildTag  EULA images    ksdir     RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6

EFI              GPL   isolinux Packages  repodata                  RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6

 

實驗3:在centos7實現PXE支持centos67的安裝,cnetos6也差不多就是tftp服務的啓動需要依賴於xinetd的啓動,主要就是服務的啓動不同。

第一步:僅主機的模式的獨立網段vmnet11vmware自帶的dhcp功能禁用;禁用iptablesselinux

第二步:安裝所需要的包,只需要一臺主機充當tftpdhcp服務器

 yum install vsftpd dhcp tftp-server syslinux

第三步:啓動這幾個服務,其他幾個服務可以直接啓動,dhcp服務啓動必須要把配置文件激活,如下

1cp/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

 systemctl start dhcpd

 systemctl enable dhcpd

2systemctlrestart tftp

  systemctl enable tftp

3systemctlrestart vsftpd

  systemctl enable vsftpd

第四步:因爲安裝兩個系統,所以需要兩張光盤的yum源和啓動文件,記住光盤不要搞錯了,我都掉坑了,出現裝包的時候系統不兼容一直無法安裝httpd,然後才用vsftpd的,一直出錯浪費時間。

 mkdir /var/ftp/pub/centos/{6,7} -pv

vim/etc/fstab

/dev/sr0/var/ftp/pub/centos/6 iso9660 defaults 0 0

/dev/sr1/var/ftp/pub/centos/7 iso9660 defaults 0 0

mount -a

第五步:準備應答文件,和yum源放在一個地方,比較方便,然後把系統6的模板文件傳過來製作應答文件並改名ks6.cfg

 mkdir /var/ftp/pub/ksdir

scproot@centos6:/root/anaconda-ks.cfg /var/ftp/pub/ksdir/

mv  anaconda-ks.cfg ks6.cfg

 

ks6.cfg 內容如下:

# Kickstartfile automatically generated by anaconda.

#version=DEVEL

install

url--url=ftp://192.168.134.162/pub/centos/6

langen_US.UTF-8

keyboard us

network--onboot yes --device eth0 --bootproto dhcp --noipv6

network--onboot yes --device eth1 --bootproto dhcp --noipv6

rootpw  --iscrypted$6$awHNUW8Nm4cVeCHm$FFwPpGJqCFCZY/vMoFA5hw4Nz7gve2stV3mMPO9mMdqumJf837vVDkxwZ0Dq/WM/zaJczktCXaau4P83RoVFP1

firewall--disable

authconfig--enableshadow --passalgo=sha512

selinux--disabled

timezoneAsia/Shanghai

bootloader --location=mbr--driveorder=sda --append="crashkernel=auto rhgb quiet"

# Thefollowing is the partition information you requested

# Note thatany partitions you deleted are not expressed

# here sounless you clear all partitions first, this is

# not guaranteedto work

clearpart--all

zerombr

reboot

text

part /boot--fstype=ext4 --size=1024

part /--fstype=ext4 --size=51200

part /app--fstype=ext4 --size=51200

part swap--size=4096

%packages

@base

@chinese-support

@core

@debugging

@basic-desktop

@desktop-platform

@fonts

@general-desktop

@graphical-admin-tools

@input-methods

@internet-applications

@internet-browser

@java-platform

@network-file-system-client

@office-suite

@print-client

@remote-desktop-clients

@server-platform

@server-policy

@workstation-policy

@x11

mtools

pax

%end

ksvalidatorks7.cfg:檢查語法

 

 ks7.cfg內容如下:

# Systemauthorization information

auth--enableshadow --passalgo=sha512

# Use CDROMinstallation media

url--url=ftp://192.168.134/pub/centos/7

# Usegraphical install

text

reboot

# Run the SetupAgent on first boot

firstboot--disable

ignoredisk--only-use=sda

# Keyboardlayouts

keyboard--vckeymap=us --xlayouts='us'

# Systemlanguage

langen_US.UTF-8

# Networkinformation

network  --bootproto=dhcp --device=ens33--onboot=on   --ipv6=auto --activate

network  --hostname=localhost.localdomain

# Rootpassword

rootpw--iscrypted$6$VWWsz3IDVWgWQxru$IctzHzYw.xr21EW.2FgNgLbkDec5U83f9FLbBGopY4X6dvmqPx790lKGECpPYADdrGQDCZhvTVGvqu2b8.ZAF/

# Systemservices

services--enabled="chronyd"

# Systemtimezone

timezoneAmerica/New_York --isUtc

user--name=magedu--password=$6$m.LU6qXZO229yz/g$7885C9c9HhQoM8yVi1C7b.vg1vCK4K0f8b0rhER5wmY/J7hfa0vTy./uZW.1ts5j5ve0ejW/v9caMmIvttJfz1--iscrypted --gecos="magedu"

# X WindowSystem configuration information

xconfig  --startxonboot

# Systembootloader configuration

zerombr

bootloader--location=mbr --boot-drive=sda

autopart--type=plain

# Partitionclearing information

clearpart--all --initlabel --drives=sda

skipx

%packages

@^graphical-server-environment

@base

@core

@desktop-debugging

@dial-up

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@hardware-monitoring

@input-methods

@internet-browser

@multimedia

@print-client

@x11

%end

%addoncom_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda

pwpolicy root--minlen=6 --minquality=50 --notstrict --nochanges --notempty

pwpolicy user--minlen=6 --minquality=50 --notstrict --nochanges --notempty

pwpolicy luks--minlen=6 --minquality=50 --notstrict --nochanges --notempty

%end

ksvalidatorks7.cfg 檢查語法

第六步:複製菜單文件和pxelinux.0tftpboot下,並且創建一個default的菜單文件。tftpboot相當於就是系統的根目錄。

 cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

 cp /usr/share/syslinux/menu.c32  /var/lib/tftpboot/

 mkdir /var/lib/tftpboot/pxelinux.cfg

 cp /var/ftp/pub/centos/7/isolinux/isolinux.cfg  default

第七步:在tftpboot下創建兩個文件夾存放centos7centos6的啓動文件。

 mkdir /var/lib/tftpboot/centos6

 mkdir /var/lib/tftpboot/centos7

 cp/var/ftp/pub/centos/6/isolinux/initrd.img /var/lib/tftpboot/centos6

 cp /var/ftp/pub/centos/6/isolinux/vmlinuz  /var/lib/tftpboot/centos6

 cp /var/ftp/pub/centos/7/isolinux/vmlinuz  /var/lib/tftpboot/centos7

 cp/var/ftp/pub/centos/7/isolinux/initrd.img /var/lib/tftpboot/centos7

第八步:編寫菜單

vim/var/lib/tftpboot/pxelinux.cfg/default

defaultmenu.c32

timeout 600

menu titleCentOS Linux 7

label centos7

  menu label Auto Install CentOS Linux ^7

  kernel centos7/vmlinuz

  append initrd=centos7/initrd.imgks=ftp://192.168.134.162/pub/ksdir/ks7.cfg

label centos6

  menu label Auto install Centos linux ^6

  kernel centos6/vmlinuz

  append initrd=centos6/initrd.img  ks=ftp://192.168.134.162/pub/ksdir/ks6.cfg

labelmannualcentos6

  menu label ^mannual install centos linux6                                                                                                                                                    

  kernel centos6/vmlinuz

  append initrd=centos6/initrd.imginst.repo=ftp://192.168.134.162/centos/6/

label local

  menu default

  menu label Boot from ^local drive

  laocalboot 0xffff

menu end

第九步:新建一個虛擬機,在同一個網段,不然拿不到yum源和應答文件

整個步驟具體的文件目錄如下:

1/var/lib/tftpboot

├── centos6

   ├── initrd.img

   └── vmlinuz

├── centos7

   ├── initrd.img

   └── vmlinuz

├── menu.c32

├── pxelinux.0

└── pxelinux.cfg

    └── default

2[root@centos7pub]# ls

centos  ksdir

[root@centos7pub]# cd centos/

[root@centos7centos]# ls

6  7

[root@centos7centos]# cd ..

[root@centos7pub]# cd ksdir/

[root@centos7ksdir]# ls

ks6.cfg  ks7.cfg

 

實驗4cobbler 實現PXE安裝 

首先禁用iptalesselinux,然後找一個獨立的網段,僅主機模式。

第一步:安裝cobbler軟件它相當於代理裝了tftp ,http,,它屬於epel,安裝dhcp軟件

    yum install cobbler dhcp 

 

第二步:啓動各個服務,不包括dhcp,它現在還沒有配置文件

systemctlenable  cobblerd  httpd tftp dhcpd

systemctlstart  cobblerd httpd tftp

 

第三步:環境檢查cobbler,報出8條錯誤,一共有四條需要改的地方。

cobbler check

vim/etc/cobbler/settings

next_server: 自己的主機ip

server: 自己的主機ip

default_password_crypted:"$1$loV1KZf9$mb82i2T9N3UOWGmHWojOP0"  

opensslpasswd -1 生成口令

 

systemctlrestart cobblerd重新啓動服務

 

第四步:在第三步的基礎上還需下載一個啓動文件

如果當前節點可以訪問互聯網,根據提示執行“cobbler getloaders”命令即可;否則,需要安裝syslinux程序包,而後複製/usr/share/syslinux/{pxelinux.0,memu.c32}等文件至/var/lib/cobbler/loaders/目錄中,一般都是直接複製到/var/lib/tftpboot/下面。然後同步數據cobbler sync

 

第五步:準備dhcp服務器了,讓cobbler直接代理dhcp服務器,然後直接改動模板文件就會生成dhcp的配置文件,然後就可以啓動dhcp服務器了。

vim/etc/cobbler/settings

manage_dhcp:1

vim /etc/cobbler/dhcp.template

subnet192.168.134.0 netmask 255.255.255.0 {

     option subnet-mask         255.255.255.0;

     range dynamic-bootp        192.168.134.100 192.168.134.254;             

     default-lease-time         21600;

     max-lease-time             43200;

     next-server                $next_server;

     class "pxeclients" {

          match if substring (optionvendor-class-identifier, 0, 9) = "PXEClient"; 

同步數據cobbler sync


第六步:開始準備yum源,導入光盤然後查詢,就可以直接安裝了,菜單文件默認已經配置好了。

obbler import--path=/misc/cd/ --name=centos7.3

cobblerdistro list查詢yum源,也就是查詢系統

cobblerprofile list查詢應答文件


第七步:可以把系統6也加進來,加上光盤,然後導入查詢,可以看到兩個系統。對應兩個應答文件,菜單文件已經默認配置好了,不需要配置。

mount/dev/sr1 /mnt

cobblerimport --path=/mnt  --name=centos6.9

cobblerdistro list查詢yum源,也就是查詢系統

cobblerprofile list查詢應答文件


第八步:它默認的應答文件都是最小化安裝,如果想要自己配置應答文件可以自己導入進來,需要注意的就是應答文件必須放在它默認的路徑下。

cobblerprofile add --name=centos6.9desktop --distro=centos6.9-x86_64--kickstart=/var/lib/cobbler/kickstarts/ks6.cfg


第九步:自己配置的應答文件需要把yum源改成cobbler默認的yum

vim/var/lib/cobbler/kickstarts/ks6.cfg

url--url=$tree  

整個實驗做完了,這個和單純pxe不同的就是,應答文件和yum源在不同目錄下,不可以隨便放,都有默認的位置,yum源在/var/www/cobbler/ks_mirror/這個目錄下,它自己會默認放在裏面不用管,如果是自己的配置的應答文件需要自己放在/var/lib/cobbler/kickstarts/,當然不能忘記應答文件的yum源要指向$tree這個變量,如果是它默認的配置的應答文件就不用管了。菜單文件在var/lib/tftpboot/pxelinux.cfg會自己生成菜單文件,不需要修改了。

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章