JenkinsJenkins自动化部署笔记
Posted ThinkerWing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JenkinsJenkins自动化部署笔记相关的知识,希望对你有一定的参考价值。
Jenkins
- 安装dnf DNF(Dandified Yum)是新一代的RPM软件包管理器。
- 安装java环境,Jenkins依赖java环境
- 安装Jenkins
- dnf安装Jenkins
- 访问IP地址8080端口
- Jenkins配置
- nginx 配置
- vscode 安装安插Remote-SSH
- 配置github管理项目
- 构建触发器:
- 遇到的一些问题和解决
- 查看git安装目录
- 解决Jenkins报Error fetching remote repo 'origin'的办法
- jenkins Error performing command: git ls-remote -h
安装dnf DNF(Dandified Yum)是新一代的RPM软件包管理器。
DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
DNF使用RPM,libsolv和hawkey库进行包管理操作,Fedora22已经默认使用DNF。
安装DNF
DNF并未默认安装在RHEL或CentOS7系统中,但可以在使用YUM的同时使用DNF。
安装epel-release依赖:yum install epel-release 或者 yum install epel-release -y
安装DNF包:yum install dnf 或者 yum install dnf -y
安装java环境,Jenkins依赖java环境
dnf search java-1.8
dnf install java-1.8.0-openjdk.x86_64
安装Jenkins
因为Jenkins本身是没有在dnf的软件仓库包中的,所以我们需要连接Jenkins仓库:
wget是Linux中下载文件的一个工具,-O表示输出到某个文件夹并且命名为什么文件;
rpm:全称为The RPM Package Manage,是Linux下一个软件包管理器;
wget –O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
安装后 通过ls 命令用于显示指定工作目录下之内容
pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
发现在root目录下,但是我们需要将他安装在etc
通过
mv jenkins.repo /etc/yum.repos.d/
cd /etc/yum.repos.d/
[root@iZbp1b3dkwu5uz0qvt6m7oZ ~]# cd /etc/yum.repos.d/
[root@iZbp1b3dkwu5uz0qvt6m7oZ yum.repos.d]# ls
CentOS-AppStream.repo CentOS-CR.repo CentOS-Extras.repo CentOS-PowerTools.repo docker-ce.repo epel.repo jenkins.repo
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Sources.repo epel-modular.repo epel-testing-modular.repo
CentOS-centosplus.repo CentOS-epel.repo CentOS-Media.repo CentOS-Vault.repo epel-playground.repo epel-testing.repo
# 导入GPG密钥以确保您的软件合法
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
# 或者
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
编辑一下文件/etc/yum.repos.d/jenkins.repo
vi jenkins.repo
i 输入i 显示insert 插入
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1
删除redhat-stable后面的-stable
最终显示
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1
esc
shift + :
输入wq保存并退出
dnf安装Jenkins
dnf install jenkins # --nogpgcheck(可以不加)
启动Jenkins的服务:
systemctl start jenkins
// 查看状态
systemctl status jenkins
//随着操作系统的启动而启动
systemctl enable jenkins
//问题解决网站
https://www.cnblogs.com/jassa/p/12531623.html
jenkins.service 不是本地服务,重定向到 systemd-sysv-install。
执行:/usr/lib/systemd/systemd-sysv-install enable jenkins
访问IP地址8080端口
Jenkins默认使用8080端口提供服务,所以需要加入到安全组中:
轻量应用服务器在 安全->防火墙 中开放端口
Jenkins配置
解锁 Jenkins
为了确保管理员安全地安装 Jenkins,密码已写入到日志中(不知道在哪里?)该文件在服务器上:
/var/lib/jenkins/secrets/initialAdminPassword
请从本地复制密码并粘贴到下面。
cat /var/lib/jenkins/secrets/initialAdminPassword
nginx 配置
安装nginx
dnf install nginx
报错
Repository epel is listed more than once in the configuration
Last metadata expiration check: 0:24:32 ago on Thu 11 Nov 2021 11:17:04 PM CST.
All matches were filtered out by exclude filtering for argument: nginx
Error: Unable to find a match: nginx
原因: 也有可能是已经安装了,或者谷歌搜索有挺多文章的
启动nginx:
systemctl start nginx
systemctl status nginx
systemctl enable nginx
查看nginx进程命令
ps -ef | grep nginx
pkill -9 nginx
vscode 安装安插Remote-SSH
配置github管理项目
需要生成token
构建触发器:
这里的触发器规则是这样的:
定时字符串从左往右分别是:分 时 日 月 周
#每半小时构建一次OR每半小时检查一次远程代码分支,有更新则构建
H/30 * * * *
#每两小时构建一次OR每两小时检查一次远程代码分支,有更新则构建
H H/2 * * *
#每天凌晨两点定时构建
H 2 * * *
#每月15号执行构建
H H 15 * *
#工作日,上午9点整执行
H 9 * * 1-5
#每周1,3,5,从8:30开始,截止19:30,每4小时30分构建一次
H/30 8-20/4 * * 1,3,5
虽然,初始化的时候,如果机器的CPU和内存配置都比较低的话,就多等一会儿;但是操作时发现很久都加载不出来。
遇到的一些问题和解决
解决:
cd /var/lib/jenkins/updates/
ls
default.json
vim default.json
把第一行的源地址谷歌改成百度
systemctl restart jenkins
1.关闭Jenkins
只需要在访问jenkins的网站后面加上exit即可。如访问的地址是 http://192.168.240.179:8080/,那只要浏览器输入http://192.168.240.179:8080/exit即可退出,或者http://localhost:8080/exit
2.重启Jenkins
同理:http://192.168.240.179:8080/restart
3.重新加载配置
http://192.168.240.179:8080/reload
查看git安装目录
Mac平台:在命令行中输入which git, 就会显示git的安装位置了;
Windows平台:打开cmd,输入where git就会显示git的安装路径了.
解决Jenkins报Error fetching remote repo 'origin’的办法
Jenkins build时有时候报Error fetching remote repo ‘origin’,网上都说是git权限问题,试了之后也没有用,找了很久才发现,造成这个问题的原因是Jenkins有个工作空间( workspace)的概念,Jenkins构建时产生的缓存会存储到工作空间,清理掉缓存就好,如下图
jenkins Error performing command: git ls-remote -h
在出错的地方填入: “whereis git"的地址 + “/bin/git” (如上面"whereis git"的地址为”/usr/local/git",则应该填入 “/usr/local/git/bin/git”) 并保存
以上是关于JenkinsJenkins自动化部署笔记的主要内容,如果未能解决你的问题,请参考以下文章