VirtualBox 下单网卡CentOS6.5安装openstack

0

修改源

rpm -Uvh  http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh  http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 
yum install -y http://rdo.fedorapeople.org/openstack-havana/rdo-release-havana.rpm
yum update -y

编辑 /etc/selinux/config 文件

SELINUX=disabled

此处要重启

yum install -y openstack-packstack python-netaddr
packstack --allinone --provision-all-in-one-ovs-bridge=n

看起来还是很简单的,不过安装过程中会出现各种的错误,基本上都是源地址下载太慢超时造成的
这种情况就只能多试几次,或者是科学上网解决了

如果出现问题可以使用

packstack --answer-file /root/packstack-answers-**.txt #将**替换为实际的名称

来继续安装

初试backbone

0

开发需求,打算使用backbone来做一个手机端的网页,后续还会做一个web应用,也会有更多的交互处理
就研究了下backbone这个东东

后来发现要按需加载,随后又玩了下requirejs,以发现npm这个好东西,接着发现了bower包。。。
这下不可收拾,使用bower搭建了一个requirejs、backbone、underscore、zepto的环境
又使用r.js来压缩;做了个基本的结构放到了 Bitbucket

使用很简单,下载该版本库,如果安装好了bower,在下载的文件夹中执行下 bower install 即可

后来在使用过程中又加入了text库,用来加载模板,在r.js压缩后 能把模板、所有js文件压缩到一个文件中

减少了网页请求,增强了用户交互 很不错的选择

openwrt+openvpn打造智能路由

0

有关vpn的我写了几次了,包括pptp和openvpn上网的设置
不过前段时间看到一朋友折腾tp-link703n的路由,做成智能路由的,我也折腾了一把

主要是懒得折腾每个设备上的配置,现在家里网络设备有笔记本一台,苹果手机两部;而我的小本上还装了两个系统,linux下的好说,直接安装软件设置,而windows下试了几次都没能成功,只得放弃。废话不多说,入正题。

1)准备工作
703n路由器一台、U盘一个、网线一根、安装了openvpn服务器的主机一台(这个我上篇有提到)
2)给路由器刷上openwrt
这个网上有很多教程的,也很方便操作,并且好象我刷完后就带有了luci界面的,这个就不多废话了
3)路由器开启ssh

telnet 192.168.1.1 #连接路由
password           #修改密码

4)开启无线

vim /etc/config/wireless

注释掉option disabled 1一行,并设置Wifi的加密方式和密码:

config wifi-device  radio0
	option type     mac80211
	option channel  11
	option hwmode	11ng
	option path	'platform/ar933x_wmac'
	option htmode	HT20
	list ht_capab	SHORT-GI-20
	list ht_capab	SHORT-GI-40
	list ht_capab	RX-STBC1
	list ht_capab	DSSS_CCK-40
	# REMOVE THIS LINE TO ENABLE WIFI:
	# option disabled 1
 
config wifi-iface
	option device   radio0
	option network  lan
	option mode     ap
	option ssid     OpenWrt
	option encryption psk2
	option key	'password' #个性成自己的密码

5)修改网络配置

vim /etc/config/network

注释掉option ifname ‘eth0′并增加WAN口设置,

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'
 
config globals 'globals'
	option ula_prefix 'fd48:f746:e8a5::/48'
 
config interface 'lan'
	# option ifname 'eth0'
	option type 'bridge'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
 
config interface 'wan'
	option ifname 'eth0'
	option proto 'pppoe'
	option username 'ppoeusername'  #你的拨号网络帐号
	option password 'password'      #你的帐号密码
 	option peerdns '0'              #此项为不从运营商处获取dns,避免dns污染
	option dns '8.8.8.8 8.8.4.4'

如果是自动获取的IP,只要将option proto 设置为’dhcp’即可,将拨号的两项注释,reboot重启路由已可连接网络正常上网了
6)准备U盘
一般路由器安装完openwrt后空间都所剩不多,所以要利用路由器上的USB来扩展一个U盘;U盘要分成三个区,可根据自己在U盘大小适当调整;我用的是一个4G的,分区大小大概如下
sdb1 2G ext4
sdb2 1G swap
sdb3 1G ext4
U盘准备完后可在路由上安装软件了
7)准备软件安装

