阿里云AppDeploy版是一个通过SSH实现的流式命令行工具,可用于完成应用部署和远程运维管理,其工作于python平台上,具有良好的可移植性;AppDeploy将本地应用软件上传到远端服务器,并执行用户预定义的产品部署命令。
工具当前免费下载使用,地址:
http://market.aliyun.com/products/53690006/cmgj000331.html
http://market.aliyun.com/products/53690006/cmgj000321.html
本文通过三个使用场景介绍AppDeploy:
一、高效运维管理命令
1.实时监控服务器状态
执行命令:
- $ adep check_status
将得到服务器的具体信息,包括ip、route、dns、resolve、iptables、mount、disk、load等。
也可以在命令后面加具体参数查看部分信息,例如:
当前支持:ip、route、dns、resolve、iptables、mount、diskload。
- $ adep check_status:resolve
- $ adep check_status:disk
2.实时监控服务器带宽
在命令行执行:
- $ adep check_bandwidth
将会得到下面动态数据:
其中红框内的数据分别为:
◆提示按”e”字母退出监控状态:此处注意输入格式。
◆服务器流入带宽实时数据(动态显示):分别显示KB/s 和Mb/s两中常见数据格式。
◆服务器流出带宽实时数据(动态显示):分别显示KB/s 和Mb/s两中常见数据格式。
3.文件的上传下载
通过命令行类似shell命令的方式实现:
具体操作的哪些服务器、用户名、密码信息由appdeploy.py文件定义。
文件上传命令格式:
- $ adep put:localfile,remoteFolder
◆“put”、”:”、”localFile”、”,”、”remoteFolder”之间都没有空格。
◆LocalFile:本地上传文件路径及名字,RemoteFolder:上传到服务器的具体目录。
文件下载命令格式:
- $ adep get:remoteFile,localFolder
◆”get”、”:”、”remoteFile”、”,”、”localFolder”之间都没有空格。
◆RemoteFile:从服务器上下载的文件名,localFolder:下载文件本地存放目录。
例如:
#p#
4.远程命令执行
通过命令行类似shell命令的方式实现:
具体操作的哪些服务器、用户名、密码信息由appdeploy.py文件定义。
命令远程执行格式:
- return (1xx | 2xx | 4xx | 5xx) ["text"];
- $ adep run:shellCommand
◆“run”、”:”、”shellCommand”之间都没有空格。
◆ShellCommand:指远端执行的命令,有空格时要用引号引起来。
5.一键更新服务器源
命令行输入:
- $ adep update_source
可以更新服务器端的源配置,支持Ubuntu、Centos、Redhat、Opensuse、Debian等系统的多个版本源更新功能。
二、一键部署Web服务器之Mysql + Nginx + PHP
1.在appdeploy.py中输入以下定义
- def runtime():
- componets={“nginx” : “1.4.4″,
- “php” : “5.6.11″,
- “mysql” : “5.6.26″
- }
- install_runtime(componets)
2.在命令行执行下面命令,由于全部为源码安装,安装会占用相对较长时间。
- $ adep runtime
3.应用部署上线:上传您的PHP项目
下面代码表示将本地PHP项目上传到服务器:/aliyun/www/phpwind目录。
- def deploy_php():
- put(“./php/*”, “/aliyun/www/phpwind/”)
执行:
- $ adep deploy_php
4.检验应用部署效果
三、一键部署Web服务器之JDK + Mysql + Nginx + Tomcat
1.在appdeploy.py中输入以下定义:
- def runtime():
- componets={ “jdk” : “1.8.0″,
- “nginx” : “1.4.4″,
- “tomcat” : “7.0.63″,
- “mysql” : “5.6.26″
- }
- install_runtime(componets)
2.在命令行执行下面命令,由于全部为源码安装,会占用相对较长时间。
- $ adep runtime
3.应用部署:上传您的java项目
下面任务会将本地java项目编译、打包、上传到服务器(基于Maven,appdeploy会自动检测您的maven程序是否安装,若没有安装,则会自动安装),***上传到服务器的/aliyun/server/tomcat/webapps目录。
- def pack_deploy():
- componets={“plugin”: “maven”,
- “project_dir” : “./java/myFirstWebApp”,
- “web_dir” : “/aliyun/server/tomcat/webapps”
- }
- package(componets)
- deploy(componets)
执行:
- $ adep pack_deploy
4.检验应用部署效果