基于Kickstart自动化安装CentOS实践

简介:

基于Kickstart自动化安装CentOS实践

前言

因为需要在浪潮的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

制作流程

目录结构

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

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

增加Kickstart配置文件

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

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

生成依赖关系和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/

原文发布时间:2015-05-22

本文来自云栖合作伙伴“linux中国”

目录
相关文章
|
1天前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
1天前
|
SQL 关系型数据库 MySQL
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
该文章提供了在虚拟机上安装MySQL服务的简化方法,特别是针对新手。作者提供了一个自动化脚本`install_mysql.sh`,使得安装过程更简单。用户需要下载`install.rpm`资源,将其放在指定目录下,然后创建并编辑脚本文件,将提供的代码粘贴进去,通过`chmod u+x`授权,最后运行脚本`./install_mysql.sh [rpm文件路径]`来安装MySQL。文章还附有相关图片说明。
10 1
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
|
1天前
|
SQL 缓存 关系型数据库
MySQL常见问题解决和自动化安装脚本
这篇内容包含了两个主要部分:解决MySQL登录问题和处理GPG密钥问题。当MySQL密码正确但无法登录时,可以通过执行SQL命令`ALTER USER`和`flush privileges`来修改和重置密码。对于MySQL安装时的GPG密钥错误,首先需要强制删除旧的MySQL仓库包,导入新的GPG公钥,然后安装MySQL服务器。如果遇到GPG检查错误,可以使用`--nogpgcheck`参数忽略检查来安装。最后,提供了一个自动化安装MySQL的脚本,用于检查旧版本、卸载残留、安装MySQL8并启动服务。
13 1
MySQL常见问题解决和自动化安装脚本
|
2天前
|
敏捷开发 测试技术 持续交付
深入理解自动化测试:框架与实践
【5月更文挑战第5天】 在现代软件开发周期中,自动化测试已成为确保产品质量和加速交付过程的关键环节。本文将深入探讨自动化测试的核心概念、框架选择以及实际实施过程中的最佳实践。通过分析各种自动化测试工具和技术的优缺点,我们旨在为读者提供一种系统化的方法来构建和维护有效的自动化测试环境。
|
5天前
|
运维 安全 Linux
如何在CentOS7一键安装宝塔面板并实现固定地址访问内网宝塔进行管理
如何在CentOS7一键安装宝塔面板并实现固定地址访问内网宝塔进行管理
|
5天前
|
Linux 测试技术 数据安全/隐私保护
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
|
6天前
|
机器学习/深度学习 人工智能 算法
深入理解与实践:基于AI的软件测试自动化
【5月更文挑战第1天】随着人工智能的不断发展,其在软件测试中的应用也日益广泛。本文将探讨如何利用AI进行软件测试自动化,包括其理论基础、实现方式以及在实际中的应用。我们将通过实例分析,展示AI在提高软件测试效率和质量方面的巨大潜力。
|
6天前
|
敏捷开发 运维 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。自动化运维作为提升效率、确保稳定性的关键手段,其重要性不言而喻。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现从代码提交到产品上线的持续集成(CI)与持续部署(CD)。通过分析现代容器技术与传统虚拟化的差异,阐述容器化带来的轻量化、快速部署及易于管理的优势,并结合实例讲解如何在实际环境中搭建起一套完善的CI/CD流程。
|
6天前
|
Linux Docker 容器
centos7安装docker图文详解
该文档提供了在CentOS上安装Docker的步骤:检查系统内核版本(需大于3.10),更新yum,卸载旧版Docker,安装yum-utils和依赖包,设置Docker仓库,列出并选择Docker版本,安装Docker,最后启动并设置Docker开机启动,通过`docker version`验证安装是否成功。
|
6天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】自动化特征选择与优化的实践
【4月更文挑战第30天】特征选择在机器学习中至关重要,能降低模型复杂度,提高泛化能力和避免过拟合。本文介绍了自动化特征选择的三种方法:过滤法(如SelectKBest)、包装法(如RFE)和嵌入法(如随机森林)。通过结合这些方法,可实现特征优化,包括数据预处理、初步筛选、模型训练与评估、特征优化和结果验证。自动化特征选择能提升模型性能,适应不同数据集和任务需求,为机器学习项目提供坚实基础。