当前位置: 首页 > 科技观察

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

时间:2023-03-19 20:55:39 科技观察

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