基于Kickstart自动化安装CentOS实践

运维 系统运维 开源 自动化
这次主要通过学习Kisckstart实现最简单的光盘方式自动化安装CentOS,而网上的大多数教程并不完全适用于自身的环境,本文将不再赘述Kickstart相关概念,细节可参考扩展阅读。

[[134901]]

 

前言

因为需要在浪潮的x86服务器中集中部署CentOS搭建基于Hadoop的大数据平台,平时接触SLES(SuSE Linux Enterprise Server)较多并且已经实现基于Autoyast方式使用光盘或者PXE网络自动化安装(后续会分享具体实现方法)。这次主要通过学习Kisckstart实现最简单的光盘方式自动化安装CentOS,而网上的大多数教程并不完全适用于自身的环境,本文将不再赘述Kickstart相关概念,细节可参考扩展阅读。

Kickstart是最为通用的Linux自动化安装方法之一

 

环境准备

 

定制系统

CentOS-6.4-x86_64

官方下载地址 - http://wiki.centos.org/Download

 

安装软件包

代理上网小技巧,export http_proxy=ip:port

  1. yum -y install createrepo mkisofs
  • 1.

 

制作流程

 

目录结构

拷贝CentOS原始镜像内容,不做任何精简

  1. mkdir /mnt/centos
  2. mount /dev/sr0 /mnt/centos
  3. mkdir /tmp/iso
  4. cp -r /mnt/centos/* /tmp/iso
  • 1.
  • 2.
  • 3.
  • 4.

 

增加Kickstart配置文件

文件路径和安装方式可自由定义

  1. cd /tmp/iso/isolinux
  2. #修改引导,注意ks=部分
  3. vi isolinux.cfg
  4.  
  5. label linux
  6. menu label ^Install or upgrade an existing system
  7. menu default
  8. kernel vmlinuz
  9. append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg
  10.  
  11. #手动增加Kickstart配置文件
  12. vi ks.cfg
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  1. #Kickstart file automatically generated by anaconda.
  2. #version=DEVEL
  3.  
  4. #Install OS instead of upgrade
  5. #表示是安装,而不是升级
  6. install
  7.  
  8. #Use text mode install
  9. #文本方式安装
  10. text
  11.  
  12. #Use network installation
  13. #使用网络安装
  14. #url --url=ftp://ip/centos
  15. #Local installation Use CDROM installation media
  16. #使用光盘安装
  17. cdrom
  18.  
  19. #Installation Number configuration
  20. #如果是RedHat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key
  21. #key –skip
  22.  
  23. #System language
  24. #语言环境
  25. #lang en_US.UTF-8
  26. lang zh_CN.UTF-8
  27.  
  28. #System keyboard
  29. #键盘类型
  30. keyboard us
  31.  
  32. #Network information
  33. #网络配置
  34. #network --device eth0 --bootproto dhcp --onboot yes
  35.  
  36. #Root password
  37. #root密码
  38. rootpw chinaums
  39.  
  40. #Firewall configuration
  41. #禁用防火墙
  42. firewall --disabled
  43.  
  44. #SELinux configuration
  45. #禁用selinux
  46. selinux --disabled
  47.  
  48. #Run the Setup Agent on first boot
  49. #禁用第一次启动时设置系统的向导
  50. firstboot --disable
  51.  
  52. #System authorization information
  53. #用户认证配置,useshadow表示使用本地认证,--passalgo表示密码加密算法
  54. authconfig --enableshadow --passalgo=sha512
  55.  
  56. #System timezone
  57. #设置时区为上海
  58. timezone --isUtc Asia/Shanghai
  59.  
  60. #System bootloader configuration
  61. #指明bootloader的安装位置,指明驱动器的排序,指明操作系统安装完成之后,向内核传递的参数
  62. bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
  63.  
  64. #Clear the Master Boot Record
  65. #清除MBR引导记录
  66. zerombr yes
  67.  
  68. #Partition clearing information
  69. #清除硬盘上的所有数据
  70. clearpart --all --initlabel
  71.  
  72. #Disk partitioning information
  73. #自定义分区
  74.  
  75. #创建一个200M大小的分区挂载/boot类型为ext4
  76. part /boot --fstype=ext4 --size=200 --ondisk=sda
  77.  
  78. #创建一个20000M大小的SWAP分区
  79. part swap --size=20000 --ondisk=sda
  80.  
  81. #创建/目录
  82. part / --fstype=ext4 --grow --size=1 --ondisk=sda
  83.  
  84. #Reboot after installation
  85. #设置完成之后重启
  86. reboot --eject
  87.  
  88. #This packages is for CentOS 6.4
  89. #为CentOS 6.4定制的软件包
  90. %packages
  91. @base
  92. @core
  93. @chinese-support
  94.  
  95. #增加安装后运行脚本
  96. %post
  97. #config service
  98. #自定义服务
  99. service NetworkManager stop
  100. chkconfig NetworkManager off
  101.  
  102. #eject cdrom
  103. #安装完成弹出光碟
  104. #eject
  105.  
  106. #reboot
  107. #执行完毕后重启
  108. #reboot -f
  109.  
  110. #结束自动化部署
  111. %end
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.

 

生成依赖关系和ISO文件

注意路径和命令的准确性

  1. cd /tmp/iso
  2. createrepo -g repodata/*comps.xml .
  3. mkisofs -o /tmp/CentOS-6.4_64_auto.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -R -J -v -T /tmp/iso/
  • 1.
  • 2.
  • 3.

 

测试和建议

推荐两篇参考文献,建议先在虚拟机上反复测试验证再到物理机部署

 

更新历史

2015年05月20日 - 初稿

阅读原文 - http://wsgzao.github.io/post/kickstart/

扩展阅读

责任编辑:林师授 来源: github
相关推荐

2015-10-08 10:55:23

云服务自动化运维 ANSIBLE

2015-10-20 17:12:58

SuSE自动化运维运维

2021-09-03 09:56:18

鸿蒙HarmonyOS应用

2023-03-29 08:33:03

仓储自动化系统

2023-06-30 09:46:00

服务物理机自动化

2009-08-27 11:35:45

ibmdw云计算

2013-11-27 11:34:43

自动化部署Python

2021-11-15 08:32:21

JenkinsAndroid自动化

2022-09-12 16:02:32

测试企业工具

2023-03-07 08:30:09

MCube模板缓存

2017-10-31 15:19:24

支付通道自动化

2017-12-17 21:58:18

2015-06-24 10:42:19

云计算运维自动化运维ANSIBLE

2015-08-06 15:46:06

2015-08-05 09:53:34

运维自动化

2017-08-29 09:57:26

SaaS产品自动化

2019-12-05 16:01:24

云计算行业科技

2015-08-04 11:13:42

中小企业云计算运维实践

2023-11-15 18:02:52

2022-04-08 09:05:53

Arch LinuxLinux
点赞
收藏

51CTO技术栈公众号