迁移宁强在线步骤
配置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.@+-]+$即可
基于Jenkins和Koji的代码管理及构建系统
Summary
Currently, we KVM team are maintaining the code repository of the virtualization software(such as QEMU, Libvirt, Kimchi, Linux, etc.) for PowerKVM development team and delivering corresponding RPM packages. We collect patches from mailing list and build update RPM packages every workday. The work load is extremely heavy if we manually download the patches from mailing list, apply them to the repository, and build RPM packages covering all the supported platforms.
This environment, based ...
发行版制作及Anaconda基础
Anaconda是用于Fedora, RHEL等Linux发行版的安装程序,可以实现通过LiveCD,PXE,NFS等方式安装Linux系统以及利用kickstart文件实现无人值守的无交互安装。
发行版制作(Fedoran系统环境)
选择所需的软件包。
制作自己的发行版首先要确定你的发行版需要安装哪些软件。决定之后需要把这些软件相应的RPM包拷贝到某个目录,然后在这个目录下执行createrepo命令来创建RPM软件源。
创建ks文件。
ks文件用于指定制作发行版时用到的软件源及软件包,具体语法可参考 kickstart语法,下面是一个简单的例子:
编译及安装
获取源码:git clone git://git.fedorahosted.org/git/anaconda.git
安装依赖包: sudo yum install libtool $(grep ^BuildRequires: anaconda.spec.in | awk ‘{print $2}’)
安装、配置transifex:sudo yum install transifex-client;tx i ...
QEMU 2: 参数解析
#一、使用gdb分析QEMU代码#
使用gdb不仅可以很好地调试代码,也可以利用它来动态地分析代码。使用gdb调试QEMU需要做一些准备工作:
1, 编译QEMU时需要在执行configure脚本时的参数中加入–enable-debug。
2, 从QEMU官方网站上下载一个精简的镜像——linux-0.2.img。linux-0.2.img只有8MB大小,启动后包含一些常用的shell命令,用于QEMU的测试。
$wget http://wiki.qemu.org/download/linux-0.2.img.bz2
$bzip2 -d ./linux-0.2.img.bz2
3, 启动gdb调试QEMU:
gdb --args qemu-system-x86_64 -enable-kvm -m 4096 -smp 4 linux-0.2.img
-smp指定处理器个数。
#二、参数解析用到的数据结构#
QEMU系统模拟的主函数位于vl.c文件,无论是qemu-system-x86_64还是qemu-system-ppc64,都是从vl.c中的main函数开始执行。下面先介绍main ...
QEMU 1: 使用QEMU创建虚拟机
一、QEMU简介QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM)。QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。
用户可以通过不同Linux发行版所带有的软件包管理器来安装QEMU。如在Debian系列的发行版上可以使用下面的命令来安装:
sudo apt-get install qemu
或者在红帽系列的发行版上使用如下命令安装:
sudo yum install qemu -y
除此之外,也可以选择从源码安装。
##获取QEMU源码##
可以从QEMU官网上下载QEMU源码的tar包,以命令行下载2.0版本的QEMU为例:
$wget http://wiki.qemu-project.org/download/qemu-2.0.0.tar.bz2
$tar xjvf qemu-2.0.0.tar.bz2
如果需要参与到QEMU的开发中,最 ...
Linux系统中的信号量机制
1、信号量的定义:
struct semaphore {
spinlock_t lock;
unsigned int count;
struct list_head wait_list;
};
在linux中,信号量用上述结构体表示,我们可以通过该结构体定义一个信号量。
2、信号量的初始化:
可用void sema_init(struct semaphore *sem, int val);直接创建,其中val为信号量初值。也可以用两个宏来定义和初始化信号量的值为1或0:
DECLARE_MUTEX(name) : 定义信号量name并初始化为1
DECLARE_MUTEX_LOCKED(name) : 定义信号量name并初始化为0
还可以用下面的函数初始化:
void init_MUTEX(struct semaphore *sem); //初始化信号量的值为1
void init_MUTEX_LOCKED(struct semaphore *sem); //初始化信号量的值为0
3、信号量的原子 ...