#################### 一 安装Java8######################################## JRE: Java Runtime Enviroment ---java运行时所需的环境,如果不是程序员,安装JRE已经足够# JDK:Java Development Kit ---java开发工具包, JDK中包含JRE# OpenJDK是Java开发工具包的开源版本# OracleJDK是Java开发工具包的官方版本# 大多数情况OracleJDK已经够用,但例如Android Studio建议使用OracleJDk,避免UI和性能问题# 检测Jave是够安装: java -version 或者 javac -versionsudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java8-installer################### 二 下载安装jenkins ################################## Jenkins官方网址: http://Jenkins-ci.org/#(默认情况下端口是8080,如果要使用其他端口启动# 可以通过命令行”java –jar Jenkins.war --httpPort=80”的方式修改)java -jar jenkins.war#################### 三 启动jenkins ################################# 浏览器中打开http://localhost:8080/jenkins/firefox http://localhost:8080/jenkins/#################### 四 配置 Item ################################# 一 : New item -> enter "smartdcproject" -> freestyle project# 二: Source Code Management -> Git -> Repository Url: https://git.coding.net/baird/SmartDC.git -> Credentials: -> Add -> Jenkins -># Kind :Username with password -> username: coding.net的账号 password: coding.net的密码# 三: Build Triggers -> Poll SCM -> * * * * * (最笨的方法,每分钟检查版本库是否更新,可以设置webhook,方法。。。待填)# 四: Build: ① 代码检查(本机上首先要安装pylint) Add Build Step -> Execute Shell -> pylint -f parseable -d I0011,R0801 smartdc | tee ptlint.out# ② 运行代码中的test函数和检查代码覆盖率(本机上首先要安装python-nose(nosetests),coverage)Excute Shell -># nosetests --with-xunit --all-modules --traverse-namespace --with-coverage --cover-package=smartdc# --cover-inclusive --cover-erase --cover-xml# 五: Post-Build Actions: Publish Cobertura Repost -> coverage.xml# Publish JUnit test result repost -> nosetests.xml# Report Violations -> pylint -> **/pylint.out# E-mail Notification -> 填写邮件地址 复选send separate e-mails to ....# 六: Apply and Save#################### 五 部分全局配置 ################################# 管理用户和用户组: role-based strategy: manage jenkins -> configure global security -> Access Control -> Authorization -> role-based strategy# SMTP配置: Configure -> E-mail Notification -> SMTP server: smtp.qq.com# -> Advanced -> Use SMTP Authentication -> username 腾讯qq邮箱# Password:腾讯邮箱SMTP服务开启,会有一个授权码,填之# SMTP Port: 465# 另外: configure -> Jenkin Location -> System Admin e-mail address ->填写与SMTP配置中username相对应的邮箱# 测试之#################### 六 Others ################################# 命令行启动:(httpsPort为端口, -1代表关闭https)Java -jar jenkins.war --httpsPort=8443 -httpPort=-1# 服务启动停止sudo service jenkins start/stop/restartsudo chkconfir jenkins on # 添加开机启动################################################################################################################################################################搭建git服务器---开始####################################################git-server上的操作############################# 安装gitsudo apt-get install git# 添加一个名为git的用户sudo adduser git# 给git赋予root权限 ,也可将sudo换为27(cat /etc/group | grep sudo)sudo chmod -G sudo git# 创建裸仓库sudo git init --bare ***.git# 把***.git的拥有者改为git (-R 处理指定目录以及其子目录下的所有文件)sudo chown -R git:git ***.git# 安装sshsudo apt-get install ssh##########################git-client操作############################# 安装sshsudo apt-get install ssh# 生成公钥秘钥对ssh-keygen -t rsa# 将公钥保存在git-server机器上ssh-copy-id git@git-serverssh-add -K ~/.ssh/id_rsa # 将秘钥保存在keychain上##########################继续git-server上的操作##################### 改变ssh等的目录权限chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys# 禁用ssh密码登录sudo vim /etc/ssh/sshd_config # 将PasswordAuthentication,ChallengeResponseAuthentication改为no# 禁用shell登录,使用git-shell,这样git用户只能执行git相关操作which git-shell # 一般输出为: /usr/bin/git-shellsudo vim /etc/shells # 将which git-shell的输出添加到该文件末尾sudo chsh git # 键入 /usr/bin/git-shell 或者:# sudo vim /etc/passwd# 找到git:x:1001:1001:,,,:/home/git:/bin/bash中的/bin/bash改为/usr/bin/git-shell###################################################################### 然后客户端就可以使用了# 但是新加客户端的时候要执行ssh-copy-id将客户端的密码放进服务器,自行探索###################搭建git服务器---结束################################
Jenkins运行在tomcat上
- 下载tomcat,解压
- 将jenkins.war放到tomcat/webapps
- 打开tomcat/bin , 执行 chmod +x *.sh
- 运行tomcat服务器: ./startup.sh
- shutdown: ./shutdown.sh
- 测试tomcat是否开启: browser -http://localhost:8080
- 打开Jenkins: browser -http://localhost/jenkins
由于Tomcat占用了8080端口,如果想独立运行Jenkins,则更改端口:
java -jar jenkins.war --httpPort=8080
更改Jenkins Home目录
- 新建文件夹,将旧jenkins目录里的所有文件都复制到新文件里
- 改变环境变量: JENKINS_HOME 将其指向新的文件夹路径
- 重启jenkins: localhost:8080/restart
- 查看所有系统信息: localhost:8080/systemInfo
命令行接口
- 运行jenkins
- browser http://localhost:8080/cli
- 下载 jenkins-cli.jar(在设置里有)
- 打开jenkins-cli.jar所在目录
- 运行: java -jar jenkins-cli.jar -s http://localhost:8080/ login --username your.username --password your.password
自建Git服务器
Git使用4种协议来传输资料
- 本地协议Local
- HTTP协议
- SSH协议
- Git协议
Local Protocal
-- 远程版本库是硬盘内的另一个目录
- 适用情况: 团队中拥有一个共享的文件系统的访问权(如一个挂载的NFS)或多人共用一台电脑
- 克隆一个本地版本库,可以执行如下的命令
- git clone /opt/git/project.git
- git clone file:///opt/git/project.git
- 如果使用file://会触发平时用于网络传输资料的进程,效率比较低
- 要增加一个本地版本库到现有的Git项目
- git remote add local-proj /opt/git/project.git