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主机和网络设备
相关推荐
BillKu18 分钟前
Linux设置Nginx开机启动
linux·运维·nginx
阿大撒大撒22 分钟前
Linux 服务器虚拟化技术详解
服务器
东方佑22 分钟前
FastHTML快速入门:服务器渲染超媒体应用的利器
运维·服务器
baidu_3755288140 分钟前
光感传感器 芯片stk3171 linux驱动程序
linux·运维·服务器
飞腾开发者1 小时前
飞腾平台Arm NN软件栈安装使用指南
linux·运维·人工智能·机器学习·计算机视觉
夜暝1 小时前
Iotop使用
linux
鸠摩智首席音效师1 小时前
.NET Core 应用程序如何在 Linux 中创建 Systemd 服务 ?
linux·运维·.netcore
汤米粥1 小时前
通过PHP创建AWS的CloudFront并绑定证书添加备用域名
服务器·云计算·aws
Aiden_SHU2 小时前
Wireshark中的length栏位
服务器·网络·wireshark
不是三毛没有半2 小时前
Centos 7 安装wget
linux