• 001.Ansible简介与基本安装


    一 自动化运维

    1.1 运维的自动化发展历程

    • IAAS:infratructure as a Service
    • PAAS:platform as a Service 平台及服务
    • SAAS:software as a Service

    1.2 运维工程师的职能划分

    1.3 自动化运维的应用场景

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

    1.4 企业实际应用场景分析

    1.4.1 Dev开发环境

    • 使用者:程序员
    • 功能:程序开发软件,测试BUG的环境
    • 管理者:程序员

    1.4.2 测试环境

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

    说明:测试人员往往有多套,测试环境满足测试功能即可,不宜过多
    (1)测试人员希望测试环境有多套,公司的产品多产品并发,几多个版本,意味着多个版本同步测试
    (2)通常测试环境有多少套和产品数量保持一样

    1.4.3 发布环境

    代码发布机,有些为公司堡垒机(安全屏障)

    • 使用者:运维
    • 功能:发布代码值生产环境
    • 管理职:运维(有经验)
    • 发布机:往往需要两台(主备)

    1.4.4 生产环境

    • 使用者:运维,少数情况开放权限给核心开发人员,极少数公司将权限完全开放给开发人员并维护
    • 功能:对用户提供公司产品的服务
    • 管理者:只能是运维
    • 生产环境服务器的数量:一般比较众多,且应用非常重要,往往需要自动工具协助部署配置应用

    1.4.5 灰度环境(生产环境的一部分)

    • 使用者:运维
    • 功能:在全量发布代码前将代码的功能面向少量精准用户发布的环境,可基于主机,区域或用户执行灰度发布
    • 案例:共100台生产服务器,先发布其中的10台服务器,这10台服务器就是灰度服务器
    • 管理者:运维
    • 灰度环境:往往改版本功能变更较大,为保险起见特意先让一部分用户优化体验该功能,待这部分用户使用没有重大问题的时候,在全量发布至所有的服务器

    程序发布验证:

    • 新版本的代码先发布到服务器(跟线上配置完全相同,只是未接入到调度器)

    程序发布:

    • 不能导致系统故障或造成刺痛完全不可用
    • 不能影响用户体验

    灰度发布
    发布路径:

    • /webapp/tuangou-1.1
    • /webapp/tuanggou
    • /webapp/tuangou-1.2

    发布过程:在调度器上下线-一批主机(标为maintanance状态)--->关闭服务---->部署新版本的应用程序---->启动服务----->在调度器上启用这一批服务器

    自动化灰度发布:脚本、发布平台

    1.4.6常用的自动化运维工具

    • Ansible:python,Agentless ,中小型应用环境
    • Saltstack:python,一般需要部署agent,执行率更高
    • Puppet:ruby,功能请打,配置复杂,重型,适合大型环境
    • Fabric:python,agentless
    • Chef:ruby,国内应用少
    • Cfengine
    • func

     二  ansible基本介绍及安装

    Ansible是一个IT自动化工具。它能配置系统、部署软件、编排更复杂的任务,如连续部署或零停机时间滚动更新。

    Ansible用 python编写,尽管市面上已经有很多可供选择的配置管理解决方案(例如Sat, Puppet,chef等),但它们各有优劣,而 Ansible的特点在于它的简洁。让 Ansible在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件。同时提供的一个优点在于,如果需要的话,你可以在不止一个地方控制你的整个基础架构。

    2.1 Ansible特性

    • Agenless:不需要在被管理节点上安装客户端,只要ssh即可
    • Serverless:在服务端不需要启动任何服务,只需要执行命令就行
    • Modules in any language:基于模块工作,可以使用任意语言开发ansible模块
    • YAML, not code:使用yaml语言定制playbook
    • SSH by default:默认使用ssh控制各节点
    • Strong multi-tier solution:可实现多级控制

    2.2 Ansible基本组件

    • 核心:ansible
    • 核心模块(Core Modules):这些都是ansible自带的模块
    • 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
    • 插件(Plugins):完成模块功能的补充
    • 剧本(Playbooks):把需要完成的多个任务定义在剧本中
    • 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
    • 主机群(Host Inventory):ansible在管理多台主机时,可以选择只对其中的一部分执行某些操作

    2.3 Ansible工作原理

    ANSIBLE命令执行来源

    • USER,普通用户,即SYSTEM ADMINSTRATOR
    • CMDB(配置管理数据库),API调用
    • PUBILIC/PRIVATE CLOUD API调用
    • USER ->Ansible Playbook ->Ansible

    利用ansible实现管理的方式

    • Ad-Hoc即ansible命令,主要用于临时命令使用场景
    • Ansible-playbook主要用于长期规划好的,大型项目的场景,需要有前提的规划

    Ansible-playbook(剧本)执行过程

    • 将已有编排好的任务集写入Ansible-Playbook
    • 通过执行ansible——playbook命令分拆任务集逐条ansible命令,按预定规则逐条执行
    • Ansible主要的操作对象
    • HOSTS主机
    • NETWORKING网络设备

    注意事项

    • 执行ansible的主机一般称为主控端,中控,matser或堡垒机
    • 主控端Python版本需要2.6或以上
    • 被控端python版本小于2.4需要安装python-simplejson
    • 被控端如开启SELinux需要安装libselinux-python
    • windows不能作为主控端

    2.4 Ansible工作机制

    Ansible 在管理节点将 Ansible 模块通过 SSH 协议(或者 Kerberos、LDAP)推送到被管理端执行,执行完之后自动删除,可以使用版本控制系统(git/svn)来管理自定义模块及playbooks。

    2.5 安装ansible

    机器:

    node1  192.168.132.131   主控端

    在node1上安装

    查看ansible源的信息

    [root@node1 ~]# yum info ansible

     

    安装

    [root@node1 ~]# yum -y install ansible

    查看版本

    [root@node1 ~]# cd /etc/ansible/

    [root@node1 ansible]# ll

    -rw-r--r-- 1 root root 19985 Apr  6 01:10 ansible.cfg    #ansible的配置文件
    -rw-r--r-- 1 root root  1016 Apr  6 01:10 hosts          #管理被控端
    drwxr-xr-x 2 root root     6 Apr  6 01:10 roles          #组织ansible的play-book

    ansible安装完成


    博主声明:本文的内容来源主要来自誉天教育晏威老师,由本人实验完成操作验证,需要的博友请联系誉天教育(http://www.yutianedu.com/),获得官方同意或者晏老师(https://www.cnblogs.com/breezey/)本人同意即可转载,谢谢!

  • 相关阅读:
    Web性能压力测试工具之WebBench详解
    Request Header Or Cookie Too Large
    手动删除SVCH0ST.EXE的方法
    微信非80端口网页授权
    微信公众号开发80端口映射解决方案 推荐
    解决微信访问 80 端口的限制问题
    Windows查看所有的端口及端口对应的程序
    Windows环境下,用netstat命令查看某个端口号是否占用
    价值观--我的总结
    价值是事物由人(基于自己的需要和获取的难度而)作出的评价而存在的属性
  • 原文地址:https://www.cnblogs.com/zyxnhr/p/12784419.html
Copyright © 2020-2023  润新知