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

目标

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

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

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

KS文件

bash 复制代码
# 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

脚本

bash 复制代码
#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.yaml

ansible-playbook /root/site.yaml -i /etc/ansible/hosts
bash 复制代码
 site.yaml 示例

- hosts: all
  become: true
  roles:
    - base
    - ssh
    - firewall
    - monitoring
    - docker
bash 复制代码
Roles 结构(简化版)

roles/
├── base/       # 基础配置(时区、主机名、NTP)
├── ssh/        # SSH 优化
├── firewall/   # 防火墙规则开放
├── monitoring/ # 安装 Zabbix Agent 或 Prometheus Node Exporter
├── docker/     # 安装容器环境

实践建议

  1. 版本控制

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

  1. 模板参数化

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

  1. 分环境处理

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

  1. 安全控制

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

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

  1. 日志与追踪

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

Ansible 启用 log_path,记录执行详情

bash 复制代码
整体流程:

[ PXE + DHCP ]
      │
      ▼
[ 加载 Kickstart 自动安装 ]
      │
      ▼
[ Post 脚本安装 Ansible 并执行 Playbook ]
      │
      ▼
[ 系统初始化完成,加入运维体系 ]
相关推荐
东莞市壹星自动化设备有限公司11 小时前
透明圆瓶内部特征怎样定位:折射追踪与近远相位分支
嵌入式硬件·自动化·需求分析·几何学·骨骼绑定
BioTender13 小时前
Xaira 发布 X-Automate:将物理 AI 与智能体 AI 引入实验室自动化
运维·人工智能·自动化
天远API1 天前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
木头左1 天前
【Python】不点浏览器发博客:逆向 CSDN 创作中心接口做 md-publish 技能
python·自动化·api
lisw051 天前
智能化机器人系统的模块化设计自动化!
机器学习·机器人·自动化
Dragon~Snow2 天前
Centos Stream10 安装 MySQL-9.7.2-linux-glibc2.28-x86_64.tar
linux·mysql·centos
天远Date Lab2 天前
零信任架构实战:基于天远租凭分期报告构建自动化汽车以租代购免押风控网关
网络·人工智能·架构·自动化
迪康Defender2 天前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
温暖小土2 天前
在 CentOS 上安装 Redis Stack
linux·redis·centos
天远API2 天前
零信任架构实战:基于天远租凭分期报告构建自动化智慧租房免押分期履约评估网关
运维·人工智能·架构·自动化