通过前面服务端的部署,已经配置好了 Cobbler Server 端,接下来开始进行 CentOS/Ubuntu 的批量安装,在进行 CentOS/Ubuntu 批量安装时,也需要通过Cobbler来做相应的发行版导入配置。流程如下:

  1. 上传ISO镜像到 Cobbler Server 端
  2. 导入ISO镜像到 Cobbler Server 端
  3. 配置ISO镜像相关自动值守安装文件

一、CentOS 配置过程:

  • 上传ISO镜像

将 CentOS-7-x64-Minimal-1708.iso 镜像拷贝至 cobbler server 服务器/root/目录下,在/mnt/ 目录下为其建立一个目录并挂载,如下:

mkdir /mnt/centos7
mount -t iso9660 -o loop,ro CentOS--x64-Minimal-.iso /mnt/centos7/
  • 导入ISO镜像

成功挂载后,开始导入至 cobbler 中,如下:

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

导入成功后,会输出:*** TASK COMPLETE ***,截图如下:

导入镜像的同时,cobbler会自动生成该镜像的 profile 和 distro,可以通过 list 和 report 命令来查看细节,如下:

cobbler list

cobbler report

从上图可以看到我们导入的 centos7 使用的 Kickstart 文件是/var/lib/cobbler/kickstarts/sample_end.ks

  • 配置ISO镜像自动值守安装文件

前面两步的上传和导入ISO镜像都是基本步骤,无须解释。这里第三步配置ISO镜像自动值守安装文件的目的是用来设定ISO镜像在安装过程中如何配置(也就是操作系统的那些设置,如硬盘分区、用户帐号、密码等)。

从第二步 “cobbler report” 中可以看到,导入的系统相关配置文件路径为/var/lib/cobbler/kickstarts/sample_end.ks,那么我们就可以修改该文件,在该文件中来指定操作系统安装的设置(事实上,我们可以在第二步中指定具体的配置,未指定才会使用该默认文件),配置如下:

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 语法参考

二、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.-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语法参考

使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安装(二)的更多相关文章

  1. 使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    本文记录了我使用Cobbler批量安装部署Linux和Windows系统的过程,文章主要分为三部分:Cobbler服务端的安装配置.Linux发行版CentOS和Ubuntu的自动安装部署.Windo ...

  2. (转)使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    原文:http://www.cnblogs.com/pluse/p/8316914.html http://blog.51cto.com/dreamway/1166589---------Cobble ...

  3. 使用Cobbler批量部署Linux和Windows:Windows系统批量安装(三)

    Tutorial: Installing Windows with cobbler (cobbler安装Windows) Windows系统的自动安装需要用到Win PE工具.流程如下: 定制Win ...

  4. PXE批量部署linux操作系统

    前言 在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我 ...

  5. kali linux 、 windows、ubuntu三系统的引导问题

    '小飞机'是一个学生,所以接触的东西,虽广泛,但并不精通,在此利用随笔,记录自己的一些学习过程,以及自己的想法,既可以有时间自己复习,也可以顺便帮助别人. 近期由于同学的引诱以及男生天生对于破解的好奇 ...

  6. Linux系统(Centos)下安装nodejs并配置环境

    总结Centos下安装nodejs并配置环境,记录成功安装的方法.推荐的安装方法是利用已编译的二进制文件安装,不推荐使用源码的形式安装,一是源码安装比较麻烦,二是需要自行下载编译浪费时间. 1.安装n ...

  7. Redhat Enterprise Linux 7.4/CentOS 7.4 安装后初始化配置

    由于我是最小化安装,需要在安装后进行一些配置 1. 设定启动级别 [root@home ~]# systemctl set-default multi-user.target 2. 设定网络 [roo ...

  8. Linux通用KVM自动安装Shell脚本(兼容所有Linux发行版/CentOS/Ubuntu)

    官网: https://github.com/retspen/webvirtmgr/wiki/Setup-Host-Server 安装: wget -O - https://retspen.githu ...

  9. Linux发行版centos, ubuntu等

    公司装的是centos,centos其实就是无支持版的redhat. redhat是一个服务器的操作系统它的稳定性是比较高的,同时提供在线管理服务,服务器故障预警等,当然前提是要购买昂贵的服务. Su ...

随机推荐

  1. PAT甲级题解-1057. Stack (30)-树状数组

    不懂树状数组的童鞋,正好可以通过这道题学习一下树状数组~~百度有很多教程的,我就不赘述了 题意:有三种操作,分别是1.Push key:将key压入stack2.Pop:将栈顶元素取出栈3.PeekM ...

  2. 20135202闫佳歆--week2 操作系统是如何工作的--学习笔记

    此为个人学习笔记存档 week 2 操作系统是怎么工作的 一.计算机是如何工作的?--三个法宝 (一)三个法宝 1.存储程序计算机 所有计算机的基础性的逻辑框架. 2.函数调用堆栈 在低级语言中并不很 ...

  3. 第三周:构造一个简单的LINUX系统MENUOS

    吕松鸿 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...

  4. 软工实践练习一 git使用心得

    使用git进行代码管理的心得 小组 1.结对的同学创建了小组,我属于被邀请的.附上图片一张. 2.已将代码库https://github.com/sefzu2015/AutoCS fork到了小组or ...

  5. Daily Scrum - 11/19

    今天任烁帮忙更新了大家在Sprint 2中的Task,基本每人的Task都是细分到每天的,这样大家初期的工作应该会更有效率一点. 任烁今天表示“进度条背词法”应该是可以融合到原有算法中的,期待他的改进 ...

  6. final评论1

    1-约跑APP 小组准备的非常的充分,还带了摄像头,发布过程清晰.团队的约跑项目界面相较于Beta版本进行了美化,增加了背景图片,使项目看起来更美观.同时项目支持聊天信息的接收和发送,个人觉得他们组的 ...

  7. USACO 2012 December ZQUOJ 24128 Wifi Setup(动态dp)

    题意:给出在同一条直线上的n个点和两个数A,B,现在要在这条直线上放置若干个信号塔,每个信号塔有一个r值,假设它的位置是x,则它能覆盖的范围是x-r~x+r,放置一个信号塔的花费是A+B*r,问要覆盖 ...

  8. mysql存储过程学习第一天

    摘要:存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在 ...

  9. CF1073E Segment Sum

    数位DP,求[L,R]区间内所有"数字内包含的不同数码不超过k个的数字"之和.在状态上加一维状态压缩表示含有的数码集合.一开始读错题以为是求数字的个数.读对题之后调了一会儿. #i ...

  10. BZOJ2744 HEOI2012朋友圈(二分图匹配)

    先考虑B国.容易发现a xor b mod 2=0即二进制末位相同,那么可以据此将所有人分成两部分,每一部分各自是一个完全图.然后再将a or b有奇数个1的边连上,现在需要求的就是这样一个图里的最大 ...