基于web技术的操作系统安装器的设计
什么是基于web技术的安装器(web-based installer)?传统的Linux操作系统安装需要启动一个LiveOS,然后在LiveOS中运行一个本地安装程序,如Fedora下的Anaconda. LiveOS除了让用户在安装操作系统之前能预先体验之外,也为安装器提供了运行环境。这对于桌面操作系统已然足够,因为PC、笔记本电脑自带终端设备——键盘、显示器、鼠标。然而,如果要给一台服务器安装操作系统则稍微复杂了一点,因为服务器通常没有这些终端设备。这就需要利用网络和VNC将服务器端的图像传送出来。这样做的缺点在于,网络负载很大,在网络条件不好的环境下会带给用户非常差的安装体验。另外,本地安装器也会依赖很多的图形软件包,不仅会增加ISO的大小,也会带来很多版权及法律上的工作量。
基于web技术的安装器则利用web开发技术——HTML5,Javascript,CSS,web server等,让用户可以通过浏览器直接安装操作系统。目前,”KVM for IBM z Systems”已经采用这种安装方式。
基于web技术安装器的优势
依赖更少的软件包
非常小的网络负载,网页加载后 ...
QEMU3 - 使用ceph来存储QEMU镜像
ceph简介Ceph是一个PB级别的分布式软件定义存储系统,为用户提供了块存储、对象存储以及符合POSIX标准的文件系统接口。目前,Ceph已经成为Openstack最受欢迎的后端存储系统。下图为ceph的架构图。
RADOS本身是一个对象存储系统,实现了ceph的核心功能。Librados是ceph提供给各种编程语言的接口。RADOSGW,RBD,CEPH FS分别为用户提供了对象存储、块存储及文件系统的功能。Ceph集群及客户端的安装配置请参考Ceph官方文档。
使用Ceph来存储QEMU镜像QEMU会假定ceph配置文件存放在默认位置/etc/ceph/$cluster.conf,也会使用client.admin作为默认的ceph用户。如果要指定其他的配置文件或者用户,可以在ceph RBD的选项中添加conf=/home/ceph.conf或者id=admin选项。qemu-img使用ceph块存储RBD时,需要使用下面的格式:
qemu-img {command} [options] rbd:{pool-name}/{imag ...
顺序存储线性表的实现
最近复习数据结构,写了一个顺序存储的线性表,代码粘在这里:)
代码下载:git@github.com:Wang-Sen/algorithm.git
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161/* * Simple array implementation. */#include ...
在fedora下使用搜狗拼音输入法
Linux下的拼音输入法实在是不敢恭维,还好有人把搜狗拼音输入法制作成了RPM包.安装此rpm包就可以在Linux下面使用搜狗拼音输入法及其字库了.
第一步,下载RPM包.
百度网盘地址:http://pan.baidu.com/s/1bpblFoN
第二步,安装RPM包.
$sudo yum install fcitx-sogoupinyin-0.0.4-1.fc20.x86_64.rpm //注意输入正确的路径
第三步,卸载ibus.
$sudo yum remove ibus
第四步,设置fcitx开机自动启动.
$sudo yum install gnome-tweak-tool
$gnome-tweak-tool //在开机启动一项中添加fcitx即可
第五步,重启gnome
$gnome-session-quit
最后,使用Ctrl+space愉快的玩耍.
使用jQuery Validation插件来验证表单
jQuery Validation是一个用于验证表单的jQuery插件,简单易用,已经包含了16种内置的验证规则.Github上也有更多的验证规则可以使用.这都不是重点,重点是你可以轻松的定制自己的规则.
内置规则:
required – Makes the element required.
remote – Requests a resource to check the element for validity.
minlength – Makes the element require a given minimum length.
maxlength – Makes the element require a given maximum length.
rangelength – Makes the element require a given value range.
min – Makes the element require a given minimum.
max – Makes the element require a given ...
迁移宁强在线步骤
配置ssh#mkdir /root/.ssh && cp id_rsa* /root/.ssh/
下载配置脚本#git clone git@git.oschina.net:wangsen/auto_conf_fc.git
安装基础软件#cd auto_conf_fc && bash -x ./conf.sh
安装web软件#yum install net-tools httpd python-django
#yum install python python-pip python-devel python-wsgi mod_wsgi mariadb-server python-mysql mariadb-devel.x86_64 MySQL-python python-html5lib
克隆网站代码#cd /var/www/html && git clone git@git.oschina.net:wangsen/TownInfo-.git
#mvTo ...
JQuery 摘要
选择符与遍历
$(): $函数接受css选择符作为参数,充当一个工厂函数,返回对应元素的JQuery对象。
3种基本的选择符:
标签名 $(‘p’)
ID $(‘#myid’)
类 $(‘.myClass’)
子元素组合符>: $(‘#myid > li’)选择id为myid的元素的所有列表项(li).
否定式伪类: $(‘#myid li:not(.myClass)’)选择id为myid的元素中不属于myClass类的所有列表项(li).
属性选择符$(‘img[alt]‘): 选择所有带有alt属性的img元素.
属性选择符+类正则匹配:
$(‘a[href^=”mailto:”]‘): 选择所有URL以mailto:开头的超链接.
$(‘a[href$=”.pdf”]‘): 选择所有URL以.pdf结尾的超链接.
$(‘a[href*=”rose”]‘): 选择所有URL中包含rose的超链接.
自定义选择符:
$(‘li:eq(1)’): 选择第二个列表项
$(‘li:odd’): 选择奇数的列表项
$(‘li:even’ ...
使用gerrit作为代码评审工具
需求描述其实作为项目代码的maintainer,一直习惯于mailing list + git的代码评审及管理,无奈公司主推敏捷+devops,老板让改用gerrit。硬着头皮切换到gerrit,在这里记录下安装配置的过程及踩过的许多坑,以便网友们以后配置gerrit留作参考。
需求其实很简单,我们项目一直使用公司内部一个类似于github的代码托管网站来托管项目代码,使用邮件列表来评审代码。代码通过评审通过后,我再将patch push到代码托管服务器上去。整个开发流程如下图所示:
现在需要切换到gerrit来作为代码评审工具,以便于能够和jenkins集成,搭建一个集开发、构建、测试、部署为一体的devops系统,结构如下图所示。本文只关注gerrit的搭建。
Gerrit简介安装步骤1 . 安装Java.
网上有很多安装java的博客和文章,因此在这里不再赘述,可以参考下面这篇文章:
Linux下安装java
2 . 给Gerrit单独创建一个账户
#useradd gerrit
#passwd gerrit
#su gerrit
3 . 下载gerrit
gerrit是在go ...
apache配置https服务
1、创建自己签名的证书
#创建CA签名的证书,需要用到openssl
yum install openssl
#创建key
openssl genrsa -des3 -out server.key 1024
#创建csr(证书签发请求)
openssl req -new -key server.key -out server.csr
#生成自己签名的证书
openssl x509 -req -in server.csr -signkey server.key -out server.crt
#安装证书
cp server.crt /etc/ssl/certs
cp server.key /etc/ssl/private
2、编辑ssl配置文件
vim /etc/httpd/conf.d/ssl.conf
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
...
mysql数据库及django用户名启用中文的方法
mysql数据库启用中文
在mysql的配置文件/etc/my.cnf的[mysqld]下加入
character_set_server=utf8
Django启用中文用户名
Django默认只能以字母、数字、下划线组成用户名,修改检验用户名的正则表达式可以绕过这一规则:
/usr/lib/python2.7/site-packages/django/contrib/auth/models.py:
class AbstractUser(AbstractBaseUser, PermissionsMixin):
...
validators.RegexValidator(re.compile('^[\w.@+-]+$'), _('Enter a valid username.'), 'invalid')
...
把正则表达式从^[\w.@+-]+$ 改为 ^[\S.@+-]+$即可