Openstack有数量众多的命令行工具(CLI),用来执行各式各样的管理任务,例如VM管理、存储管理、网络管理。本文描述用Openstack CLI工具执行如下任务:
- 设置环境变量
- 使用内置帮助
- 创建和使用SSH密钥对
- 创建和修改glance镜像
- 创建nova flavor
- 启动和删除镜像
- 创建tenant
- 创建tenant的用户和角色
- 测试身份认证
Openstack有数量众多的命令行工具(CLI),用来执行各式各样的管理任务,例如VM管理、存储管理、网络管理。本文描述用Openstack CLI工具执行如下任务:
System-NS.com是2013年新出现的DNS解析服务,当前处于Beta状态。在Beta期间,用户注册后可以免费解析5个域名,也可以使用它作为secondary DNS。它也有一个基本的动态DNS服务,免费用户可获得一个子域名。
优点:
缺点:
Neutron是Openstack的网络组件,它跟其他组件如Nova, Glance, Keystone, Horizon协同工作,完成Openstack的虚拟网络功能。Neutron使用Open vSwitch(OVS)这个开源的、软件基础的虚拟交换机。Neutron的OVS组件由2部分构成:
对Openstack来说,OVS作为内核模块存在,或作为唯一的用户空间进程存在。与物理交换机类似,OVS基于端口配置,负责网络数据包的打标签、转发等。Neutron通过OVS插件与OVS进行交互。
最近知名的动态DNS提供商DynDNS关闭了它的免费服务,在lifehacker看到这篇有趣的文章,调查有哪些DynDNS的替代品。其中有一个回答者提到了DuckDNS,一个新出现的动态DNS服务,并且给予了特别好评。然后,DuckDNS的作者之一也现身了,对自己的服务做了一番吹捧。
DuckDNS成立约一年,由两兄弟开发,他们在软件领域有15年以上经验。服务运行在Amazon AWS平台上,使用的架构主要是Nginx, Jetty, Java, DynamoDb (AWS). 支持Google、FB、Reddit的第三方身份认证。平台开发了一年,现在支持17种动态更新DNS的方法。免费用户可获得4个域名,如果你赞助了,则可以获得10个域名。他们号称非常关注安全和隐私,不会存储用户的日志,不会将用户数据提交给第三方。
DuckDNS网址:http://duckdns.org/
立园位于开平,是一个私家园林,距珠海150公里,当天可以来回。之前去过自力村,见识了各种形式的碉楼,因此这次去也没抱特别大的期望,当作清明散散心。摘自百度百科:立园是旅美华侨谢维立先生于二十世纪20年代回来兴建的,既有中国园林的韵味,又吸收欧美建筑的西洋情调,将其巧妙地糅合在一起,在中国华侨私人建造的园林中堪称一流,也是中国发现较为完整的中西结合的名园。
总体来说,就是一个有点特色的私家园林,并不是名山大川、风景名胜。里面只有一个小碉楼,如果真要看碉楼群,还是去自力村。园林分为三部分:中间的别墅区,后庭的私家花园,前庭的湖边草地。下面上图。
AMQP有个默认交换机类型,它实际是direct交换机,只不过没有名字。它是由broker预先定义好的。它有个非常有用的特性,每个队列自动绑定到它,使用的routing key就是队列的名字。
例如,当你声明一个名为”search.indexing.online”的队列,但没有调用bind()与交换机绑定,broker会将它绑定到默认交换机,并使用”search.indexing.online”队列名作为routing key. 这样,发往默认交换机的消息,使用routing key=”search.indexing.online”,将会路由到同名队列。换句话说,默认交换机看起来是直接投递消息到队列,虽然技术实现上并不是这样。
DataMapper是ruby的另外一个ORM库(之前了解过Active Record)。DataMapper相对较新,完全用ruby写的。安装比较简单:
gem install data_mapper
我们打算使用SQLite,所以需要安装它的适配器:
gem install dm-sqlite-adapter
同样来自《Jump start sinatra》的例子,假设我们创建一个歌单,编辑song.rb文件,输入如下内容:
require 'dm-core' require 'dm-migrations' DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/development.db") class Song include DataMapper::Resource property :id, Serial property :title, String property :lyrics, Text property :length, Integer property :released_on, Date end DataMapper.finalize
上述设置development.db这个SQLite数据库,建立了一个名为Song的类,这个类随后会被映射成数据库的表。
以前用Sinatra写过API,没写过页面。在看《Jump Start Sinatra》这本书,有一节介绍如何使用erb模板来套页面,感觉挺方便。把里面的例子记录如下。
假如做一个网站,有三个基本页面:Home, About, Contact. 在主程序main.rb里,可以这样写:
require 'sinatra' set :bind, '0.0.0.0' get '/' do erb :home end get '/about' do erb :about end get '/contact' do erb :contact end