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主机和网络设备
相关推荐
云飞云共享云桌面3 小时前
昆山精密机械公司8个Solidworks共用一台服务器
运维·服务器·网络·3d·自动化·制造
恒创科技HK3 小时前
中国香港服务器中常提到的双向/全程CN2是什么意思?
运维·服务器
MyCollege19993 小时前
win10使用ssh访问vmware虚拟机
linux·运维·centos
许怀楠6 小时前
【主页介绍】
linux·c++·贪心算法·visual studio
大聪明-PLUS7 小时前
GCC 对 C 语言的扩展
linux·嵌入式·arm·smarc
大霞上仙7 小时前
jmeter实现两个接口的同时并发
运维·服务器·jmeter
我就要用Cx3308 小时前
配置docker常见问题
运维·docker·容器
Kyln.Wu8 小时前
【python实用小脚本-211】[硬件互联] 桌面壁纸×Python梦幻联动|用10行代码实现“开机盲盒”自动化改造实录(建议收藏)
开发语言·python·自动化
Hello.Reader8 小时前
从零到一上手 Protocol Buffers用 C# 打造可演进的通讯录
java·linux·c#
大路谈数字化8 小时前
生产制造自动化
自动化·制造