阿里云运维部署工具AppDeploy最佳实践

运维 系统运维
阿里云AppDeploy版是一个通过SSH实现的流式命令行工具,可用于完成应用部署和远程运维管理,其工作于python平台上,具有良好的可移植性;AppDeploy将本地应用软件上传到远端服务器,并执行用户预定义的产品部署命令。本文通过三个使用场景介绍AppDeploy,供大家参考!

  阿里云AppDeploy版是一个通过SSH实现的流式命令行工具,可用于完成应用部署和远程运维管理,其工作于python平台上,具有良好的可移植性;AppDeploy将本地应用软件上传到远端服务器,并执行用户预定义的产品部署命令。

[[154718]]

  工具当前免费下载使用,地址:

  http://market.aliyun.com/products/53690006/cmgj000331.html

  http://market.aliyun.com/products/53690006/cmgj000321.html

  本文通过三个使用场景介绍AppDeploy:

  一、高效运维管理命令

  1.实时监控服务器状态

  执行命令:  

  1. $ adep check_status 

  将得到服务器的具体信息,包括ip、route、dns、resolve、iptables、mount、disk、load等。

  也可以在命令后面加具体参数查看部分信息,例如:

  当前支持:ip、route、dns、resolve、iptables、mount、diskload。  

  1. $ adep check_status:resolve 

    

  1. $ adep check_status:disk 

  

  2.实时监控服务器带宽

  在命令行执行:  

  1. $ adep check_bandwidth 

  将会得到下面动态数据:

  其中红框内的数据分别为:

  ◆提示按”e”字母退出监控状态:此处注意输入格式。

  ◆服务器流入带宽实时数据(动态显示):分别显示KB/s 和Mb/s两中常见数据格式。

  ◆服务器流出带宽实时数据(动态显示):分别显示KB/s 和Mb/s两中常见数据格式。

  3.文件的上传下载

  通过命令行类似shell命令的方式实现:

  具体操作的哪些服务器、用户名、密码信息由appdeploy.py文件定义。

  文件上传命令格式:  

  1. $ adep put:localfile,remoteFolder 

  ◆“put”、”:”、”localFile”、”,”、”remoteFolder”之间都没有空格。

  ◆LocalFile:本地上传文件路径及名字,RemoteFolder:上传到服务器的具体目录。

  文件下载命令格式:  

  1. $ adep get:remoteFile,localFolder 

  ◆”get”、”:”、”remoteFile”、”,”、”localFolder”之间都没有空格。

  ◆RemoteFile:从服务器上下载的文件名,localFolder:下载文件本地存放目录。

  例如:

  #p#

4.远程命令执行

  通过命令行类似shell命令的方式实现:

  具体操作的哪些服务器、用户名、密码信息由appdeploy.py文件定义。

  命令远程执行格式:

 

  1. return (1xx | 2xx | 4xx | 5xx) ["text"];  
  2. $ adep run:shellCommand 

  ◆“run”、”:”、”shellCommand”之间都没有空格。

  ◆ShellCommand:指远端执行的命令,有空格时要用引号引起来。

  5.一键更新服务器源

  命令行输入:  

  1. $ adep update_source 

  可以更新服务器端的源配置,支持Ubuntu、Centos、Redhat、Opensuse、Debian等系统的多个版本源更新功能。

  二、一键部署Web服务器之Mysql + Nginx + PHP

  1.在appdeploy.py中输入以下定义

 

  1. def runtime():  
  2. componets={“nginx” : “1.4.4″,  
  3. “php” : “5.6.11″,  
  4. “mysql” : “5.6.26″  
  5.  
  6. install_runtime(componets) 

  2.在命令行执行下面命令,由于全部为源码安装,安装会占用相对较长时间。  

  1. $ adep runtime 

  3.应用部署上线:上传您的PHP项目

  下面代码表示将本地PHP项目上传到服务器:/aliyun/www/phpwind目录。

 

  1. def deploy_php():  
  2. put(“./php/*”, “/aliyun/www/phpwind/”) 

  执行:  

  1. $ adep deploy_php 

  4.检验应用部署效果

  三、一键部署Web服务器之JDK + Mysql + Nginx + Tomcat

  1.在appdeploy.py中输入以下定义:

 

  1. def runtime():  
  2. componets={ “jdk” : “1.8.0″,  
  3. “nginx” : “1.4.4″,  
  4. “tomcat” : “7.0.63″,  
  5. “mysql” : “5.6.26″  
  6.  
  7. install_runtime(componets) 

  2.在命令行执行下面命令,由于全部为源码安装,会占用相对较长时间。  

  1. $ adep runtime 

  3.应用部署:上传您的java项目

  下面任务会将本地java项目编译、打包、上传到服务器(基于Maven,appdeploy会自动检测您的maven程序是否安装,若没有安装,则会自动安装),***上传到服务器的/aliyun/server/tomcat/webapps目录。

 

  1. def pack_deploy():  
  2. componets={“plugin”: “maven”,  
  3. “project_dir” : “./java/myFirstWebApp”,  
  4. “web_dir” : “/aliyun/server/tomcat/webapps”  
  5.  
  6. package(componets)  
  7. deploy(componets) 

  执行:  

  1. $ adep pack_deploy 

  4.检验应用部署效果  

责任编辑:火凤凰 来源: 运维帮
相关推荐

2015-11-04 13:14:49

AppDeploy运维工具

2013-06-09 10:38:54

IT运维管理运维管理ITIL管理

2014-01-21 09:55:21

运维人员日志实践

2015-07-23 08:48:29

运维

2015-02-04 11:45:52

高效运维

2015-08-29 13:03:24

运维技术沙龙MDSA

2017-07-25 10:53:27

2021-01-05 10:09:28

DevOps

2018-06-29 10:36:29

阿里云互联网故障

2015-08-05 09:53:34

运维自动化

2013-06-18 09:17:16

云部署IT云安全

2013-06-18 09:24:36

云部署实践云计算

2013-09-13 16:15:29

柯旻运维云计算运维

2012-06-28 11:35:27

BSM北塔软件

2015-09-01 09:23:38

360网络运维

2015-02-13 18:43:34

Windows Azu阿里云迁移

2020-07-17 11:23:43

云运维云运维工具多云

2015-06-24 10:42:19

云计算运维自动化运维ANSIBLE

2017-10-09 09:12:35

携程运维架构

2016-06-17 15:21:43

小米运维
点赞
收藏

51CTO技术栈公众号