Openstack基本命令

Openstack有数量众多的命令行工具(CLI),用来执行各式各样的管理任务,例如VM管理、存储管理、网络管理。本文描述用Openstack CLI工具执行如下任务:

  • 设置环境变量
  • 使用内置帮助
  • 创建和使用SSH密钥对
  • 创建和修改glance镜像
  • 创建nova flavor
  • 启动和删除镜像
  • 创建tenant
  • 创建tenant的用户和角色
  • 测试身份认证

继续阅读

发表在 Common | 标签为 | 一条评论

System-NS.com介绍

System-NS.com是2013年新出现的DNS解析服务,当前处于Beta状态。在Beta期间,用户注册后可以免费解析5个域名,也可以使用它作为secondary DNS。它也有一个基本的动态DNS服务,免费用户可获得一个子域名。

优点:

  • DNS记录可通过API动态更新(跟DNSbed一样)
  • 免费服务可解析5个域名
  • Secondary DNS可以有10个域名

缺点:

  • 还在Beta状态,可能有bug
  • 价格尚不明
  • DDNS没有客户端,只提供了一个API
  • 主站位于欧洲,国内访问慢

继续阅读

发表在 Common | 标签为 , | System-NS.com介绍已关闭评论

Neutron网络介绍

Neutron是Openstack的网络组件,它跟其他组件如Nova, Glance, Keystone, Horizon协同工作,完成Openstack的虚拟网络功能。Neutron使用Open vSwitch(OVS)这个开源的、软件基础的虚拟交换机。Neutron的OVS组件由2部分构成:

  • OVS插件:由Neutron服务在运行时加载。该插件提供API访问,并存储网络逻辑数据和映射关系在后台数据库里。
  • OVS代理:在每个计算节点运行。该代理从数据库里获取配置信息,并与本地的OVS实例进行通信,执行网络配置。

对Openstack来说,OVS作为内核模块存在,或作为唯一的用户空间进程存在。与物理交换机类似,OVS基于端口配置,负责网络数据包的打标签、转发等。Neutron通过OVS插件与OVS进行交互。

继续阅读

发表在 Common | 标签为 | Neutron网络介绍已关闭评论

DuckDNS – 免费的DDNS服务

最近知名的动态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/

发表在 Common | 标签为 , | DuckDNS – 免费的DDNS服务已关闭评论

清明游立园

立园位于开平,是一个私家园林,距珠海150公里,当天可以来回。之前去过自力村,见识了各种形式的碉楼,因此这次去也没抱特别大的期望,当作清明散散心。摘自百度百科:立园是旅美华侨谢维立先生于二十世纪20年代回来兴建的,既有中国园林的韵味,又吸收欧美建筑的西洋情调,将其巧妙地糅合在一起,在中国华侨私人建造的园林中堪称一流,也是中国发现较为完整的中西结合的名园。

总体来说,就是一个有点特色的私家园林,并不是名山大川、风景名胜。里面只有一个小碉楼,如果真要看碉楼群,还是去自力村。园林分为三部分:中间的别墅区,后庭的私家花园,前庭的湖边草地。下面上图。

继续阅读

发表在 Common | 标签为 , | 清明游立园已关闭评论

三月,樱花如梦

每年春天,日本樱花盛开,游人如织,日本人有赏樱花的百年传统。如果你不能订票亲往观看,那么可以一览Instagram用户所拍摄的无边春色 — 最美丽樱花前20如下。

第一张:

cherry20

继续阅读

发表在 Common | 标签为 | 三月,樱花如梦已关闭评论

AMQP默认交换机

AMQP有个默认交换机类型,它实际是direct交换机,只不过没有名字。它是由broker预先定义好的。它有个非常有用的特性,每个队列自动绑定到它,使用的routing key就是队列的名字。

例如,当你声明一个名为”search.indexing.online”的队列,但没有调用bind()与交换机绑定,broker会将它绑定到默认交换机,并使用”search.indexing.online”队列名作为routing key. 这样,发往默认交换机的消息,使用routing key=”search.indexing.online”,将会路由到同名队列。换句话说,默认交换机看起来是直接投递消息到队列,虽然技术实现上并不是这样。

继续阅读

发表在 Common | 标签为 , | AMQP默认交换机已关闭评论

MQ简单介绍

一年前给同事做了一场关于RabbitMQ的简单介绍,PPT在这里

里面涉及的演示代码粘贴如下,语言是ruby,MQ库是bunny。跟流行的名为AMQP的库不同,bunny是同步的,使用相对简单。AMQP主要是异步,使用它需要异步编程的知识,参考这篇

继续阅读

发表在 Common | 标签为 , | MQ简单介绍已关闭评论

Ruby DataMapper

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的类,这个类随后会被映射成数据库的表。

继续阅读

发表在 Common | 标签为 , | Ruby DataMapper已关闭评论

在Sinatra里使用erb模板

以前用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 

继续阅读

发表在 Common | 标签为 , | 在Sinatra里使用erb模板已关闭评论