appfog提供了最为便捷的命令行操作工具 ———— af命令。当然,像Heroku等云应用商也有类似的工具。原理都是基于ruby,版本控制类似于svn和git 。熟练的操作af命令往往能达到事半功倍的效果 ———— 因为这个都是国外的提供商,web页面登录操作有时会非常慢。而使用命令行操作,对带宽的依赖相对要低些。操作也高效些。

以下列举了平时常用到的一些操作,说白了也就是从af help里摘取了一部分出来。

 1ruby环境下安装af
 2gem update –system
 3gem install af
 4登录
 5af  login
 6创建应用
 7af push appsname
 8应用的重启或删除
 9    start <appname> [--debug [MODE]]             Start the application
10    stop  <appname>                              Stop the application
11    restart <appname> [--debug [MODE]]           Restart the application
12    delete <appname>                             Delete the application
13    clone <src-app> <dest-app> [infra]           Clone the application and services
14列出所有的应用
15af apps
16数据库相关命令
17services                                     Lists of services available and provisioned
18    create-service <service> [--name,--bind]     Create a provisioned service
19    create-service <service> <name>              Create a provisioned service and assign it <name>
20    create-service <service> <name> <app>        Create a provisioned service and assign it <name>, and bind to <app>
21    delete-service [servicename]                 Delete a provisioned service
22    clone-services <src-app> <dest-app>          Clone service bindings from <src-app> application to <dest-app>
23    tunnel <servicename> [--port]                Create a local tunnel to a service
24    tunnel <servicename> <clientcmd>             Create a local tunnel to a service and start a local client
25用户管理
26user                                         Display user account information
27passwd                                       Change the password for the current user
28logout                                       Logs current user out of the target system
29类svn的更新及下载
30push [appname] --path                        Push application from specified path
31push [appname] --mem M                       Set the memory reservation for the application
32update <appname> [--path,--debug [MODE]]     Update the application bits
33pull <appname> [path]                        Downloads last pushed source to <appname> or [path]
34download <appname> [path]                    Downloads last pushed source to zipfile</appname></appname></appname></appname></clientcmd></servicename></servicename></dest-app></src-app></dest-app></src-app></app></name></app></name></service></name></name></service></service></dest-app></src-app></appname></appname></appname></appname>

后记:

由于centos上的ruby版本太低,所以每次在新主机上安装af环境时,都要源码包安装一次。这里做个记录吧!下次安装时直接按教程安装就OK了。

一、yaml的安装

如果不安装该包,在安装完ruby并编译gem后,使用gem会出现如下的提示信息:

1[root@localhost ~]# gem sources -l
2/usr/local/lib/ruby/1.9.1/yaml.rb:84:in `<top>':
3It seems your ruby installation is missing psych (for YAML output).
4To eliminate this warning, please install libyaml and reinstall your ruby.
5*** CURRENT SOURCES ***
6https://rubygems.org/</top>

安装步骤如下:

1[root@localhost src]# wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz
2[root@localhost src]# tar zxvf yaml-0.1.5.tar.gz
3[root@localhost src]# cd yaml-0.1.5
4[root@localhost src]# ./configure
5[root@localhost src]# make && make install

注:这里安装路径不要更改,更改后ruby会找不到lib文件的位置 。

二、ruby的安装

由于官方源比较慢,也可以选择去http://ruby.taobao.org/网站上下载源码包,这里我还是以官网的下载为例给下安装代码:

1[root@localhost src]# wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p545.tar.gz
2[root@localhost src]# tar zxvf ruby-1.9.3-p545.tar.gz
3[root@localhost src]# cd ruby-1.9.3-p545
4[root@localhost ruby-1.9.3-p545]# ./configure
5[root@localhost ruby-1.9.3-p545]# make && make install 

三、gem的安装

官方下载页面为:http://rubygems.org/pages/download ,安装步骤如下:

1[root@localhost src]# wget http://production.cf.rubygems.org/rubygems/rubygems-2.2.2.tgz
2[root@localhost src]# tar zxvf rubygems-2.2.2.tgz
3[root@localhost src]# cd rubygems-2.2.2
4[root@localhost src]# ruby setup.rb

安装完成后,使用gem时还会报找不到该应用程序,如下:

1[root@localhost ~]# gem
2-bash: /usr/bin/gem: No such file or directory
3[root@localhost ~]# whereis gem
4gem: /usr/local/bin/gem

经查看发现,安装后的位置和默认找的位置不同,通过ln做一个软链接

1[root@localhost ~]# ln -s /usr/local/bin/gem /usr/bin/gem

四、更新sources源安装af

由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以这里改用taobao sources源,其每15分钟和rubgems.org官网同步一次。

1[root@localhost ~]# gem sources --remove https://rubygems.org/
2[root@localhost ~]# gem sources -a https://ruby.taobao.org/
3[root@localhost ~]# gem sources -l
4*** CURRENT SOURCES ***
5https://ruby.taobao.org
6# 请确保只有 ruby.taobao.org
7[root@localhost ~]# gem install af

完了就可以使用af CLI tool了。