使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安裝(二)

經過前面服務端的部署,已經配置好了 Cobbler Server 端,接下來開始進行 CentOS/Ubuntu 的批量安裝,在進行 CentOS/Ubuntu 批量安裝時,也須要經過Cobbler來作相應的發行版導入配置。流程以下:html

  1. 上傳ISO鏡像到 Cobbler Server 端
  2. 導入ISO鏡像到 Cobbler Server 端
  3. 配置ISO鏡像相關自動值守安裝文件

1、CentOS 配置過程:linux

  • 上傳ISO鏡像

將 CentOS-7-x64-Minimal-1708.iso 鏡像拷貝至 cobbler server 服務器/root/目錄下,在/mnt/ 目錄下爲其創建一個目錄並掛載,以下:ubuntu

mkdir /mnt/centos7
mount -t iso9660 -o loop,ro  CentOS-7-x64-Minimal-1708.iso /mnt/centos7/

 

  • 導入ISO鏡像

成功掛載後,開始導入至 cobbler 中,以下:centos

cobbler import --path=/mnt/centos7/ --arch=x86_64 --name=centos7

 導入成功後,會輸出:*** TASK COMPLETE ***,截圖以下:bash

導入鏡像的同時,cobbler會自動生成該鏡像的 profile 和 distro,能夠經過 list 和 report 命令來查看細節,以下:服務器

cobbler list

 

 

cobbler report

從上圖能夠看到咱們導入的 centos7 使用的 Kickstart 文件是/var/lib/cobbler/kickstarts/sample_end.kskoa

 

  • 配置ISO鏡像自動值守安裝文件

前面兩步的上傳和導入ISO鏡像都是基本步驟,無須解釋。這裏第三步配置ISO鏡像自動值守安裝文件的目的是用來設定ISO鏡像在安裝過程當中如何配置(也就是操做系統的那些設置,如硬盤分區、用戶賬號、密碼等)。ssh

從第二步 「cobbler report」 中能夠看到,導入的系統相關配置文件路徑爲/var/lib/cobbler/kickstarts/sample_end.ks,那麼咱們就能夠修改該文件,在該文件中來指定操做系統安裝的設置(事實上,咱們能夠在第二步中指定具體的配置,未指定纔會使用該默認文件),配置以下:ide

auth  --useshadow  --enablemd5
bootloader --location=mbr
clearpart --all --initlabel
graphical
firewall --enabled
firstboot --disable
keyboard us
lang en_US
url --url=$tree
$yum_repo_stanza
$SNIPPET('network_config')
reboot

#Root password
rootpw --iscrypted $default_password_crypted
selinux --disabled
skipx
timezone  America/New_York
install
zerombr
autopart

%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
$SNIPPET('pre_anamon')
%end

%packages
$SNIPPET('func_install_if_enabled')
%end

%post --nochroot
$SNIPPET('log_ks_post_nochroot')
%end

%post
$SNIPPET('log_ks_post')
$yum_config_stanza
$SNIPPET('post_install_kernel_options')
$SNIPPET('post_install_network_config')
$SNIPPET('func_register_if_enabled')
$SNIPPET('download_config_files')
$SNIPPET('koan_environment')
$SNIPPET('redhat_register')
$SNIPPET('cobbler_register')
$SNIPPET('post_anamon')
$SNIPPET('kickstart_done')
%end

以上是一個簡單配置文件,具體定製能夠參考這裏:KICKSTART 語法參考oop

 

2、Ubuntu 配置過程:

  • 上傳ISO鏡像

將 ubuntu-16.04.3-server-x64.iso 鏡像拷貝至 cobbler server 服務器/root/目錄下,在/mnt/ 目錄下爲其創建一個目錄並掛載,以下:

mkdir /mnt/ubuntu16
mount -t iso9660 -o loop,ro ubuntu-16.04.3-server-x64.iso /mnt/ubuntu16
  • 導入ISO鏡像

成功掛載後,開始導入至 cobbler 中,以下:

cobbler import --name=ubuntu16 --path=/mnt/ubuntu16/ --breed=ubuntu

 導入成功後,會輸出:*** TASK COMPLETE ***,截圖以下:

 

在導入ISO鏡像時,會有不少的標準錯誤輸出,以下:

 

這裏出現了不少這樣的錯誤,最終導入其實是成功的,可是不知道爲何這裏出現了錯誤,推測多是Cobbler的bug,該服務多是在哪裏重定向了標準輸出至標準錯誤,使得程序誤覺得導入過程當中出現問題(僅推測)。對於這樣的錯誤忽略便可。

在導入Ubuntu 16.04的ISO鏡像時,還額外生成了一個系統,以下:

這裏生成的系統是一個快捷方式,至於爲何生成,不得而知。

導入鏡像的同時,Cobbler會自動生成該鏡像的 profile 和 distro,能夠經過 list 和 report 命令來查看細節,以下:

從上圖能夠看到咱們導入的 Ubuntu 16.04 使用的 preseed 文件是/var/lib/cobbler/kickstarts/sample.seed

 

  • 配置ISO鏡像自動值守安裝文件

這裏的第三步和 CentOS 系統同樣,也是用來設定ISO鏡像在安裝過程當中如何配置

d-i debian-installer/locale string en_US

d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/toggle select No toggling
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/variantcode string

d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string $myhostname


d-i time/zone string US/Eastern
d-i clock-setup/utc boolean true
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server  string ntp.ubuntu.com

d-i mirror/country string manual
d-i mirror/http/hostname string $http_server
d-i mirror/http/directory string $install_source_directory
d-i mirror/http/proxy string

d-i live-installer/net-image string http://$http_server/cobbler/links/$distro_name/install/filesystem.squashfs

d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-partitioning/confirm_write_new_label boolean true

d-i partman-auto/choose_recipe select atomic


d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password $default_password_crypted

d-i passwd/make-user boolean false

$SNIPPET('preseed_apt_repo_config')

tasksel tasksel/first multiselect standard

d-i pkgsel/include string ntp ssh wget

d-i grub-installer/grub2_instead_of_grub_legacy boolean true
d-i grub-installer/bootdev string default

d-i debian-installer/add-kernel-opts string $kernel_options_post

d-i finish-install/reboot_in_progress note


d-i preseed/early_command string wget -O- \
   http://$http_server/cblr/svc/op/script/$what/$name/?script=preseed_early_default | \
   /bin/sh -s


d-i preseed/late_command string wget -O- \
   http://$http_server/cblr/svc/op/script/$what/$name/?script=preseed_late_default | \
   chroot /target /bin/sh -s

以上是一個簡單配置文件,具體定製能夠參考這裏:Preseed語法參考

相關文章
相關標籤/搜索