Linux里面自动化部署工具有哪些?

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppetcfenginecheffuncfabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

(1)no agents:不需要在被管控主机上安装任何客户端;

(2)no server:无服务器端,使用时直接运行命令即可;

(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(2)
、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)
、使用python编写,维护更简单,ruby语法过于复杂;

(1)、以上内容大多是基于他人分享的基础上总结而来,学习借鉴之用;

二、Ansible基础安装与配置

## python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件

## 备份旧版本的python,并符号链接新版本的python

## 修改yum脚本,使其指向旧版本的python,已避免其无法运行

(1)SSH免密钥登录设置

## 写入信任文件(将/root/.ssh/id_rsa_storm1.pub分发到其他服务器,并在所有服务器上执行如下指令):

说明:第一次运行时,需要输入一下“yes”【进行公钥验证】,后续无需再次输入。

## 用来查看远程主机的一些基本信息

## 用来测试远程主机的运行状态

force:需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no

group:定义文件/目录的属组

mode:定义文件/目录的权限

owner:定义文件/目录的属主

path:必选项,定义文件/目录的路径

recurse:递归设置文件的属性,只对目录有效

src:被链接的源文件路径,只应用于state=link的情况

dest:被链接到的路径,只应用于state=link的情况

## 远程文件符号链接创建

## 远程文件信息查看

## 远程文件符号链接删除

## 远程文件信息查看

说明:如上显示,代表文件或链接已经删除。

## 复制文件到远程主机

backup:在覆盖之前,将源文件备份,备份文件包含时间信息。有两个选项:yes|no

content:用于替代“src”,可以直接设定指定文件的值

dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录

directory_mode:递归设定目录的权限,默认为系统默认权限

force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes

others:所有的file模块里的选项都可以在这里使用

src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容,如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync

## 远程文件信息查看

## 在远程主机上执行命令

creates:一个文件名,当该文件存在,则该命令不执行

chdir:在执行指令之前,先切换到该目录

removes:一个文件名,当该文件不存在,则该选项不执行

executable:切换shell来执行指令,该执行路径必须是一个绝对路径

## 切换到某个shell执行指定的指令,参数与command相同。

command不同的是,此模块可以支持命令管道,同时还有另一个模块也具备此功能:raw

## 先在本地创建一个SHELL脚本

## 将创建的脚本文件分发到远程

其他常用模块,比如:servicecronyumsynchronize就不一一例举,可以结合自身的系统环境进行测试。

cron:计划任务管理

yumyum软件包安装管理

user:系统用户管理

group:系统用户组管理

(国内的一个镜像站点,避免被墙 ^_^ )

playbook的组成:playbook是由一个或多个“play”组成的列表,可以让它们联同起来按事先编排的机制执行;所谓task无非是调用ansible的一个module,而在模块参数中可以使用变量;模块执行是幂等的,这意味着多次执行是安全的,因为其结果均一致;

list中的各任务按次序逐个在hosts中指定的所有主机上执行,即在所有主机上完成第一个任务后再开始第二个。在顺序运行某playbook时,如果中途发生错误,所有已执行任务都将回滚,因此,在修改playbook后重新执行一次即可;

task组成:每个task都应该有其name,用于playbook的执行结果输出,建议其内容尽可能清晰地描述任务执行步骤。如果未提供name,则action的结果将用于输出;

notify指定handler的执行机制:“notify”这个action可用于在每个play的最后被触发,在notify中列出的操作称为handler,仅在所有的变化发生完成后一次性地执行指定操作。

2、 结合业务环境,初步实现基础监控,以取代目前调用自动化部署平台API的方式;

系统运维 最近在研究自动化部署这方面的东西,linux可以使用jenkins和ansible直接部署,windows方面有点少,在搜索过程中发现了appcmd这个工具

部署前说明 本地环境:MacOS10.12.5。 服务器选择的是腾讯云服务器,UbuntuServer14.04.1LTS64位。 部署方式选择当今下最流行Nginx+Gunicorn的方式将Django开发的项目部署到自己的服务器,让别人能够通过域名访问你的博客。手动部署的过程是繁琐的,当更新代码时就需要重复一遍部署过程,故我们通过Fabric实现自动化部署,只需要在本地

当网站大起来,数据多起来之后,就会发现,改起网站越来越力不从心了,越来越难,越来越畏首畏脚的。同时做一个改动所要花费的人力也越来越大,这时候需要电脑来处理了,做自动化的seo才是最省力的seo。

