开发者社区> 问答> 正文

【阿里云运维部署工具AppDeploy详细教程】之3:高效技巧


您还可以阅读其他章节:
【阿里云运维部署工具AppDeploy详细教程】之介绍安装
【阿里云运维部署工具AppDeploy详细教程】之使用方法
【阿里云运维部署工具AppDeploy详细教程】之应用部署


阿里云AppDeploy 旨在提高用户的开发运维效率,以此为基础我们提供了一些高效的命令执行方式。包括文件的上传下载、命令的远程执行、一键服务器更新源、并发执行等。下面对这几个方面的使用方式进行举例说明:


1. 上传下载文件(夹)
AppDeploy 对文件的上传、下载提供两种实现方式:
一种方式:是在appdeploy.py 中定义文件上传下载的任务,然后再命令行执行$ adep task 以实现文件的上传下载功能。这种方式可以实现复杂逻辑的上传下载功能,例如:上传不同目录下、不同服务器的文件,但使用稍微繁琐,简单的上传下载功能参考方式二。


另一种方式:直接使用adep 的命令行,格式如下:
$ adep put:local_file,remote_dir
$ adep get:remote_file,local_dir
注意上述命令中没有空格,若目录中空格,可以用引号扩起来。下面是一些例子供参考:


1) 将本地文件a.txt 上传到服务器/root/ 目录下;
[attachment=81509]

2) 本地”D:\ProgramFiles\” 目录下的b.txt 上传到服务器/root/ 目录下;
[attachment=81510]

3) 将服务器/root/b.txt 文件下载到本地;
[attachment=81511]

4) 将本地的./test/ 目录(及包含文件)上传到服务器/root/ 下面;
[attachment=81512]

5) 下面服务器/root/test 目录到本地的./test1/ 目录下;
[attachment=81513]



2. 远程执行命令
AppDeploy 工具内置了run 指令做远程执行命令,在编辑appdeploy.py 中的任务时使用run 命令可以轻松实现远程执行,而在命令行想执行一个远程命令如何实现呢?
AppDeploy 提供了两种实现方式:


一种方式:在命令行执行$ adep [options] -- [shell command] , option 为命令的参数。
例如:查看服务器/root/test/ 文件夹里的文件列表;
[attachment=81514]

另一种方式:在命令行中使用 $ adep run:”shell command” ,需要注意的是run 和后面的shell 命令之间用“:”连接,且无空格,如果shell 命令有空格,请用引号将其引起来。
[attachment=81515]



3. 一键更新源站
买好了ECS 机器,安装完了系统,大部分用户都需要更新系统源这个任务。AppDeploy 为大家搜集了阿里云服务器上最常用、高效的源站链接,并提供一键更新的功能。此功能已经支持Ubuntu 、Centos 、Fedora 、Opensuse 、Debain 等Unix 系统。


更新源站命令: $ adep update_source
[attachment=81516]
4. 并发执行

Appdeploy 默认是串行执行所有命令的。但在设定参数的情况下可以实现并发执行任务。
AppDeploy 有两种方式并发执行任务:
1) 在命令行执行任务时添加-P 选项,则执行的所有任务都会在不同的服务器之间并发执行,但不同任务之间依然按照顺序执行进行;
例如:

$ adep -P -H host1,host2update reload
执行结果
update on host1 and host2
reload on host1 and host2

2) 通过在appdeploy.py 文件中的任务前面添加@parallel 来表明某个任务会被并行执行;
例如:

def task1():
    pass
@parallel
def task2():
    pass
$adep -H host1,host2,host3 task1 task2
结果:
Task1 on host1
Task1 on host2
Task1 on host3
Task2 on host1,host2, and host3
$adep -P -H host1,host2,host3 task1 task2
结果:(-P 参数会覆盖appdeploy 中的定义)
Task1 on host1,host2, and host3
Task2 on host1,host2, and host3



此类命令是基于用户工作习惯的总结,如果您有想新添加的功能或快捷方式,请与我们联系,我们会考虑将您需要的功能添加到工具的下个版本。


阿里云AppDeploy 的高效技巧先说到这里,如您使用中遇到什么问题,可以联系:
旺旺账号: 阿云开发者效率
邮箱: aliyun-developers-efficiency@list.alibaba-inc.com

欢迎下载使用阿里云AppDeploy ,期待您的反馈和建议!!

普通版:
http://market.aliyun.com/products/53690006/cmgj000331.html?spm=5176.900004.4.2.iTWBiC
Python 版:
http://market.aliyun.com/products/53690006/cmgj000321.html?spm=5176.9000004.0.0.8AlNTY

展开
收起
阚俊宝 2015-08-11 13:56:11 10425 0
1 条回答
写回答
取消 提交回答
  • 支持。
    2015-08-11 14:11:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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