现代软件开发中的 CI/CD 与基础设施管理
1. Ansible 基础与部署代码构建
1.1 Ansible 模块与角色
Ansible 除了标准库中的常规模块,还有第三方组件可实现代码复用,这些组件被称为角色(roles)。角色包含一组任务,使机器能够承担特定角色,如 Web 服务器、数据库服务器或 Docker 节点。例如,OpenStack 团队创建的 ansible - hardening
角色,能增强机器的安全性。
1.2 Ansible 运行模式
Ansible 有推(push)和拉(pull)两种运行模式:
- 推模式 :在本地机器或 CI 系统上运行 Ansible,通过 SSH 连接到目标机器并执行任务。
- 拉模式 :由目标机器发起, ansible - pull
直接在目标机器上运行,检查代码仓库是否有更新,刷新本地剧本后执行任务。通常会通过 cron 作业定期运行 ansible - pull
。
1.3 构建部署代码
使用 Ansible 进行部署的最简单形式是将单个二进制文件复制到目标机器并运行。以下是示例代码:
tasks:
# Each Ansible task is written as a YAML object
# This uses a copy module
- name: Copy the b