黑帽联盟

 找回密码
 会员注册
查看: 1235|回复: 0
打印 上一主题 下一主题

[基础服务] 使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安装(二)

[复制链接]

895

主题

38

听众

3323

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 1644 天

    [LV.Master]伴坛终老

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

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


    一、CentOS 配置过程:

    • 上传ISO镜像

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

    1. mkdir /mnt/centos7
    2. mount -t iso9660 -o loop,ro  CentOS-7-x64-Minimal-1708.iso /mnt/centos7/
    复制代码
    • 导入ISO镜像

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

    1. cobbler import --path=/mnt/centos7/ --arch=x86_64 --name=centos7
    复制代码

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

    1.png

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

    1. cobbler list
    复制代码

    2.png

    1. cobbler report
    复制代码

    3.png

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


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

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

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

    1. auth  --useshadow  --enablemd5
    2. bootloader --location=mbr
    3. clearpart --all --initlabel
    4. graphical
    5. firewall --enabled
    6. firstboot --disable
    7. keyboard us
    8. lang en_US
    9. url --url=$tree
    10. $yum_repo_stanza
    11. $SNIPPET('network_config')
    12. reboot

    13. #Root password
    14. rootpw --iscrypted $default_password_crypted
    15. selinux --disabled
    16. skipx
    17. timezone  America/New_York
    18. install
    19. zerombr
    20. autopart

    21. %pre
    22. $SNIPPET('log_ks_pre')
    23. $SNIPPET('kickstart_start')
    24. $SNIPPET('pre_install_network_config')
    25. $SNIPPET('pre_anamon')
    26. %end

    27. %packages
    28. $SNIPPET('func_install_if_enabled')
    29. %end

    30. %post --nochroot
    31. $SNIPPET('log_ks_post_nochroot')
    32. %end

    33. %post
    34. $SNIPPET('log_ks_post')
    35. $yum_config_stanza
    36. $SNIPPET('post_install_kernel_options')
    37. $SNIPPET('post_install_network_config')
    38. $SNIPPET('func_register_if_enabled')
    39. $SNIPPET('download_config_files')
    40. $SNIPPET('koan_environment')
    41. $SNIPPET('redhat_register')
    42. $SNIPPET('cobbler_register')
    43. $SNIPPET('post_anamon')
    44. $SNIPPET('kickstart_done')
    45. %end
    复制代码


    以上是一个简单配置文件,具体定制可以参考这里:KICKSTART 语法参考---https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax。


    二、Ubuntu 配置过程:

    • 上传ISO镜像

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

    1. mkdir /mnt/ubuntu16
    2. mount -t iso9660 -o loop,ro ubuntu-16.04.3-server-x64.iso /mnt/ubuntu16
    复制代码
    • 导入ISO镜像

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

    1. cobbler import --name=ubuntu16 --path=/mnt/ubuntu16/ --breed=ubuntu
    复制代码

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

    4.png


    在导入ISO镜像时,会有很多的标准错误输出,如下:

    5.png


    这里出现了很多这样的错误,最终导入实际上是成功的,但是不知道为什么这里出现了错误,推测可能是Cobbler的bug,该服务可能是在哪里重定向了标准输出至标准错误,使得程序误以为导入过程中出现问题(仅推测)。对于这样的错误忽略即可。


    在导入Ubuntu 16.04的ISO镜像时,还额外生成了一个系统,如下:

    6.png

    这里生成的系统是一个快捷方式,至于为什么生成,不得而知。


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

    7.png

    从上图可以看到我们导入的 Ubuntu 16.04 使用的 preseed 文件是/var/lib/cobbler/kickstarts/sample.seed


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

    这里的第三步和 CentOS 系统一样,也是用来设定ISO镜像在安装过程中如何配置

    1. d-i debian-installer/locale string en_US

    2. d-i console-setup/ask_detect boolean false
    3. d-i keyboard-configuration/toggle select No toggling
    4. d-i keyboard-configuration/layoutcode string us
    5. d-i keyboard-configuration/variantcode string

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


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

    12. d-i mirror/country string manual
    13. d-i mirror/http/hostname string $http_server
    14. d-i mirror/http/directory string $install_source_directory
    15. d-i mirror/http/proxy string

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

    17. d-i partman/choose_partition select finish
    18. d-i partman/confirm boolean true
    19. d-i partman/confirm_nooverwrite boolean true
    20. d-i partman-auto/method string lvm
    21. d-i partman-lvm/device_remove_lvm boolean true
    22. d-i partman-lvm/confirm boolean true
    23. d-i partman-lvm/confirm_nooverwrite boolean true
    24. d-i partman-md/device_remove_md boolean true
    25. d-i partman-partitioning/confirm_write_new_label boolean true

    26. d-i partman-auto/choose_recipe select atomic


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

    29. d-i passwd/make-user boolean false

    30. $SNIPPET('preseed_apt_repo_config')

    31. tasksel tasksel/first multiselect standard

    32. d-i pkgsel/include string ntp ssh wget

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

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

    36. d-i finish-install/reboot_in_progress note


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


    40. d-i preseed/late_command string wget -O- \
    41.    http://$http_server/cblr/svc/op/script/$what/$name/?script=preseed_late_default | \
    42.    chroot /target /bin/sh -s
    复制代码

    以上是一个简单配置文件,具体定制可以参考这里:Preseed语法参考---https://www.debian.org/releases/stable/amd64/apbs04.html.zh-cn。


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部