zoukankan      html  css  js  c++  java
  • ansible

    Ansible

    ​ 在IT行业,工程师习惯于编写程序来解决所有的问题。当然,在软件发布、应用部署和机器扩容时,工程师也希望借助软件来消灭重复劳动力。因此,各种自动化部署工具应运而生。在机器扩容时,将一台新的服务器配置成一台应用服务器,这中间需要经历很多步骤,包括配置DNS、创建用户、配置防火墙、部署应用、部署监控、自动测试等一系列操作。

    ​ 最开始的时候,工程师通过手动登陆服务器的方式来部署应用。这样不但费时费力,而且枯燥乏味,海特别容易出错。因此,当服务器的数量增大时,工程师一般会将命令写成脚本,通过SSH到远程服务器执行脚本的方式来简化部署工作。当服务器规模不大、应用也不复杂时,使用脚本半人工的方式进行部署是一种比较简单有效的手段。但是,当服务器规模进一步增大,通过SSH执行脚本的方式将会变的困难。而且,随着应用部署的依赖越来越多,需要使用的脚本也越来越多。如果部署一个应用需要依赖几十个脚本,那么,脚本将会变得无法管理。

    ​ 在复杂的部署任务中,脚本部署也不是长久之计,我们需要更加强大的自动化工具。运维发展到今天,已经有了各种成熟的自动化部署工具,这些自动化部署工具能够有效解决手动部署和脚本部署的不足之处。在层出不穷的自动化运维工具中,Ansible是一颗冉冉升起的新星。最近几年,越来越多的公司和个人开始了解和使用Ansible。在Ansible出现之前,行业中已经有很多开源配置工具了,其中,使用最广泛、知名度最高的便是Puppet。甚至有一段时间,Puppet是配置管理的代名词。工程师 一提到配置管理、自动化部署,首先想到的就是Puppet。Puppet经过多年的发展,牢牢占据了市场第一的位置。但是,Puppet的功能越是强大,其缺点也越明显。Puppet最大的缺点就是大而全,大而全之后导致功能复杂,甚至可以说过于繁琐。运维自动化工具是用来简化运维工作的,如果工具本身比较复杂,就会增加使用者犯错的概率,也会增加使用和推广的难度。

    ​ Ansible依靠它的简单易用、无客户端依赖、功能强大等优点,逐渐获得了无数开发者和运维工程师的青睐。Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko、PyYAML和Jinja2(模板语言)两个关键模块构成,可用于自动化自动化部署应用、配置、编排taask(持续交付、无宕机更新等)。虽然Ansible相对于其他配置工具来说比较简单。但是,因为配置工具本身的复杂执行,所以会导致所占篇幅较多。

    Ansible架构分析

    ​ Ansible在管理节点将Ansible模块通过SSH协议(或者kerberos,LDAP)推送到被管理端执行,执行完成后自动删除,可以使用SVN等来管理自定义模块及编排。

    其中:

    • Ansible:核心
    • Core Modules:Ansible自带的核心模块
    • Custom Modules:自定义模块
    • Plugins:Ansible插件,包括邮件插件、日志插件、连接插件等
    • Playbooks:剧本,Ansible配置、部署、编排语言,定义主机执行的task集合
    • Host Inventory:Ansible管理远程主机和组之间的关系清单,记录主机ssh端口、账号密码等
  • 相关阅读:
    Android 6.0以上动态获取权限
    大学实验3指导:利用单链表实现A-B
    大学课程实验2指导-二叉树的建立与遍历
    大学实验1 哈夫曼编码
    大学java教案之MySQL安装图解
    DrawableAnimation小练习
    Android学习第7天
    Android学习第6天
    There's no Qt version assigned to this project for platform Win32
    OpenBCI 开发环境配置
  • 原文地址:https://www.cnblogs.com/xiaoyafei/p/9186999.html
Copyright © 2011-2022 走看看