搭建CI环境gitolite-jenkins
网络配置:
sudo gedit /etc/network/interfaces
?
auto lo
iface lo inet loopback
auto eth3
iface eth3 inet static
address 192.168.0.104
gateway 192.168.0.1
netmask 255.255.255.0
#network 192.168.1.0
broadcast 192.168.0.255
?
sudo /etc/init.d/networking restart
----jenkins服务器,同时作为git的clienthan-jenkins 192.168.0.105
生成公钥私钥对
ssh-keygen -f ~/.ssh/jenkins
获取gitolite服务器信任
ssh-copy-id -i ~/.ssh/jenkins.pub han@192.168.0.104
配置ssh无密码登录
sudo gedit ~/.ssh/config
host gito
user han
hostname 192.168.0.104
port 22
IdentityFile ~/.ssh/jenkins
建立虚拟机共享目录
mkdir sharespace
sudo mount -t vboxsf share sharespace
将公钥拷贝给gitolite服务器
cp .ssh/jenkins.pub sharespace/
?
测试ssh:
ssh han@gito
退出:
exit
?
?
安装jenkins
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
deb http://pkg.jenkins-ci.org/debian binary/
sudo apt-get update
sudo apt-get install jenkins
启动jenkins
sudo /etc/init.d/jenkins start
http://192.168.0.105:8080/
安装和配置maven
sudo gedit .bashrc
export M2_HOME=/home/han/apache-maven-3.0.4
export M2=$M2_HOME/bin
export M2_OPTS="-Xms256m -Xmx512m"
export PATH=$M2:$PATH
source .bashrc
?
使用一个现有github的工程测试gitolite-jenkins
git clone git://github.com/feuyeux/tinylibrary.git
?
通过网页在jenkins中配置tinylibrary项目
http://192.168.0.105:8080/job/tinyLibrary/configure
?
在服务器配置好后,执行:
?
git config --global user.name "han"
git config --global user.email ?"feuyeux@gmail.com"
?
git clone han@gito:testing
----
?
han-gitolite 192.168.0.104
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
gitolite setup -pk han.pub
$HOME/bin/gitolite setup -pk $HOME/.ssh/id_rsa.pub
?
$ git clone han@localhost:gitolite-admin
mkdir sharespace
sudo mount -t vboxsf share sharespace
cp sharespace/jenkins.pub gitolite-admin/keydir/
---
安装daemon
sudo apt-get install git-daemon-run
?
sudo gedit /etc/sv/git-daemon/run
?
#!/bin/sh
exec 2>&1
echo 'git-daemon starting.'
exec chpst -ugitdaemon:gitolite \
? "$(git --exec-path)"/git-daemon --verbose --base-path=/home/han/repositories /home/han/repositories
?
?
#!/bin/sh
exec 2>&1
echo 'git-daemon starting.'
exec chpst -ugitdaemon:gitolite \
? "$(git --exec-path)"/git-daemon --verbose --base-path=/home/gitolite/repositories /home/gitolite/repositories
?
sudo sv restart git-daemon
---
安装Gitweb
sudo apt-get install highlight gitweb
?
sudo gedit /etc/gitweb.conf?追加:
$feature{'highlight'}{'default'} = [1];
?
?
sudo gedit /etc/hosts
127.0.0.1localhost han-gitolite
?
?
sudo usermod -a -G han www-data
sudo chmod g+r /home/han/projects.list
sudo chmod -R g+rx /home/han/repositories
sudo service apache2 restart
?
sudo gedit /home/han/gitolite-admin/conf/gitolite.conf?
repo testing
? RW+ = @all
? R = gitweb
?
?
--
alertnative:
?
?
sudo scp ~/.ssh/jenkins.pub han@192.168.0.104:/tmp/jenkins_han.pub
gl-setup /tmp/jenkins_han.pub?
?
==
参考:
https://github.com/sitaramc/gitolite
http://cisight.com/how-to-setup-git-server-using-gitolite-in-ubuntu-11-10-oneiric
http://pkg.jenkins-ci.org/debian
http://www.countableset.ch/blog/blog/2012/04/29/ubuntu-12-dot-04-installing-gitolite-and-gitweb/
http://blog.airmio.com/2012/05/install-git-server-on-ubuntu-12/
?
?
hooks
http://sitaramc.github.com/gitolite/g2/hooks.html