华风 发表于 2018-1-7 12:48:18

CentOS安装gitlab,gerrit,jenkins并配置ci流程

http://www.cnblogs.com/Skins/custom/images/logo.gif  开启用户注册功能,点击 -> 系统管理 -> Configure Global Security -> 勾上启用安全
  
  注册一个jenkins用户   Jenkins/jenkins
  然后打开刚刚的页面,把允许用户注册勾掉
  把/var/lib/jenkins下的公钥拷贝到gerrit的jenkins用户的sshkey
  配置smtp:
  Save后点一下下图的status,不然不会生效
  创建gerrit的自动trigger
  su – wenbin
  htpasswd –m /passwords wenbin
  然后登陆gerrit,用wenbin的账户登陆,添加wenbin的publickey
  sudo yum install git-review gitweb
  git clonessh://wenbin@gerrit.wb.com:29418/openstack
  git config user.name wenbin
  (VENV)$ git configuser.email 'littlexiaowen1@163.com'
  vim test1
  git add .
  git commit –m ‘test1’
  git review
配置ssh使得gerrit的replication生效
  这时候发现gerrit的replication报错gerrit Cannot replicate reject HostKey:
  是因为ssh没有设置好
  su – gerrit
  cd .ssh/
  vim config
Host gitlab.wb.com:

   >  PreferredAuthentications publickey
  ssh-keyscan -t rsa gitlab.wb.com>> /home/gerrit/.ssh/known_hosts
  ssh-keygen -H -f/home/gerrit/.ssh/known_hosts
  /etc/init.d/gerrit restart
  然后应该replication就ok了
  然后clone失败,就把刚才.ssh/config文件删除了,ok
  如果replication报错replication faild reason: pre-receive hook declined
  我就把gerrit的openstack.git删除,重新git clone –bare git@gitlab.wb.com:devops/openstack.git就好了
  然后当你git review后就会发现jenkins会触发了,然后就可以review code,手动submit后就会自动同步到gitlab了,太nb了。。。
设置publish over ssh
  在系统设置中添加ssh server
  在代码中添加 build/mkpkg.sh
  #!/bin/bash
  rm -rf myapp-new.tar.gz
  tar cvzf /tmp/myapp-new.tar.gz . --exclude.git --exclude .gitreview --exclude .gitreview
  cp /tmp/myapp-new.tar.gz ./
  再配置一下构建
  ### service stop ###
  #service httpd stop
  #service celery-worker stop
  ### backup ###
  cd /home/wenbin/myapp
  tar czvf /root/myapp.tar.gz .
  #mysqldump -u root -d mustang >/root/mustang.sql
  #mysqldump -u root -t mustang >/root/mustang-table.sql
  #cp mustang_conf.py /root/
  ### build ###
  cd /home/wenbin/myapp
  rm -rf *
  tar xzvf /root/myapp-new.tar.gz
  chown wenbin:wenbin ./ -R
  #cp /root/mustang_conf.py .
  ### service start ###
  #service httpd start
  #service celery-worker start
  当然先得在ssh的那个server上新建/home/wenbin/myapp目录
  最后提示一点,gerrit的trigger的这个项目不能手动构建,因为分支不一样,手动构建会提示找不到分支,只能由git review后触发。
参考:
  http://blog.csdn.net/stwstw0123/article/details/47615535
页: [1]
查看完整版本: CentOS安装gitlab,gerrit,jenkins并配置ci流程