我最近在做一个实验性的项目,项目基于Node.js开发,目标就是用Javascript开发一个全平台的项目。跨平台项目其中一个问题就是部署问题,为了方便项目的管理,一个跨平台的项目很多时候文件是整合在一起的,比如说在iOS下的代码和WindowsPhone下的代码可能略有些不同,但我们为了便于项目的管理,会将同样的业务逻辑代码放到Biz目录下。

一、前言:   通常为计算机安装操作系统的方式主要是,光盘安装和U盘安装;在企业生产环境中,会需要对多台客户机或服务器安装Linux操作系统,如果还用常规的方法去安装,费时又费力;PXE批量部署系统即可高效完成此类工作。 二、原理:

  作为全球能源管理和自动化领域数字化转型专家,施耐德电气正在引领开放自动化标准的大范围推进,掀起新一轮的创新浪潮。施耐德电气公布了开放自动化愿景,并推

工具的出现,目的就是为了提高我们的工作效率,让我们把时间花在做重要的事情上。学习本文你需要具备基本的Linux知识,学习自动部署的前提是你能够手动在服务器完成部署。 1.服务端环境 CentOS7.0,Java1.8,Maven3.5.2,git1.8(环境变量需配置完成,并非必须是相同的环境) 2.Jenkins的下载与安装 下载 官网:https://jenkins.i

YUM主要用于自动安装、升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系。要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),

系统运维 jenkins持续集成看我如何从1到代码自动化部署 背景 近期由于工作原因需要学习jenkins持续化集成。对于一个好学又帅气的我来说

图片来源:CEChina  “  一直以来,在工业自动化领域,出于可靠性、安全性以及技术独有的考虑,工业自动化控制系统往往都是相对封闭的专有系统。这样的控制系统

摘要:自动化测试仅仅被认为是替代人工,所以我们看到很多企业实施自动化测试仅仅是将现有的TestCase转换成自动化脚本。 这样做既没有提高测试整体水平,也没有改善测试结果。结果是通过手工能测试出来的问题自动化测试可以测试出来,手工测试不出来的问题自动化测试也没有测试出来。 因为测试的观念仍停留在已有TestCase阶段,而TestCase停留在业务流程测试的阶段。

目前,我正在以下手动将我的 从登台部署到生产:

>将原始和移动到另(备份它们),用缩小的和 替换它们.
>开始将我的登台中的所有复制到 PC.
>暂存和索引,以便它们不会被复制到生产(这些具有登台的特定).
>打开WinSCP并转到生产上的Web根,将主索引为“”,这样如果有任何访问者访问该,则会收到一条消息,说明它已暂时.
>WinSCP从我的PC复制到生产Web(这会覆盖上的所有现有),大约需要4分钟才能看到有大量.
>SSH生产并运行大约5个命令,为各种可写适当的,并确保所有仍在www-root组下.我认为SSH的会更改所有现有.
>将“”索引回正常索引.

所有这一都复杂,需要大约5-10分钟,每次我对更改时都必须这样做,因此它已成为一件苦差事.

现在有没有办法一些工具化?或者是否有很好的部署工具,人们可以它来完成所有这些?我的登台和生产机器是基于Ubuntu

到目前为止我可以看到的一些改进是:

>在我的上一些,以便检测它是否在Staging或Production中,根据原始或缩小的 / .这将节省我手动交换.
>命令行YUI压缩器并在需要时从中运行它.
>像rsync之类的东西,这样它只会将更改的从我的登台复制到生产而不会覆盖每个

我过的一家公司来实现部署的化并完成这类.不过,这是不错的,还是有更好的工具?

面料将是这类任务的理想.如果您熟悉python,那么您可以灵活地它.

Cstrano是另可能有用的,我已经将它用于Rails部署并且没有任何.允许您在远程主机上轻松运行shell命令.

你是否像git一样源控制?当您将其推送到“生产”分支时,可以将其中一些任务为提交后挂钩.

Rsync将是最快和最的.确保排除任何不应该在生产中的(备份,vim .swp等).

以上是为你收集整理的全部内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得网站内容还不错,欢迎将推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

欢迎加入编程之家官方交流群!与上千程序员伙伴一起交流学习~

我要回帖

更多关于 运维自动化工具有哪些 的文章

 

随机推荐