当前位置: 首页 > news >正文

centos 9 Kickstart + Ansible自动化部署 —— 筑梦之路

目标

利用 Kickstart 完成 centos 9 系统的全自动安装(裸金属/虚拟机)。

安装完成后自动接入 Ansible 进行软件包、服务、用户、配置等系统初始化操作。

实现一套通用、可重复、可维护的自动化交付流程。

KS文件

# ks.cfg 示例
install
lang zh_CN.UTF-8
keyboard us
timezone Asia/Shanghai
network --bootproto=dhcp --device=eth0 --onboot=on
rootpw --iscrypted <HASHED_PASSWORD>
firewall --enabled --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
bootloader --location=mbr
reboot# 分区
clearpart --all --initlabel
part /boot --fstype=ext4 --size=1024
part swap --size=1024
part / --fstype=xfs --grow --size=1%packages
@core
vim
wget
curl
openssh-server
python3
%end%post
echo "Post install begins..."
curl -o /root/bootstrap.sh http://<IP>/ansible/bootstrap.sh
chmod +x /root/bootstrap.sh
/root/bootstrap.sh
%end

脚本

#bootstrap.sh 示例(Post-install 脚本)
#!/bin/bash
yum install -y python3 python3-pip
pip3 install ansible
mkdir -p /etc/ansible
curl -o /etc/ansible/hosts http://<IP>/ansible/inventory
curl -o /root/site.yaml http://<IP>/ansible/site.yamlansible-playbook /root/site.yaml -i /etc/ansible/hosts
 site.yaml 示例- hosts: allbecome: trueroles:- base- ssh- firewall- monitoring- docker
Roles 结构(简化版)roles/
├── base/       # 基础配置(时区、主机名、NTP)
├── ssh/        # SSH 优化
├── firewall/   # 防火墙规则开放
├── monitoring/ # 安装 Zabbix Agent 或 Prometheus Node Exporter
├── docker/     # 安装容器环境

实践建议 

1. 版本控制

使用 Git 管理 Ansible Playbook 和 Kickstart 模板,便于审计和变更追踪。

2. 模板参数化

利用 Jinja2 模板实现主机名、网段、角色等自动替换,提高复用率。

3. 分环境处理

按 prod、test、dev 维护不同 inventory 和 Playbook 逻辑。

4. 安全控制

Kickstart 中密码使用 openssl passwd -6 加密。

Playbook 中敏感数据用 ansible-vault 管理。

5. 日志与追踪

Kickstart %post 输出日志到 /root/kickstart.log

Ansible 启用 log_path,记录执行详情

整体流程:[ PXE + DHCP ]│▼
[ 加载 Kickstart 自动安装 ]│▼
[ Post 脚本安装 Ansible 并执行 Playbook ]│▼
[ 系统初始化完成,加入运维体系 ]

 

相关文章:

  • 阅读笔记---城市计算中用于预测学习的时空图神经网络研究综述
  • JVM的面试相关问题
  • List优雅分组
  • Python打卡DAY31
  • STM32+ESP8266+ONENET+微信小程序上传数据下发指令避坑指南
  • .NET 10 - 尝试一下Minimal Api的Validation新特性
  • LangChain4j入门(六)整合提示词(Prompt)
  • RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试
  • .NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式
  • 如何自学FPGA设计?
  • 2.4.2死锁的处理策略-预防死锁
  • DB31/T 1552-2025《居民电子健康档案应用系统等级评估指南》:上海地方标准全面解析
  • notepad++
  • 【设计模式】基于 Java 语言实现工厂模式
  • 替换word中的excel
  • OpenCV 第6课 图像处理之几何变换(重映射)
  • 水利数据采集MCU水资源的智能守护者
  • numpy数组的复数和时间的操作
  • 软考软件评测师——黑盒测试测试方法
  • vscode 常用调试
  • 翻越高山,成为高山!浙江广厦成CBA历史第八支夺冠球队
  • 钟睒睒:不反对代工,但农夫山泉目前所有产品是无法代工的
  • 上海地铁:一孩童鞋子卡于电梯梯级处,其间未造成人员受伤
  • 中国华能:1-4月新能源装机突破1亿千瓦,利润总额再创新高
  • 新华社原香港分社副社长、深圳市委原副书记秦文俊逝世
  • 红星控股重整期间实控人被留置后续:重整草案不会修改,涉车建兴职责已调整