Ansible学习笔记(持续更新)

Ansible学习目录

  • 1.自动化运维
    • [1.1 企业实际应用场景](#1.1 企业实际应用场景)
      • [1.1.1 Dev开发环境](#1.1.1 Dev开发环境)
      • [1.1.2 测试环境](#1.1.2 测试环境)
      • [1.1.3 发布环境](#1.1.3 发布环境)
      • [1.1.4 生产环境](#1.1.4 生产环境)
      • [1.1.5 灰度环境](#1.1.5 灰度环境)
    • [1.2 程序发布](#1.2 程序发布)
    • [1.3 自动化运维应用场景](#1.3 自动化运维应用场景)
    • [1.4 常用自动化运维工具](#1.4 常用自动化运维工具)
  • 2.Ansible介绍和架构
    • [2.1 Ansible特性](#2.1 Ansible特性)
    • [2.2 Ansible架构](#2.2 Ansible架构)
      • [2.2.1 Ansible主要组成部分](#2.2.1 Ansible主要组成部分)
      • [2.2.2 Ansible工作原理](#2.2.2 Ansible工作原理)
      • [2.2.3 Ansible注意事项](#2.2.3 Ansible注意事项)

1.自动化运维

1.1 企业实际应用场景

1.1.1 Dev开发环境

  • 使用者:程序员
  • 功能:程序员开发测试软件
  • 管理者:程序员

1.1.2 测试环境

  • 使用者:QA测试工程师(quality assurance)
  • 功能:测试经过Dev环境测试通过的软件功能
  • 管理者:运维

1.1.3 发布环境

  • 使用者:运维
  • 功能:发布代码至生产环境
  • 管理者:运维
  • 发布机:往往有主备2台

1.1.4 生产环境

  • 使用者:运维,少数情况开放权限给核心开发人员
  • 功能:对用户提供公司产品的服务
  • 管理者:只能是运维
  • 生产环境服务器:一般比较多且十分重要。往往需要自动工具协助部署

1.1.5 灰度环境

  • 使用者:运维
  • 功能:在全量发布代码前将代码的功能面向少量精准用户发布,可基于主机或用户执行灰度发布。待精准用户使用没有重大问题的时候,再全量发布至所有服务器
  • 管理者:运维
  • 发布过程:在调度器下线一批主机->关闭服务->部署最新版本应用程序->启动服务->在调度器上启用这一批服务器

1.2 程序发布

1.3 自动化运维应用场景

  • 文件传输
  • 应用部署
  • 配置管理
  • 任务流编排

1.4 常用自动化运维工具

  • Ansible:python,Agentless,中小型应用环境
  • SaltStack:python,一般需部署agent,执行效率更高
  • Pippet:ruby,功能强大,配置复杂,重型,适合大型环境

2.Ansible介绍和架构

2.1 Ansible特性

  • 模块化:调用特定的模块,完成特定任务,支持自定义模块
  • 部署简单:基于python和ssh(默认已安装),agentless无需代理,不依赖PKI
  • 安全:基于OpenSSH
  • 幂等性:一个任务执行一遍与执行n遍效果一样,不因重复执行带来意外情况
  • 支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构
  • 较强大的多层解决方案role

2.2 Ansible架构

2.2.1 Ansible主要组成部分

  • PLAYBOOKS:编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的yml文件
  • INVENTORY:Ansible管理主机的清单 /etc/ansible/hosts
  • MODULES:Ansible执行命令的功能模块,多数为内置核心模块,也可自定义
  • PLUNGINS:Ansible模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等
  • API:供第三方程序调用的应用程序编程接口

2.2.2 Ansible工作原理

  • Ansible的命令来源
    • USERS
    • CMDB(配置管理数据库)API调用
    • PUBLIC&PRIVATE CLOUD API调用
    • USERS->Ansible Playbook->Ansible
  • Ansible实现管理的方法
    • Ad-Hoc即Ansible单条命令,主要用于临时命令使用场景
    • ansible-playbook主要用于长期规划好的,大型项目的场景,需要有前期的规划过程
  • Ansible-playbook剧本执行过程
    • 将已有编排好的任务集写入ansible-playbook
    • 通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行

2.2.3 Ansible注意事项

  • Ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架*(后续实践后再理解)*
  • 执行Ansible的主机一般称为主控端、中控、master、堡垒机
  • Windows不能作为主控端
  • Ansible不是服务,不会一直启动,只是需要的时候启动
  • Ansible的主要操作对象是host主机和网络设备
相关推荐
甲鱼9291 小时前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
Johny_Zhao15 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
YuMiao1 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github