自动化运维工具:ansible

1、运维自动化发展历程及技术应用
  本地部署:On-Premises
  基础设施即服务:IaaS(Infrastructure as a Service)
  平台即服务:PaaS(Platform as a Service)
  软件即服务:SaaS(Software as a Service)

2、自动化运维应用场景
  1>文件传输
  2>命令执行
    应用部署
    配置管理
    任务流编排
  3>程序发布
    预发布:新版本的代码先发布到服务器(跟线上环境完全相同,只是未接入调度器)
    程序发布:不能导致系统故障或造成系统完全不可用;不能影响用户体验
    灰度发布:先发布1/10的服务器,面向少量精准用户,在逐渐增多
    发布路径:
      /nginx1.1
      nginx(软链接)
      /nginx1.2
      在调度机上将一台real-server置为down,停止旧版本的服务,删除旧的软链接,启动新的服务,创建新的软链接,在调度器启用这一批服务器
    自动化灰度发布:脚本、发布平台

3、ansible特性
  1>模块化,有Paramiko,PyYAML,jinja2(模块语言)三个关键模块,支持自定义模块
  2>基于Python语言实现,部署简单,基于python和ssh(默认安装),安全、agentless(无代理,不需要配置代理,主控端直接控制被控端)
  3>支持playbook编排任务
  4>幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
  5>无需代理不依赖PKI(无需ssl)
  6>可使用任何编程语言写模块
  7>YAML格式,编排任务,支持丰富的数据结构
  8>较强大的多层解决方案(角色)

4、ansible架构及工作原理

自动化运维工具:ansible

自动化运维工具:ansible

5、ansible主要组成部分
  ansible playbook:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件
  inventory:Ansible管理主机的清单/etc/anaible/hosts
  modules:Ansible执行命令的功能模块,多数为内置核心模块,也可自定义
  plugins:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用
  API:供第三方程序调用的应用程序编程接口
  ANSIBLE:组合INVENTORY、API、 MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具

6、Ansible命令执行来源:
  USER,普通用户,即SYSTEM ADMINISTRATOR
  CMDB (配置管理数据库) API 调用
  PUBLIC/PRIVATE CLOUD API调用
  USER → Ansible Playbook → Ansibile

7、利用ansible实现管理的方式:
  Ad-Hoc即ansible命令,主要用于临时命令使用场景
  Ansible-playbook主要用于长期规划好的,大型项目的场景,需要有前提的规划
  Ansible-playbook (剧本) 执行过程:
    将已有编排好的任务集写入Ansible-Playbook
    通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行
  Ansible主要操作对象:
    HOSTS主机
    NETWORKING网络设备
  注意事项:
  ➢执行ansible的主机一般称为主控端,中控,master或堡垒机
  ➢主控端Python版本需要2.6或以上
  ➢被控端Python版本小于2.4需要安装python-simplejson
  ➢被控端如开启SELinux需要安装libselinux-python
  ➢windows不能做为主控端

8、安装(本机采用rpm安装,实验)
  1>rpm包安装:EPEL源

yum install ansible -y

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsfgj.html