opkg update
opkg install kmod-usb2 kmod-fs-ext4
opkg install kmod-usb-storage
opkg install block-mount
reboot

设置分区挂载

vim /etc/config/fstab

设置如下

config 'mount'
	option	target	/mnt/usb
	option	device	/dev/sdb1
	option	fstype	ext4
	option	enabled 1
 
config 'swap'
	option	device	/dev/sdb2
	option	enabled 1
 
config 'mount'
	option	target	/mnt/home
	option	device	/dev/sdb3
	option	fstype	ext4
	option	enabled	1

重启路由,就能查看到分区已经挂载了

reboot
df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    1.1M    652.0K    436.0K  60% /
/dev/root                 2.0M      2.0M         0 100% /rom
tmpfs                    14.3M    704.0K     13.6M   5% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock3            1.1M    652.0K    436.0K  60% /overlay
overlayfs:/overlay        1.1M    652.0K    436.0K  60% /
/dev/sdb1                 1.9G     72.8M      1.7G   4% /mnt/usb
/dev/sdb3               844.3M     28.0M    774.1M   3% /mnt/home

接着执行如下操作:

mkdir /tmp/root
mount -o bind / /tmp/root
cp /tmp/root/* /mnt/usb -a
umount /tmp/root
rm -r /tmp/root

接着在opkg.conf配置中增加dest usb /mnt/usb,之后就可以将我们需要的OpenVPN安装到USB中了:

vim /etc/opkg.conf
opkg update
opkg --dest usb install openvpn
ln -s /mnt/usb/usr/lib/libssl.so.1.0.0 /usr/lib/
ln -s /mnt/usb/usr/lib/libcrypto.so.1.0.0 /usr/lib/
ln -s /mnt/usb/usr/lib/liblzo2.so.2 /usr/lib/
ln -s /mnt/usb/usr/sbin/openvpn /usr/sbin/

8)安装后配置

ln -s /mnt/usb/lib/modules/3.10.4/tun.ko /lib/modules/3.10.4/
ln -s /mnt/usb/etc/modules.d/30-tun /etc/modules
ln -s /mnt/usb/etc/modules.d/30-tun /etc/modules.d/
modinfo tun
#此上为避免找不到tun模块
/etc/init.d/firewall stop
/etc/init.d/firewall disable
iptables -L -n --line-number
iptables -t nat -vnL POSTROUTING --line-number
#此上为关闭防火墙,并查看默认转发规则

可以看到此时默认是没有任何转发规则的,因此此时连接到路由器的设备是无法上网的,配置路由每次上电重启时候自动加载tun模块并加入转发规则:

vim /etc/rc.local

修改内容如下:

insmod tun
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
iptables-save
 
exit 0

9)正题,配置vpn客户端
我是在/mnt/usb/data/openvpn下建立了703n.ovpn的配置文件,这个路径可随自己意愿来设置;拿出上次文章中生成的ca.crt,client.crt,client.key三个文件也放到此文件夹下
修改703n.ovpn内容如下

client
remote #remoteIP 1194 #修改成自己的服务器IP
dev tun
comp-lzo
ca /mnt/usb/data/openvpn/ca.crt
cert /mnt/usb/data/openvpn/client.crt
key /mnt/usb/data/openvpn/client.key
 
route-delay 2
route-method exe
max-routes 3888
redirect-gateway def1
verb 0      #据说如此设置就不会生成日志了,为了节省空间我也这么个性了
 
#此下三行为智能规则中添加,下文将提到
#script-security 2
#up vpnup.sh  
#down vpndown.sh

openvpn –config ./703n.ovpn
到此为止,就可以连接vpn上网了,不过并不能智能转发
10)终极目标ChnRoutes
下载ChnRoutes并执行

python chnroutes.py -p android

会生成两个文件vpnup.sh和vpndown.sh,将这两个文件头部的alias删除;并上传到路由器中,和703n.ovpn同一目录;将703n.ovpn最后三行的注释去掉;在电脑上tracert下百度和twitter吧
11)最后一步,openvpn开机自启动
编辑/etc/rc.local
在exit0之前添加

/usr/sbin/openvpn --cd /mnt/usb/data/openvpn --config 703n.ovpn --daemon

至此已完全完成了智能路由的改造工作,再也不用在每个设置上配置东西了,连上wifi就能直接使用!

目前为此,我的这个小路由开机一周,openvpn一直能使用的,还是很稳定的
来张小图IMG_1950

用Centos打造自己的openvpn服务器

1

之前写过一个建立pptp服务器的文章,这次也是没有办法,新拉的铁通的光纤把vpn给封了 pptp无法连接
网上搜索了下,发现openvpn还是可以用的
就又折腾了一把

准备工作:centos 服务器一台(最好境外的,比如我现在用的这个vps)
第一步,先给服务器添加扩展源

wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

我服务器还是centos 5的32位版本,其它版本就自己搜索下载
第二步,安装

rpm -Uvh epel-release-5-4.noarch.rpm
yum install -y openvpn

第三步,配置

cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/
cd /etc/openvpn
vi server.conf

把server.conf中的以下几行做下修改

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
user nobody
group nobody

除dns那两个需要改成自己的以外,其它只要把前面的分号去掉即可

第四步,生成keys

cd /tmp
wget https://github.com/downloads/OpenVPN/easy-rsa/easy-rsa-2.2.0_master.tar.gz
tar zxvf easy-rsa-2.2.0_master.tar.gz
mv /tmp/easy-rsa-2.2.0_master/easy-rsa/2.0 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

vars文件中的以下配置可做下修改

export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York"
export KEY_ORG="Organization Name"
export KEY_EMAIL="administrator@example.com"
export KEY_CN=vpn.example.com
export KEY_NAME=server
export KEY_OU=server

生成根证书

source ./vars
./clean-all
./build-ca

生成服务端证书

./build-key-server server

生成时注意,最后两步要输入Y再回车

生成 Diffie Hellman 证书

./build-dh

把生成的证书文件拷贝到/etc/openvpn目录下

cp keys/{ca.crt,ca.key,server.crt,server.key,dh1024.pem} /etc/openvpn/

第五步,系统配置

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 #把此处设置为1 保存

iptables防火墙 配置

/etc/init.d/iptables stop #关闭防火墙
vi /etc/sysconfig/iptables #编辑防火墙规则文件,之前需配置了防火墙关闭时自动保存
 
#在*filter规则下加入
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A FORWARD -d 10.8.0.0/24 -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
#在*net规则下加入
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
#此处如果多个网卡的,eth0需指定外网网卡的设备
 
/etc/init.d/iptables start   #启动防火墙
sysctl -p  #让之前设置的ip_forward生效

第六步,启动openvpn服务;并设置为开机启动

service openvpn start
chkconfig openvpn on

第七步,生成客户端证书

cd /etc/openvpn/easy-rsa
./build-key client

生成时注意,最后两步要输入Y再回车

拿着keys文件夹下的ca.crt,client.crt,clent.key用客户端就能连接了,只帖一个客户端的配置文件,不做详细说明了

client
remote #your remote ip
ca ca.crt
cert client.crt
key client.key
dev tun
proto udp
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user openvpn
group openvpn
comp-lzo
verb 3

注意指定远程ip和证书路径

openresty 安装luarocks

0

luarocks是一个lua包的管理工具,就像python下的pip
首页要下载源码

wget http://luarocks.org/releases/luarocks-2.X.X.tar.gz

源码可在此下载

tar -xzvf luarocks-2.X.X.tar.gz
cd luarocks-2.X.X/
 
./configure --prefix=/usr/local/openresty/luajit \
    --with-lua=/usr/local/openresty/luajit/ \
    --lua-suffix=jit \
    --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.0
make
sudo make install

这里我这里把它装到了openresty的目录下

使用luarocks安装扩展包

/usr/local/openresty/luajit/bin/luarocks install lapis

Lapis is a framework for building web applications using MoonScript (or Lua) that runs inside of a customized version of Nginx called OpenResty.

tornado模板中include文件名中包含变量

0

遇到了这一问题,在模板中要包含文件,不过文件名是需要变的 按开始的写法

 {% include 'ext/node{{id}}.html' %}

结果运行时报错, ext/node{{id}}.html 文件没有找到

google group 里找到了对应的方案
使用

{% module Template('ext/node'+id+".html") %}

替代
不过要注意,在使用module Template时,如果模板中使用到了变量,此处调用时也要把变量传进去 例如

{% module Template('ext/node'+id+".html",id=id) %}
Go to Top