阿里云運維部署工具AppDeploy最佳實踐(1)
2016-02-20 19:33:56 來源: 阿里云 運維幫 評論:0 點擊:
阿里云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:下載文件本地存放目錄。
例如:
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.檢驗應用部署效果
【編輯推薦】
