自动部署Jenkins使用教程

系统:CentOS 7
Jenkins版本: 2.121.3-1.1

Jenkins官网:https://jenkins.io/doc/book/i...
官网wiki:https://wiki.jenkins.io/displ...

一、Jenkins安装

1. 安装

安装之前肯定要先安装Java环境

方法一:在线安装(推荐)

Linux:https://pkg.jenkins.io/redhat...

$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

$ sudo yum list jenkins --showduplicates #列出所有可以安装的版本
$ sudo yum install jenkins #下载最新的版本
$ sudo yum install jenkins-2.121.3-1.1.noarch  #指定版本下载

安装的时候,会自动做下面的操作:

  • 会将Jenkins设为开机自动启动,具体细节可以查看脚本cat /etc/init.d/jenkins
  • 创建jenkins用户,来运行service。如果运行jenkins时使用的改为了其它用户, 则必须同步修改下面这几个文件的所属权限 /var/log/jenkins /var/lib/jenkins/var/cache/jenkins
  • 控制台输出日志存文件/var/log/jenkins/jenkins.log
  • 可以在/etc/sysconfig/jenkins中设置启动配置参数,默认启动端口为:JENKINS_PORT="8080"
安装目录: /usr/lib/jenkins
工作目录: /var/lib/jenkins(对应于环境变量 JENKINS_HOME)
配置文件:/etc/sysconfig/jenkins
日志:/var/log/jenkins/jenkins.log

方法二:基于Tomcat安装

  1. 安装并启动 Tomcat
  2. 从官网下载 jenkins.war 至 $CATALINA_BASE/webapps,Tomcat 会自动部署;
  3. 浏览器访问:http://localhost:8080

2. 启动

# 设置允许开机启动(在线安装的时候会自动设置)
$ sudo chkconfig jenkins on


# 启动相关
$ sudo systemctl start jenkins
$ sudo systemctl restart jenkins
或者 
$ sudo service start jenkins

启动后访问:http://localhost:8080

不要访问 http://localhost:8080/jenkins/,否则之后可能出现404错误:
HTTP ERROR 404
Problem accessing /jenkins/. Reason: Not Found

3. 卸载

如果要重装,或者本机不需要 Jenkins,可卸载:

sudo systemctl stop jenkins
sudo systemctl disable jenkins
sudo yum -y remove jenkins
sudo rm -rf /var/{lib,log,cache}/jenkins /usr/lib/jenkins /root/.jenkins
sudo rm -rf `sudo find /{etc,var,run} -name "jenkins*"`

4. 权限问题

如果在root用户下安装,默认jenkins的管理权限是jenkins用户,访问的时候可能会出现以下错误:

Jenkins throwing error: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created

方法一: 使用root用户来管理jenkins(简单粗暴)

由于jenkins自动部署会用到shell命令,使用root用户会避免遇到更多的问题(但是实际生产中,更推荐不要使用root用户)

$ vim /etc/sysconfig/jenkins # 打开配置文件
    $JENKINS_USER="root" # 修改$JENKINS_USER变量为root,并去掉当前行注释


#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R root:root /var/lib/jenkins
$ chown -R root:root /var/log/jenkins
$ chown -R root:root /var/cache/jenkins


#重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root
$ service jenkins restart  
$ ps -ef | grep jenkins  # 查看Jenkins进程所属用户

方法二:新建用户【推荐】

$ useradd song #添加新用户song

$ vim /etc/sysconfig/jenkins # 打开配置文件
    $JENKINS_USER="song" # 修改$JENKINS_USER变量为root,并去掉当前行注释

#修改Jenkins相关文件夹用户权限(必须修改)
$ chown -R song:song /var/lib/jenkins
$ chown -R song:song /var/log/jenkins
$ chown -R song:song /var/cache/jenkins


#重启Jenkins服务并检查运行Jenkins的用户是否已经切换为song
$ systemctl restart jenkins
$ ps -ef | grep jenkins  # 查看Jenkins进程所属用户

方法三:切换到jenkins用户

【不推荐使用此方法,会出现各种预想不到的问题】

修改 /bin/false/bin/bash

$ vim /etc/passwd # 修改 jenkins用户的脚本执行目录
jenkins:x:993:989:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

$ su - jenkins #切换用户

会发现切换后jenkins变为了bash-4.2$。原因是在安装jenkins时,jenkins只是创建了jenkins用户,并没有为其创建home目录。所以系统就不会在创建用户的时候,自动拷贝/etc/skel目录下的用户环境变量文件到用户家目录,也就导致这些文件不存在,出现用户名为bash-4.2$的问题了,但是其实本质还是jenkins用户,只是名称显示的是bash-4.2$
在jenkins用户下执行下面的操作来修复这个问题:

#1.修改配置文件.bash_profile
$ vim ~/.bash_profile 
export PS1='[\u@\h \W]\$'  #加入此行代码(PS1:命令行提示符环境变量)

$ source ~/.bash_profile #刷新文件,使其有效

二、 使用

启动后访问http://192.168.137.131:8080,根据提示操作即可。

例如:
会出现 【解锁jenkins】的操作页面。

$ cat /var/lib/jenkins/secrets/initialAdminPassword
    cc64c9d00bfd40babd37671df037417b  #复制该密码并粘贴到页面输入框即可解锁。

之后选择【安装推荐的插件】。

三、 未完待续。。。

相关推荐