一 自动化运维

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/)本人同意即可转载,谢谢!

001.Ansible简介与基本安装的更多相关文章

  1. 001. Ansible简介

    一 简介 Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点. 实现了批量系统 ...

  2. 1、Ansible简介及简单安装、使用

    参考Ansible权威指南:https://ansible-tran.readthedocs.io/en/latest/index.html 以下内容学习自马哥教育 Ansible: 运维工作:系统安 ...

  3. 批量搞机(一):ansible简介、ansible安装

    一.ansible简介 Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议.其是基于Python研发,糅合了很多老运维工具的优点实现了批量 ...

  4. ansible简介安装配置

    ansible简介 ansible是一款,自动化运维管理工具.顾名思义是用于批量去管理及安装服务及批量管理主机. ansible与saltstack对比 ansible优点:配置简单,部署容易除主管理 ...

  5. Ansible1:简介与基本安装【转】

    Ansible是一个综合的强大的管理工具,他可以对多台主机安装操作系统,并为这些主机安装不同的应用程序,也可以通知指挥这些主机完成不同的任务.查看多台主机的各种信息的状态等,ansible都可以通过模 ...

  6. Ansible(一) - 入门及安装

    Ⅰ. Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置 ...

  7. Ansible - 简介和应用自动化基础实践

    installAnsible简介和应用自动化基础实践 一.引入: 1.1  如官方定义,Ansible is The simplest way to automate apps and IT infr ...

  8. Ansible基础认识及安装使用详解(week5_day1_part1)--技术流ken

    Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量 ...

  9. Ansible基础认识及安装(1)

    Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量 ...

随机推荐

  1. 给我一个shell我能干翻你内网

    0x00 前言 在去年小菜鸡学了点内网知识就闲着没事跑点jboss的站看看,在经历过很多次内网横向失败之后终于算是人生圆满了一把,阿三的站一般进去之后很难横向,不知道是不是我太菜的原因,反正阿三的站能 ...

  2. 【Java】8.0 数组及其操作

    [概述] 有时候,我们需要某类的变量,它们是用于表达同一类的东西,但每个个体有不一样,比如学生成绩表的各个成绩 我们不可能为每个学生单独建立一个int变量来表示成绩,此时我们可以创建一个数组,再把每个 ...

  3. JAVAEE_Servlet_04_在service()方法中连接数据库获取表信息

    在service()方法中连接数据库获取表信息 代码: package com.shige.controller; import javax.servlet.*; import java.io.IOE ...

  4. 面试有关TCP常问的几个问题

    在面试中网络问题是一定会考察的,而TCP协议则是考察网络知识的重点.经常会被问道的问题如下: 请讲一下TCP协议建立连接的过程 请介绍TCP协议中的三次握手和四次挥手是怎么样的 为什么TCP协议要三次 ...

  5. 02- web UI测试与UI Check List

    UI英文是 user interface .所以UI测试就是用户界面测试. Web UI测试 用户界面测试:user interface testing,UI Testing指软件中的可见外观及其与用 ...

  6. 100多个很有用的JavaScript函数以及基础写法大集合

    100多个很有用的JavaScript函数以及基础写法大集合 1.document.write("");为 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:docume ...

  7. 使用EasySYS搭建驱动开发基本框架

    提供EasySYS的下载地址:http://bbs.pediy.com/showthread.php?p=956643,看雪上有提供下载,自行百度. EasySYS你能够帮我们快速的搭建驱动的开发框架 ...

  8. Android Hook框架adbi的分析(3)---编译和inline Hook实践

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/75200800 一.序言 在前面的博客中,已经分析过了Android Hook框架a ...

  9. 安全之路 —— 无DLL文件实现远程进程注入

    简介 在之前的章节中,笔者曾介绍过有关于远程线程注入的知识,将后门.dll文件注入explorer.exe中实现绕过防火墙反弹后门.但一个.exe文件总要在注入时捎上一个.dll文件着实是怪麻烦的,那 ...

  10. 开启Android Apk调试与备份选项的Xposed模块的编写

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80963610 在进行Android应用程序逆向分析的时候,经常需要进行Andro ...