预告网站正在建设中乱码网站怎么办
预告网站正在建设中,乱码网站怎么办,做网站需要具备什么,盐城网站制作【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客
也可以结合这个互补看
前言
你平常在做自己的项目时#xff0c;是否有过部署项目太麻烦的想法#xff1f;如果你是单体项目#xff0c;可能没什么感触#xff0c;但如果你是微服务项目#xff0c;相…【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客
也可以结合这个互补看
前言
你平常在做自己的项目时是否有过部署项目太麻烦的想法如果你是单体项目可能没什么感触但如果你是微服务项目相信你应该是有过这种感触的。
这种情况下我一般会劝你了解一下 Jenkins 这个玩意。怎么了解呢我会建议你阅读本文 。
本文分为两部分 第一部分为 Jenkins 安装教程会教你如何在 Linux 上安装 Jenkins。 第二部分为一个简单的 Jenkins 自动化构建部署实例讲解。
你可以根据自己的意愿选择性的跳过第一部分因为第二部分才是重点。通过目录可以快速翻到第二部分 当前环境 CentOS 7.8 Java 11注意当前 jenkins 支持的 Java 版本最低为 Java11 FinalShell 3.9操作环境
安装 Jenkins PS不建议使用 Docker 安装 Jenkins因为使用 Jenkins 的时候一般会调用外部程序比如 Maven、Docker、JDK、Nodejs 等所以我们最好直接安装在本机上以避免不必要的麻烦。 1. 添加 Jenkins 源
执行下面两条命令
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key因为Jenkins需要JAVA环境所以安装JAVA环境
sudo yum install java-11-openjdk-devel 2. 通过 yum 安装 Jenkins yum -y install jenkins 3. 修改 Jenkins 端口号 Jenkins 默认端口号为 8080输入vim /etc/sysconfig/jenkins进行编辑将 JENKINS_PORT 修改为自己想要的端口号前提得保证修改后的这个端口没有被其他的进程占用。 2.这里修改了可能还不能生效还需要修改另一个地方输入以下指令进行编辑
vim /usr/lib/systemd/system/jenkins.service
# 找到下面的文字
EnvironmentJENKINS_PORT8080 # 修改为自己想要的端口号
# :wq退出 3.修改完成后重新加载配置文件随后再重启 Jenkins此时的启动端口应该已经变成你修改的端口号了。
# 重新加载配置文件
systemctl daemon-reload
# 重启jenkins
systemctl restart jenkins 启动 Jenkins Jenkins 可以单独指定 Java 路径在/etc/init.d/jenkins文件内大概一百行左右的位置在最上面加上你的 java 路径即可 PS当前 Jenkins 支持的最低 Java 版本为 11如果机器上只有 Java8 的朋友需要先安装 Java11 或以上版本。Linux 下多版本 Java 建议通过系统自带的 alternatives 来管理参考这篇文章外加自己琢磨搞定 linux alternatives 命令详解 https://www.cnblogs.com/lpfuture/p/4638425.html 输入service jenkins start会弹出提示Starting jenkins (via systemctl):意思是正在启动第一次启动比较耗时此时耐心等待。如果提示超时失败没关系jenkins 仍然在启动只是第一次启动比较耗时。 如果提示内容不是超时失败那大概率是你的 Java 没安装好或者版本不对。 放行刚刚配置的端口
# 放行15369端口
firewall-cmd --zonepublic --add-port15369/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
# 查看是否已经开启
firewall-cmd --list-ports
如果你是在阿里云腾讯云等类似服务器上的话那你还需要去控制台防火墙或者安全组开放这个端口像这样 开放端口时记得设置授权 ip建议你直接给自家 ip 地址授权全部端口号。 在浏览器输入 ipport可以进入到 Jenkins 的初始化界面第一次启动要等的比较久 进入这个界面说明你的 Jenkins 已经在启动中了。 初始化配置 Jenkins 系统启动完毕后系统会提示你查看并输入管理员密码根据中显示的密码位置打开该文件并将密码复制粘贴即可
# 在服务器查看密码文件
cat /var/lib/jenkins/secrets/initialAdminPassword 2、密码输入成功后进入插件安装界面如果你是新手直接使用推荐安装的插件即可 安装过程中可能会出现部分插件安装失败的情况没关系全部处理完毕后可以选择重试。
4、安装完毕后系统会提示你创建第一个管理员账户 5、配置 Jenkins 访问地址便于一些插件使用一般会有默认值 6、配置完成点击开始使用 Jenkins 随后就进入到 Jenkins 的管理界面了不同版本的 Jenkins 界面可能会不一样 至此Jenkins 安装完毕。
扩展
如果你是使用 Jenkins 来对 Java 服务做持续集成的话那么你还需要安装下面的插件 Maven IntegrationMaven 集成管理插件。 Docker pluginDocker 集成插件。 Publish Over SSH远程文件发布插件。 SSH: 远程脚本执行插件。 GitLab拉取远程仓库代码插件。
安装插件在系统管理 - 插件管理里面 实例讲解
接下来我会拿出我的用户微服务构建任务的实际配置来向你进行解读当你了解了 Jenkins 自动化构建部署的工作原理后你便可以很快的上手这个玩意因为你会发现它是如此的简单。
基本环境
在此之前我需要介绍一下我的基本环境 我的操作环境为 Windows但是我要把微服务部署到一台 Linux 服务器上去包括 Jenkins 也是安装在这个上面的。 服务器上安装了 Jenkins、Git、Docker、JDK、Maven、NodeJs都是些拿来构建的东西都是单独安装的而不是跑在 Docker 上。 而项目服务都是跑在 Docker 上的还有 Redis 这种轻量的中间件也跑在 Docker 上。 我的项目已经在 Git 仓库里放好了放 github 或者 gitee 或者 gitlab 都行。
全局工具配置
在 Jenkins 上我已经配置好了这些构建工具的路径以便于 Jenkins 可以直接调用到他们在系统管理 - 全局工具配置 这个页面下这张图有点长 在这张图上你可以看到其中有一部分的配置是有路径的还有一部分配置是没有路径的这是因为我把他们的命令路径加到了系统路径上即使不添加完整路径Jenkins 也可以调用到它们。
创建任务
好现在我们已经准备好环境了可以创建一个任务来试试水了输入任务名称然后选择构建一个自由风格的软件项目 别问我在哪新建任务请你返回首页好好看看 任务配置
源码管理
现在我们已经进入到任务配置界面了往下划到源码管理的地方选择 Git然后填写仓库地址等信息 添加 Credentials 的时候如果你会使用 SSH 密钥的话建议还是用这个但你得在机器上进行格外的配置这里我就不多说了不会的话直接用账号密码也是可以的 构建步骤Build Steps
第一步调用 Maven
点击增加构建步骤由于我们是 Maven 管理的项目需要先使用 Maven 构建所以第一步就用调用顶层Maven目标 选择 maven 版本然后 target 根据项目的实际情况编写我的命令是这样的 先构建 jar 包执行 install 的过程中会先执行 package 的所以我直接 install。我的项目中单元测试是没怎么梳理的所以我使用参数-Dmaven.test.skiptrue跳过单元测试。 然后我得打包成 docker 镜像我使用的是dockerfile-maven-plugin这个 Maven 插件所以打包 docker 镜像的步骤就也放在 maven 里面了构建 docker 镜像的信息都在项目的 pom 文件里面。
install -Dmaven.test.skiptrue
dockerfile:build -f user-service/user-server/pom.xml构建完镜像了接下来我们直接使用这个镜像创建容器然后运行就完事了。
第二步执行 shell 启动容器
再添加一个构建步骤正常情况下我们调用 docker 通过命令行调用就可以了所以我们现在也添加一个执行shell的步骤即可。 具体的命令也很简单就这么几步 清理之前的旧镜像。由于我们刚刚构建了一个新的镜像新镜像和旧镜像的名称和版本我们是没有改的所以旧的镜像就会自动变成none使用命令docker image prune -f 就可以清理掉这部分镜像。 停止旧容器运行并删除旧容器。当然我们得先判断一下是否存在旧容器使用容器名称来进行判断这部分指令涉及到shell和docker的命令知识看不懂没关系可以直接 cv注意修改容器名称就好。 调用 docker 启动容器根据项目实际情况来设定不同的参数我这里设置了网络模式为 host并且映射了一个容器卷用于读取 nacos 的地址再指定容器名称为user-service最后指定使用的镜像名称。
大功告成具体命令如下 # 清理镜像
docker image prune -f# 清理容器
if [ -n $(docker ps -a -f nameuser-service --format {{.ID}} ) ] then#停止容器运行docker stop $(docker ps -a -f nameuser-service --format {{.ID}} )#删除之前的容器docker rm $(docker ps -a -f nameuser-service --format {{.ID}} )
fi# 启动容器
docker run -d --nethost -v scblogs-config:/config -e PARAMS$params --name user-service scblogs/user-server
最后别忘了点击保存
后记
经过上面这些步骤我不仅安装好了 Jenkins还完成了一个基本的自动化构建脚本这个脚本会调用 maven 把我的项目打包然后构建成一个 docker 镜像再通过一段 shell 命令去启动这个程序。
如果你想尝试启动这个构建任务的话你可以回到主页点击右边的绿色符号。 当然你大概率是会构建失败的 。因为我的这份实例讲解并没有完全的讲清楚甚至里面有很多步骤你都看不懂是不是
其实我并没有想写一份手把手的 Jenkins 使用教程因为这要写的内容实在是太多了我甚至可以因此写一本小册了
还记得我在实例讲解的最开始写的吗写这个构建案例的目的是让你了解 Jenkins 自动化构建的原理如果你看到这里已经发现了这自动化构建其实就跟我们手动构建部署差不多只不过是把手动操作的东西设定成了脚本那你就已经有能力去自己摸索它了。
用用插件、写写脚本就可以搞定自己项目的自动化部署啦。
实际情况是我有一台服务器专门用于 Jenkins 自动化部署还有一台服务器专门用于生产环境这两台服务器都可以连接到外网也可以互相访问到彼此。这是由于 Jenkins 构建时是会比较吃 CPU 的为了不影响生产环境所以我把它们分开了。当然这种情况下脚本也会稍微复杂一点具体流程大概是下面这样的
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90920.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!