搭建jenkins实现自动化部署
一、安装jenkins
1、添加yum repos,然后安装
1 2 |
|
注:如果上边的执行成功就不用再执行这两行了
1 2 |
|
注:如果网络不好需要重试几次
1 |
|
2、如果未安装java还需安装java
1 |
|
3、启动和停止
1 2 3 |
|
1 |
|
如果启动失败,可以运行如下命令查看错误信息
1 |
|
如上错误是java配置错误,需要修改jenkins配置文件
1 |
|
类似如下修改:
1 2 3 4 5 |
|
4、jenkins的默认设置
Jenkins会随系统启动而启动。详情参照/etc/init.d/jenkins
Jenkins会创建一个用户叫做jenkins, 如果你修改了user,则要修修改所属者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
如果遇到问题,查看日志/var/log/jenkins/jenkins.log
配置文件/etc/sysconfig/jenkins
默认启用8080
5、打开和关闭防火墙
开启非80端口需要打开防火墙,参考:http://www.cnblogs.com/rslai/p/7954080.html
6、关于centos上的java
Jenkins不支持在centos的默认的jdk上工作。如果如下所示,则需要remove:
java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
为了正确使用Jenkins:
yum remove java
然后可以安装openjdk
yum install java-1.7.0-openjdk
正确如下:
java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (rhel-2.5.5.1.el6_6-x86_64 u79-b14)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
7、配置java路径
直接启动:
sudo service jenkins start
但是发现启动失败,于是需要配置java位置:
vi /etc/init.d/jenkins
在启动加入本机的java:
[[email protected] ~]# vim /etc/init.d/jenkins
# Set up environment accordingly to the configuration settings
[ -n "$JENKINS_HOME" ] || { echo "JENKINS_HOME not configured in $JENKINS_CONFIG";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
[ -d "$JENKINS_HOME" ] || { echo "JENKINS_HOME directory does not exist: $JENKINS_HOME";
if [ "$1" = "stop" ]; then exit 0;
else exit 1; fi; }
# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.7.0_80/bin/java
"
8、配置端口
修改
1 |
|
内容改为需要的端口
1 |
|
9、yum安装Jenkins默认路径为
/var/lib/jenkins
二、进入jenkins
1、打开
1 |
|
2、查看密码,将内容填写到密码处点击继续
1 |
|
3、选择默认插件即可
4、设置管理员
三、安装和Git,GitLab插件
1、安装git客户端
Linux安装配置git参见,只需要安装客户端不需要产生sshkey,如果你又想再jenkins上用git又想直接再linux上用再生成key
http://www.cnblogs.com/rslai/p/8175864.html
2、安装git插件
3、在这里将安装和Git,GitLab插件,注意使用ctrl+f查找
4、配置gitLab连接
5、找到Gitlab配置,如下图
name:可以随便写一个
host URL:host地址注意只填写host不要库地址写http地址即可
credentials:选择一个证书
新建一个证书,选择add->Jenkins添加一个证书
kind:选择GitLab API token
API token:输入token,如何找到token参见下面
查找token,token需要在gitLab中查找,不同版本的gitLab方式不同
a)在Access Tokens中就显示了api token直接copy即可
b)在如下页面填入名字和过期时间后自动生成token,生成后一定要使用记事本记下来,之后无法查看该token
回到Jenkins设置token后Test Connection,如果测试成功
四、新建item
1、生成ssh key
由于jenkins执行脚本的使用使用的是jenkins这个账号,所以公钥私钥需要放在此用户的目录里。
a)由于此账号是一个不允许登录且修改了home目录的账号,所以需要先执行 vi /etc/passwd 查看一下jenkins账号的home目录,在里边找到jenkins这个账号其中红框部分为他的home目录
b)生成root(不是root其它账号也可)账号的sshkey
1 2 3 4 |
|
如果没有 known_hosts 文件之后Jenkins发布时会有如下错误 “Host key verification failed.”
c)进入jenkins目录将刚才创建的sshkey复制过来并将所有者指到jenkins账号
1 2 3 4 5 6 |
|
d)此时pwd再ll应该看到如下内容
2、打开 id_rsa.pub 将其中内容复制到记事本中,然后再copy到git服务器上
3、访问gitlab将刚才生成的公钥添加到ssh keys中
4、创建证书
a)Jenkins -> Credentials
b)global -> Add credentials新建一个证书
c)填写证书信息
kind:选择 SSH Username with private key
Username:随便输入,之后在创建item是记得住选择那个即可
Priveate key:选择“Enter directly”后输入私钥,记住一定是私钥 (按照上步骤在linux上生成**后,会是一对其中带pub后缀的是公钥。id_rsa私钥、id_rsa.pub公钥)。在linux执行cat id_rsa将所有内容copy填入key中
Passphrase:不填,如果填了每次都需要输入密码
填好后点击“ok”保存
2、新建item
a)新建Item
b)输入任务名称,选择“构建一个*风格软件项目”后单击“确定”
c)在GitLab connection处选择刚才创建的连接(输入git host时创建的连接)
选择git并Credentials处选择刚才输入私钥的证书
Repository URL输入git项目地址(注意输入时需添加ssh注意如果修改端口应填写ssh://[email protected]:port/xxxxxx/xxxxx.git)
之后单击“保存”即可。
3、构建job
a)进入demo job
b)点击“立即构建”
由于item只配置了git所以只会clone git,clone后在如下目录中,以job名称为目录保存
/var/lib/jenkins/workspace
构建后目录
1 |
|
根据job名字放到相应目录
安装插件
参考文档:
http://blog.csdn.net/achuo/article/details/51086599
http://blog.csdn.net/wangfei0904306/article/details/56011877