JenkinsJenkins自动化部署笔记

Posted ThinkerWing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JenkinsJenkins自动化部署笔记相关的知识,希望对你有一定的参考价值。

Jenkins


安装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自动化部署笔记的主要内容,如果未能解决你的问题,请参考以下文章

JenkinsJenkins如何构建执行定时任务

Jenkins部署笔记

JenkinsJenkins在CentOS和k8s(minikube)上的部署记录

Jenkins部署

jenkins实现自动部署

JenkinsJenkins配置从节点,实现远程主机调用功能