草庐IT

jenkins部署指定任意版本和配置详细教程 jenkins 2.361版本示例

争取不加班! 2023-11-20 原文

Jenkins构建CI/CD

什么是CI/CD:持续集成/持续发布---开发(git) -->git主库-->jenkins(git+jdk+tomcat+maven打包+测试)-->发布到tomcat服务器。

持续集成(Continuous Integration, CI): 代码合并,构建,部署,测试都在一起,不断地执行这个过程,并对结果反馈。

持续部署(Continuous Deployment, CD): 部署到测试环境、预生产环境/灰度环境、生产环境。 

持续交付(Continuous Delivery, CD): 将最终产品发布到生产环境、给用户使用。

jenkins介绍

Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。 我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL(代码仓库地址),将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到Tomcat容器中。

工作流程图

1.开发者会将代码上传到版本库中。

2.jenkins通过配置版本库的连接地址,获取到源代码。

3.jenkins获取到源代码之后通过参数化构建(或者触发器)开始编译打包。

4.jenkins通过调用maven(Ant或者Gradle)命令实现编译打包过程。

5.生成的war包通过ssh插件上传到远程tomcat服务器中通过shell脚本自动发布项目。

在jenkins服务器:192.168.197.143 配置jdk和maven

下载jdk或者自己上传包 https://www.oracle.com/java/technologies/downloads/

Maven下载 https://downloads.apache.org/maven/maven-3/

wget https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz

tar -xvzf apache-maven-3.8.8-bin.tar.gz

tar zxvf jdk-8u121-linux-x64.tar.gz

mv jdk1.8.0_121/ java

mv apache-maven-3.8.8/ java/maven

mv java/ /usr/local/

配置环境变量: vim /etc/profile

JAVA_HOME=/usr/local/java

MAVEN_HOME=/usr/local/java/maven

PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME

source /etc/profile 刷新配置

java -version 验证一下

mvn -v

jenkins服务rpm包下载地址https://get.jenkins.io/redhat/

选择jenkins对需要的版本,复制链接地址或者直接点击下载都可以

wget https://get.jenkins.io/redhat/jenkins-2.361-1.1.noarch.rpm --no-check-certificate

yum install epel-release java-11-openjdk-devel -y

rpm -ivh jenkins-2.361-1.1.noarch.rpm rpm安装或者yum安装都可以

yum -y install jenkins-2.361-1.1.noarch.rpm

systemctl daemon-reload

systemctl start jenkins 启动jenkins

systemctl status jenkins 查看一下jenkins的状态

第一次访问一个新的 Jenkins 实例时,系统会要求您使用自动生成的密码将其解锁

浏览到`http://192.168.197.141:8080`并等待**解锁 Jenkins**页面出现

来到服务器查看一下初始密码

cat /var/lib/jenkins/secrets/initialAdminPassword

复制到web页面即可 登录即可

安装插件需要等一会,安装失败大部分原因都是网络问题。

到这一步部署基本完成了。

部署完成后,jenkins需要安装一些需要使用的插件

Deploy to container ---支持自动化代码部署到tomcat容器

GIT plugin 可能已经安装,可在已安装列表中查询出来

Maven Integration jenkins利用Maven编译,打包所需插件

Publish Over SSH 通过ssh连接

注意是搜索一个下载一个 不是批量下载的

插件安装完以后配置一下远程的ssh-server(后端服务器)

配置jenkins服务器的私钥

ssh-keygen 生成秘钥

cat /root/.ssh/id_rsa 查看服务器的私钥然后复制过来

然后将公钥发送到后端服务器(是需要构建项目发布的服务器)做免密登录

ssh-copy-id -i tom@192.168.197.136

如果有多个后端服务器,可以点击 ADD server进行添加;

配置完后端用户后,配置JDK和Maven

虽然Jenkins服务器上,已经安装了JDK和maven工具,但是,还需要在Jenkins服务中,进行配置;这样Jenkins才能自动化的使用两个工具;

配置jdk

配置maven

jenkins部署安装和配置已经完成,可以进行项目构建了

构建项目文档另起一篇进行编辑请看文档二

Jenkins构建项目和tomcat项目发布脚编写本详细教程jenkins 2.361版本_争取不加班!的博客-CSDN博客

有关jenkins部署指定任意版本和配置详细教程 jenkins 2.361版本示例的更多相关文章

  1. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  2. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 在 ruby​​ .gemspec 文件中,如何指定依赖项的多个版本? - 2

    我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这

  5. ruby - 如果指定键的值在数组中相同,如何合并哈希 - 2

    我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat

  6. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

  7. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  8. ruby-on-rails - 如果我将 ruby​​ 版本 2.5.1 与 rails 版本 2.3.18 一起使用会怎样? - 2

    如果我使用ruby​​版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby​​1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更

  9. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  10. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

随机推荐