• 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端口、账号密码等
  • 相关阅读:
    《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf
    .NET Core中文分词组件jieba.NET Core
    .NET Core 2.0及.NET Standard 2.0
    Visual Studio 2017 通过SSH 调试Linux 上.NET Core
    Visual Studio 2017 ASP.NET Core开发
    Visual Studio 2017正式版离线安装及介绍
    在.NET Core 上运行的 WordPress
    IT人员如何开好站立会议
    puppeteer(二)操作实例——新Web自动化工具更轻巧更简单
    puppeteer(一)环境搭建——新Web自动化工具(同selenium)
  • 原文地址:https://www.cnblogs.com/xiaoyafei/p/9186999.html
Copyright © 2020-2023  润新知