在centos7上搭建openstack: 1,准备环境

今天公司给了个任务,在4台刀片机上搭建一套完整的openstack。这个过程相信是漫长而复杂的,遇到的问题一定也不是一点两点。因此记录下来供以后参考。

1,网络拓扑:

network

 

每台server之间有内部网络在openstack中我们称为internal network以及外部与office机器相联的网络,称为external network.

这边的external network与openstack中的external network是有所区别的,因为我们的openstack只是用于公司内部测试,并不对外开放。

而其实中真正作为external network接入点的是server上的10.4.10.231网卡,其实server之所以配置10.4.10.x网段是为了方便连接

2,OS

每台机器安装centos7 minimal版本,并按图配好网络

3,安装工具包

需安装yum-plugin-priorities epel  rdo (openstack库) 和 openstack-selinuix

yum install yum-plugin-priorities

yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

yum install http://rdo.fedorapeople.org/openstack-juno/rdo-release-juno.rpm

yum install openstack-selinux

执行yum upgrade 升级系统

这些工具包需要在每台server上都安装,之后的搭建过程中都会用到

 

如此环境就准备完毕了

Centos7安装过程中找不到硬盘

今天帮公司的服务器安装centos7

不知道为什么始终找不到硬盘,整整一下午,都在bios中找问题

最后求助google大神

原来是因为原来的硬盘是GPT分区造成的

果断用liveCD

parted /dev/sda
mklabel msdos
unit gb
mkpart primary 0 160
quit

搞定

解决ubuntu14.04中VSFTP总是无法登录的问题

vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

理论上是没有什么错的,在centos6中工作正常

可是在ubuntu14.04中,新通过useradd创建的用户就无法登录

vsftpd.log总是报FAIL to LOGIN

经过google大神上的翻阅

pam_service_name=ftp

解决了这个问题

具体原因还不清楚

openwrt 配置端口转发

WNDR3700v4  出了故障老是无故断网,一怒之下刷了openwrt

由于家里挺多服务要对外开方,所以端口转发必不可少

openwrt的GUI里有端口转发选项,看似容易的很,可是折腾了一晚上还是无法成功,于是Google

发现很多人反应得用iptables命令才能成功转发

需求:访问192.168.1.1:9922 访问192.168.1.99:22

执行如下命令

echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -d  192.168.1.99 -p tcp --dport 22 -j MASQUERADE
iptables -t nat -A PREROUTING –p tcp -m tcp --dport 9922 -j DNAT --to-destination 192.168.1.99:22

 

 

 

 

linux中模拟拔插盘

linux中模拟拔插盘对于调试是很有用的

scsiadd就是一个十分适合的工具

下载后

./configure
./make
./make install

就可以了

python中ip与int的转换

有这样一个需求

根据ip和子网掩码,计算网络IP

即192.168.1.1  255.255.255.0 => 192.168.1.0

在这个过程中需要将IP转换成数字,并与子网进行与操作

网上找到了个好方法

ip2num = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])])
num2ip = lambda x:'.'.join(["%d"%(x/(256**i)%256) for i in range(3,-1,-1)])

这样一来网络IP的计算就容易多了

netip=num2ip(ip2num('192.168.1.1')&ip2num('255.255.255.0'))

 

 

如何把新的域名指向到wordpress mu的subsite上

需求是这样的

开启了wordpress的多站点功能,除了主域名http://wyq.me为当前博客外,还建了一个http://wyq.me/xi的subsite 用来记录女儿的成长史。为女儿申请了个域名http://wangxi.info, 现在的要求就是用户输入wangxi.info时可以访问wyq.me/xi这个wordpress subsite. 地址栏的URL不变化。也就wyq.me这个域名对访问wangxi.info的人而言是不可见的

试了几个方法:

1. 域名服务商的301 forwarding with mask 将 wangxi.info指向到wyq.me/xi

具自己的经验这么做是可行的也是最简单的,可是godaddy的forwarding 已被中国屏蔽,dnspod上对于隐藏forwarding是要收费的,果断放弃。

2. 直接使用nginx的301 redirect

这个是成功转发了,直接用的rewrite 模块,但始终无法实现隐藏转发,只能直接跳转到wyq.me/xi,不是很友好,放弃。

3. 使用WordPress MU Domain Mapping插件

这是最后的解决方案,也是花了很多时间,看了很多E文的论坛才找到的。

如何下载安装插件就不多说了,这边直接配置要点:

  1. 在WordPress MU Domain Mapping的管理界面,加添域名wangxi.info。并将wangxi.info设为primary doman
  2. 修改nginx的server name, 添加wangxi.info(此处根据实际情况判断是必要),并重启
  3. 在wordpress后台的编辑站点处的修改当前subsite的域名,由原来的wyq.me/xi改为wangxi.info(这步很关键, 如果不改,则只能访问首页,去无法打开文章)

直接访问http://wangxi.info

Greate!

 

vi/vim中的一些有用的设置型命令

set history=50  保留的历史命令
set ruler             一直显示光标
set tabstop=4    tab所占的空格数
set shiftwidth=4
set expandtab
set sw=4
set tw=100
set nu                  是否显示行号,nonu为不显示
set esckeys
set noerrorbells
set bg=dark        背景色