#################### 一 安装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 -version
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo 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/restart
sudo chkconfir jenkins on # 添加开机启动
#####################################################################
#####################################################################
######################搭建git服务器---开始############################
########################git-server上的操作############################
# 安装git
sudo 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
# 安装ssh
sudo apt-get install ssh
##########################git-client操作############################
# 安装ssh
sudo apt-get install ssh
# 生成公钥秘钥对
ssh-keygen -t rsa
# 将公钥保存在git-server机器上
ssh-copy-id git@git-server
ssh-add -K ~/.ssh/id_rsa # 将秘钥保存在keychain上
##########################继续git-server上的操作####################
# 改变ssh等的目录权限
chmod 700 ~/.ssh
chmod 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-shell
sudo 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