<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Kickstart%EF%BC%88RedHat%EF%BC%89%E3%80%81Preseed%EF%BC%88Debian%EF%BC%89%E3%80%81cloud-init%EF%BC%88%E4%BA%91%EF%BC%89_%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2</id>
	<title>Kickstart（RedHat）、Preseed（Debian）、cloud-init（云） 进行自动化部署 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Kickstart%EF%BC%88RedHat%EF%BC%89%E3%80%81Preseed%EF%BC%88Debian%EF%BC%89%E3%80%81cloud-init%EF%BC%88%E4%BA%91%EF%BC%89_%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Kickstart%EF%BC%88RedHat%EF%BC%89%E3%80%81Preseed%EF%BC%88Debian%EF%BC%89%E3%80%81cloud-init%EF%BC%88%E4%BA%91%EF%BC%89_%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2&amp;action=history"/>
	<updated>2026-04-19T09:17:16Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Kickstart%EF%BC%88RedHat%EF%BC%89%E3%80%81Preseed%EF%BC%88Debian%EF%BC%89%E3%80%81cloud-init%EF%BC%88%E4%BA%91%EF%BC%89_%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2&amp;diff=540&amp;oldid=prev</id>
		<title>Evan：​/* cloud-init（云） 进行自动化部署 */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Kickstart%EF%BC%88RedHat%EF%BC%89%E3%80%81Preseed%EF%BC%88Debian%EF%BC%89%E3%80%81cloud-init%EF%BC%88%E4%BA%91%EF%BC%89_%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2&amp;diff=540&amp;oldid=prev"/>
		<updated>2025-03-26T04:00:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;cloud-init（云） 进行自动化部署&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=CentOS Kickstart自动化安装=&lt;br /&gt;
服务器端 安装源服务器&lt;br /&gt;
安装HTTP、DHCP和TFTP服务&lt;br /&gt;
&lt;br /&gt;
client  要每台去开机的 不完全自动化可见&lt;br /&gt;
这个就是我们要安装os的机器&lt;br /&gt;
&lt;br /&gt;
ps  Cobbler是较早前的kickstart的升级版，优点是比较容易配置，还自带web界面比较易于管理&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
以下是一个使用Kickstart在Red Hat、CentOS或Fedora上进行自动化部署的例子：&lt;br /&gt;
&lt;br /&gt;
### 环境准备&lt;br /&gt;
1. **安装服务器**：准备一台服务器作为安装源服务器，安装好Red Hat/CentOS/Fedora系统。&lt;br /&gt;
2. **关闭防火墙**：为了简化操作，暂时关闭防火墙：&lt;br /&gt;
   ```bash&lt;br /&gt;
   systemctl disable firewalld&lt;br /&gt;
   systemctl mask firewalld&lt;br /&gt;
   ```&lt;br /&gt;
3. **安装必要的服务**：安装HTTP、DHCP和TFTP服务：&lt;br /&gt;
   ```bash&lt;br /&gt;
   yum install -y httpd dhcp tftp-server syslinux&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
### 配置HTTP服务&lt;br /&gt;
1. **创建安装源目录**：在HTTP服务的根目录下创建一个目录来存放安装源：&lt;br /&gt;
   ```bash&lt;br /&gt;
   mkdir -p /var/www/html/os&lt;br /&gt;
   ```&lt;br /&gt;
2. **挂载ISO镜像**：将Red Hat/CentOS/Fedora的安装ISO镜像挂载到创建的目录：&lt;br /&gt;
   ```bash&lt;br /&gt;
   mount -o loop /path/to/iso /var/www/html/os&lt;br /&gt;
   ```&lt;br /&gt;
3. **启动HTTP服务**：确保HTTP服务已启动：&lt;br /&gt;
   ```bash&lt;br /&gt;
   systemctl start httpd&lt;br /&gt;
   systemctl enable httpd&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
### 创建Kickstart文件&lt;br /&gt;
1. **编写Kickstart文件**：创建一个名为`ks.cfg`的Kickstart文件，内容如下：&lt;br /&gt;
   ```bash&lt;br /&gt;
   # Kickstart file for automated installation&lt;br /&gt;
   #version=DEVEL&lt;br /&gt;
   install&lt;br /&gt;
   url --url=&amp;quot;http://&amp;lt;your-server-ip&amp;gt;/os&amp;quot;&lt;br /&gt;
   lang en_US.UTF-8&lt;br /&gt;
   keyboard us&lt;br /&gt;
   network --bootproto=dhcp&lt;br /&gt;
   rootpw --iscrypted $1$V4WuX$5GZKZ8s6l5l6z7u5z3s2&lt;br /&gt;
   firewall --disabled&lt;br /&gt;
   selinux --disabled&lt;br /&gt;
   timezone Asia/Shanghai&lt;br /&gt;
   bootloader --location=mbr&lt;br /&gt;
   zerombr&lt;br /&gt;
   clearpart --all --initlabel&lt;br /&gt;
   part /boot --fstype=&amp;quot;ext4&amp;quot; --size=200&lt;br /&gt;
   part / --fstype=&amp;quot;xfs&amp;quot; --size=1&lt;br /&gt;
   %packages&lt;br /&gt;
   @base&lt;br /&gt;
   @development-tools&lt;br /&gt;
   %end&lt;br /&gt;
   ```&lt;br /&gt;
   将`&amp;lt;your-server-ip&amp;gt;`替换为你的安装源服务器的IP地址。&lt;br /&gt;
