Skip to main content

运维常见问题

Terraform vs Ansible

  • 都是 IaC - Infrastructure as code
  • Ansible
    • 擅长部署 - 因为指令式,一次性执行,无状态
  • Terraform
    • 擅长运维 - 定义状态进行维护,通过 GitOps 维护资源

  • Terraform
    • 操作 接口
    • 只能是 Declarative - 定义式
    • 有状态 - 通过状态 diff 来决定要做什么
      • 移除一个定义会删除一个资源
    • 无法指定条件、过滤 - 达到全量状态
  • Ansible
    • 通过 主机 执行
    • 可以是 Declarative 和 Imperative - 定义式或过程式 - 以 过程式 为主
    • 无状态 - 在执行时判断是否已经达到期望状态再决定是否执行
      • 移除一个定义,之前运行的内容会保持 - 需要专门做一次删除操作
    • 可以指定各种语义 - 脚本
    • 可以理解成是 Terraform 的超集,但在 Terraform 的领域还是 Terraform 做的更好
    • 可以操作 Terraform,最好配合使用
    • 可以用于生成 Terraform 脚本

Immutable Infrastructure

CPU CATERR Processor CATERR CPU CATERR Fault - Asserted

  • CATERR - CATastrophic ERRor - 灾难性错误

System Event Timestamp Clock Synch - Asserted

时间同步失败

Microcontroller / Coprocessor Transition to Running - Asserted

IPAM 报异常事件,拔插 内存 后恢复。