开发者社区> 问答> 正文

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


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

详细说明与下载地址:
http://market.aliyun.com/products/53690006/cmgj000321.html?spm=5176.900004.4.4.6romuX#3

本文为您带来几个使用AppDeploy 的经典场景:
1 楼:AppDeploy 高效运维管理命令
2 楼:一键应用部署 之Mysql +Nginx + PHP
3 楼:一键应用部署 之JDK +Mysql + Nginx + Tomcat
4 楼:一键应用部署 之Mysql +Apache + PHP

展开
收起
阚俊宝 2015-08-25 16:06:27 13785 0
6 条回答
写回答
取消 提交回答
  • Re阿里云运维部署工具AppDeploy最佳实践
    使用中  遇到一个问题     我用appdeploy工具去执行其他机器上的tomcat启动脚本,脚本内容就是去调用tomcat的startup.sh脚本,但是实际工作中,却发现并不能启动远程机器上的tomcat   但是  手工ssh上机器去执行启动脚本  tomcat能正常使用。不知道你们有没有遇到过这个问题
    2015-11-19 17:51:35
    赞同 展开评论 打赏
  • Re阿里云运维部署工具AppDeploy最佳实践
    对比 saltstack ansible之类的有哪些方面的进步呢?

    -------------------------

    Re阿里云运维部署工具AppDeploy最佳实践
    加油!

    我来提个痛点吧, 希望能够提供 web UI.  集成到控制台就最好了.

    -------------------------

    Re阿里云运维部署工具AppDeploy最佳实践
    http://www.infoq.com/cn/articles/azure-saltstack

    微软 Azure云平台 直接整合的 saltstack

    2015-08-29 14:28:51
    赞同 展开评论 打赏
  • 好像很不错哈
    2015-08-28 09:57:45
    赞同 展开评论 打赏
  • 爱好建站
    学习了
    2015-08-25 18:57:34
    赞同 展开评论 打赏
  • 解决方案工程师,负责为企业规划上云迁移方案和云上架构设计,在网站建设开发和云计算领域有多年经验,专注于Linux平台的系统维护以及应用部署。致力于以场景化的方式让云计算,用更加通俗易懂的方式让更多人体验云计算,让云端的计算更质朴的落地。
    终于写完了。我以回复了~~

    -------------------------

    回 4楼(6boys) 的帖子
    那么升级怎么破呢?
    2015-08-25 17:47:35
    赞同 展开评论 打赏
  • 阿里云容器服务开发,专注Kubernetes、Docker、云存储;
    Re阿里云运维部署工具AppDeploy最佳实践

    高效运维管理命令:


    1. 实时监控服务器状态
    执行命令:$ adepcheck_status 将得到服务器的具体信息,包括ip 、route 、dns 、resolve 、iptables 、mount 、disk 、load 等;

    也可以在命令后面加具体参数查看部分信息,例如:
    当前支持:ip 、route 、dns 、resolve 、iptables 、mount 、disk 、load ;

    $ adep check_status:resolve


    $ adep check_status:disk



    2. 实时监控服务器带宽
    在命令行执行 $ adepcheck_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:下载文件本地存放目录;

            


    4. 远程命令执行:
    通过命令行类似shell 命令的方式实现:
    具体操作的哪些服务器、用户名、密码信息由appdeploy.py 文件定义;

           命令远程执行格式:$ adep run:shellCommand
            “run”、”:”、”shellCommand”之间都没有空格;
            ShellCommand:指远端执行的命令,有空格时要用引号引起来;
            


    5.一键更新服务源
    命令行输入 $ adep update_source
    可以更新服务器端的源配置,支持Ubuntu 、Centos 、Redhat 、Opensuse 、Debian 等系统的多个版本源更新功能;

          

    -------------------------

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


    一键部署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.检验应用部署效果
            

    -------------------------

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

    一键部署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.检验应用部署效果
        

    -------------------------

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

    一键部署Web服务器之Mysql + Apache + PHP


    1.在appdeploy.py中输入以下定义
        def runtime():
              componets={ "apache" : "2.2.31",
                   "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.检验应用部署效果
        

    -------------------------

    Re阿里云运维部署工具AppDeploy最佳实践
    升级需要自己写一个任务,其实升级是安装的另一种表现形式,可以参考安装步骤。(要考虑一下万一升级失败回滚的情况)。

    AppDeploy会逐步添加类似的使用实践,热切期盼大家提出需求,共同决定产品功能走向。

    -------------------------

    回9楼水王之王的帖子
    欢迎大家使用哈

    -------------------------

    回 11楼(老猪来了) 的帖子
    都是自动化部署的工具,AppDeploy的主要优势是添加了一些常用的使用场景,例如环境部署,快捷命令等;底层的并发执行、任务管理之类的工具都相似的。

    -------------------------

    回 14楼(老猪来了) 的帖子
    多谢多谢,Web UI正在开发中,敬请期待
    2015-08-25 16:13:30
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
企业运维之云原生和Kubernetes 实战 立即下载
可视化架构运维实践 立即下载
2021云上架构与运维峰会演讲合集 立即下载