&lt;br /&gt;
2. **将Kickstart文件放置到HTTP根目录**：&lt;br /&gt;
   ```bash&lt;br /&gt;
   cp ks.cfg /var/www/html/&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
### 配置DHCP和TFTP服务&lt;br /&gt;
1. **配置DHCP服务**：编辑DHCP配置文件`/etc/dhcp/dhcpd.conf`，添加以下内容：&lt;br /&gt;
   ```bash&lt;br /&gt;
   subnet &amp;lt;your-subnet&amp;gt; netmask &amp;lt;your-netmask&amp;gt; {&lt;br /&gt;
     range &amp;lt;your-ip-range&amp;gt;;&lt;br /&gt;
     option routers &amp;lt;your-gateway&amp;gt;;&lt;br /&gt;
     option domain-name-servers &amp;lt;your-dns&amp;gt;;&lt;br /&gt;
     filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
     next-server &amp;lt;your-server-ip&amp;gt;;&lt;br /&gt;
   }&lt;br /&gt;
   ```&lt;br /&gt;
   将`&amp;lt;your-subnet&amp;gt;`、`&amp;lt;your-netmask&amp;gt;`等替换为你的网络信息。&lt;br /&gt;
&lt;br /&gt;
2. **配置TFTP服务**：确保TFTP服务已启动，并将PXE引导文件复制到TFTP根目录：&lt;br /&gt;
   ```bash&lt;br /&gt;
   systemctl start tftp-server&lt;br /&gt;
   systemctl enable tftp-server&lt;br /&gt;
   cp /var/www/html/os/isolinux/* /var/lib/tftpboot/&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
### 配置PXE引导&lt;br /&gt;
1. **编辑PXE引导配置文件**：在TFTP根目录下创建`pxelinux.cfg`目录，并在其中创建`default`文件：&lt;br /&gt;
   ```bash&lt;br /&gt;
   mkdir -p /var/lib/tftpboot/pxelinux.cfg&lt;br /&gt;
   vi /var/lib/tftpboot/pxelinux.cfg/default&lt;br /&gt;
   ```&lt;br /&gt;
   添加以下内容：&lt;br /&gt;
   ```bash&lt;br /&gt;
   default menu.c32&lt;br /&gt;
   prompt 0&lt;br /&gt;
   menu title PXE Boot Menu&lt;br /&gt;
   timeout 300&lt;br /&gt;
&lt;br /&gt;
   label linux&lt;br /&gt;
     menu label ^Install CentOS&lt;br /&gt;
     menu default&lt;br /&gt;
     kernel vmlinuz&lt;br /&gt;
     append initrd=initrd.img ks=http://&amp;lt;your-server-ip&amp;gt;/ks.cfg&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
### 测试部署&lt;br /&gt;
1. **启动目标主机**：将需要安装系统的主机设置为从网络启动（PXE启动）。&lt;br /&gt;
2. **开始安装**：目标主机将从网络获取IP地址，并从TFTP服务器下载PXE引导文件，然后按照Kickstart文件的配置自动进行系统安装。&lt;br /&gt;
&lt;br /&gt;
通过以上步骤，就可以使用Kickstart在Red Hat、CentOS或Fedora上实现自动化部署。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&lt;br /&gt;
&lt;br /&gt;
=cloud-init（云） 进行自动化部署=&lt;br /&gt;
&lt;br /&gt;
虽然现在用了cloud 我们装机的机会少了，但是自己的内网机器 我们还是可以用 cloud -init cloud-init 映像&lt;br /&gt;
&lt;br /&gt;
例如 &lt;br /&gt;
&lt;br /&gt;
    https：//cloud.centos.org/&lt;br /&gt;
    https：//cloud-images.ubuntu.com/&lt;br /&gt;
&lt;br /&gt;
结合 terraform 方便得很&lt;br /&gt;
可见 [[Terraform-provider-proxmox]]&lt;br /&gt;
eg &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#执行下面的命令创建一个虚拟机&lt;br /&gt;
#这里 9000 只是一个ID 你只要写个你的 proxmox还没用的ID就行了&lt;br /&gt;
qm create 9000 --name &amp;quot;ubuntu-2004-cloudinit-template&amp;quot; --memory 1024 --cores 1 --net0 virtio,bridge=vmbr0&lt;br /&gt;
qm importdisk 9000 ubuntu-20.04-server-cloudimg-amd64.img local-lvm&lt;br /&gt;
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0&lt;br /&gt;
qm set 9000 --boot c --bootdisk scsi0&lt;br /&gt;
qm set 9000 --ide2 local-lvm:cloudinit&lt;br /&gt;
qm set 9000 --serial0 socket --vga serial0&lt;br /&gt;
qm set 9000 --agent enabled=1&lt;br /&gt;
&lt;br /&gt;
#将刚创建好的虚拟机转换成模板&lt;br /&gt;
qm template 9000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://cloudinit.readthedocs.io/en/latest/reference/examples.html&lt;br /&gt;
&lt;br /&gt;
[https://learn.microsoft.com/zh-cn/azure/virtual-machines/linux/tutorial-automate-vm-deployment 如何在 Azure 中的 Linux 虚拟机首次启动时使用 cloud-init 对其进行自定义]&lt;br /&gt;
&lt;br /&gt;
https://help.aliyun.com/zh/ecs/user-guide/install-cloud-init&lt;br /&gt;
&lt;br /&gt;
[https://github.com/apachecn/apachecn-linux-zh/blob/master/docs/master-kvm-virtual/09.md 使用 cloud-init 定制虚拟机]&lt;br /&gt;
&lt;br /&gt;
=refer=&lt;br /&gt;
[https://www.cnblogs.com/yanjieli/p/11016825.html  Cobbler--自动化部署]&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/hukey/p/14919346.html CentOS KickStart 无人值守安装及自动部署ks脚本]&lt;br /&gt;
&lt;br /&gt;
[[category:devops]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>