linux下安装Jenkins(centos7,另附使用docker安装)
目录
1.下载安装包
官网红帽稳定版:Redhat Jenkins Packages
https://pkg.jenkins.io/redhat-stable/
[root@dd /]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
--2021-12-02 16:33:00-- https://pkg.jenkins.io/redhat-stable/jenkins.repo
正在解析主机 pkg.jenkins.io (pkg.jenkins.io)... 151.101.66.133, 151.101.2.133, 151.101.130.133, ...
正在连接 pkg.jenkins.io (pkg.jenkins.io)|151.101.66.133|:443... 已连接。
警告: 无法验证 pkg.jenkins.io 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书:
颁发的证书已经过期。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:85
正在保存至: “/etc/yum.repos.d/jenkins.repo”
100%[==========================================================================>] 85 --.-K/s 用时 0s
2021-12-02 16:33:01 (3.56 MB/s) - 已保存 “/etc/yum.repos.d/jenkins.repo” [85/85])
执行
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
安装依赖
[root@dd /]# yum install epel-release # repository that provides 'daemonize'
#日志如下:
Running transaction
正在安装 : epel-release-7-11.noarch 1/1
验证中 : epel-release-7-11.noarch 1/1
已安装:
epel-release.noarch 0:7-11
完毕!
安装Jenkins
[root@dd ~]# yum install jenkins
#找到Jenkins的war包代表安装成功了
[root@dd ~]# ll /usr/lib/jenkins/
-rw-r--r--. 1 root root 72247484 12月 2 01:18 jenkins.war
2.修改配置
修改端口号
[root@bd ~]# vim /etc/sysconfig/jenkins
#修改Jenkins端口
JENKINS_PORT="xxxx"
[root@bd ~]# service jenkins start
Starting jenkins (via systemctl): [ 确定 ]
3.登陆Jenkins
/var/lib/jenkins/secrets/initialAdminPassword 找到密码

耐心等待安装完成
4.安装git相关插件(用于自动化部署)
配置好账号登陆后,进入控制台,选择Manage Jenkins -> Manage Plugins

安装gitlab插件和gitlab hook插件

5.使用docker安装jenkins
Jenkins官方镜像库,
Docker Hub
https://hub.docker.com/r/jenkins/jenkins/tags拉取镜像,我选择的是jenkins:2.348-centos7-jdk8这个版本的images
[root@s71 ~]# docker pull jenkins/jenkins:2.348-centos7-jdk8
2.348-centos7-jdk8: Pulling from jenkins/jenkins
2d473b07cdd5: Pull complete
......
b3f6e80ba82e: Pull complete
70252facfd37: Pull complete
1b3c7a65a194: Pull complete
Digest: sha256:47886e079598823f08cacbfded8dac49ea84a6d3f3bfa5c3306e7edfc5ca8497
Status: Downloaded newer image for jenkins/jenkins:2.348-centos7-jdk8
创建宿主机对应的挂载目录
[root@s71 ~]# mkdir -p /usr/local/jenkins
# 添加权限
[root@s71 ~]# chmod 777 -R /usr/local/jenkins
几个注意事项,jenkins镜像自带了jdk环境,所以不需要配置jdk了,jenkins需要宿主机maven环境,我这里是/usr/local/maven,同时映射docker.sock给容器
启动容器
[root@s71 docker]# docker run -d -p 8099:8080 --log-opt max-size=10m --log-opt max-file=3 -p 50000:50000 --name jenkins --privileged=true -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /usr/lib64/libltdl.so.7:/usr/lib64/libltdl.so.7 -v /usr/local/jenkins:/var/jenkins_home -v ~/.ssh:/root/.ssh -v /usr/local/maven:/usr/local/maven jenkins/jenkins:2.348-centos7-jdk8
# 参数解释
--privileged=true #让容器有root权限,方便进入容器操作
-p 8099:8080 #jenkins的web访问端口8099
-v /usr/local/jenkins:/var/jenkins_home #容器/var/jenkins_home路径映射到宿主机/usr/local/jenkins
-v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock #宿主机docker环境给容器,因为jenkins自动打包生成docker镜像需要依赖环境
-v /usr/lib64/libltdl.so.7:/usr/lib64/libltdl.so.7 #有时jenkins打包会报找不到这个文件,映射进去
-v /usr/local/maven:/usr/local/maven #映射宿主机maven环境给容器
查看状态
[root@s71 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c102b9611c5 jenkins/jenkins:2.348-centos7-jdk8 "/sbin/tini -- /usr/…" 31 seconds ago Up 30 seconds 0.0.0.0:50000->50000/tcp, 0.0.0.0:8001->8080/tcp jenkins
查看初始化密码,直接查看宿主机挂载目录下对应文件就可以了,不需要进入docker容器了
[root@s71 docker]# cat /home/docker/jenkins/secrets/initialAdminPassword
其他操作同linux直接安装一样
6.docker安装jenkins常见问题:
jenkins打包出现:Got permission denied while trying to connect to the Docker daemon socket at unix
原因是生成的jenkins容器默认用户jenkins没有root权限,调用不了docker指令,可以使用指令
docker exec -it -u root jenkins /bin/bash 进入到容器内给jenkins赋权
linux授权方法:
1、添加用户,首先用adduser命令添加一个普通用户,命令如下:
#adduser tommy //添加一个名为tommy的用户
#passwd tommy //修改密码
Changing password for user tommy.
New UNIX password: //在这里输入新密码
Retype new UNIX password: //再次输入新密码
passwd: all authentication tokens updated successfully.2、赋予root权限
方法一: 修改 /etc/sudoers 文件,找到%wheel一行,把前面的注释(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root tommy
修改完毕,现在可以用tommy帐号登录,然后用命令 sudo su - ,即可获得root权限进行操作。方法二: 修改 /etc/sudoers 文件,找到root一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL
修改完毕,现在可以用tommy帐号登录,然后用命令 sudo su - ,即可获得root权限进行操作。方法三: 修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:
tommy:x:500:500:tommy:/home/tommy:/bin/bash
修改后如下
tommy:x:0:500:tommy:/home/tommy:/bin/bash
保存,用tommy账户登录后,直接获取的就是root帐号的权限。
jenkins打包出现:error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file
启动时没加挂载命令 -v /usr/lib64/libltdl.so.7:/usr/lib64/libltdl.so.7 时会出现,确认宿主机是否有这个文件(有的没有安装),同时宿主机增加权限 chmod 777 /usr/lib64/libltdl.so.7
更多推荐
所有评论(0)