部署Jenkins參照另一篇博客:
一、jenkins相關插件的安裝
1、安裝Publish Over SSH插件用於SSH連接遠程的服務器。
登錄 jenkins 管理系統首頁,打開“系統管理”--“管理插件” 搜索 Publish Over SSH 然后勾選安裝
2、安裝 NodeJs插件 用於vue項目打包構建。
打開“系統管理”--“管理插件” 搜索 nodejs 然后勾選安裝
打開“系統管理”--“Global Tool Configuration” 拉到底部 配置 node 版本,如圖:
二、配置遠程服務器的連接
1、打開“系統管理”--“系統設置” 找到 “Publish over SSH” 項 ,如果是帳號密碼登錄的Passphrase填寫密碼Username填寫用戶名,path to key 為空就可以了。也可以通過遠程服務器用的是ssh登錄,通過ppk密鑰進行連接。點擊 Test Configuration 按鈕測試連接是否成功
三、配置自動部署任務
1、新建任務:點擊“新建”--填寫任務名稱,選擇“構建一個自由風格的軟件項目”然后保存,如圖:
2、配置git,進入任務配置,選擇源碼管理 ,我這里是git下載項目,所以選擇 git ,因為是開源的,所以沒有填寫賬號密碼,如圖
3、設置構建環境,選擇 Provide Node & npm bin/ folder to PATH 然后選擇之前安裝插件時候配置的node版本,如圖
4、配置項目自動化打包,選擇 增加構建步驟 ---Excute shell 這個是運行相關的sh命令
cd /var/lib/jenkins/workspace/test npm install -g cnpm --registry=https://registry.npm.taobao.org rm -rf dist rm -rf finance rm -rf finance.tar.gz cnpm install cnpm run build mv dist finance tar -zcvf finance.tar.gz finance
5、把打包好的項目文件發布到遠程服務器
選擇“構建后操作步驟”---“Send build artifacts over SSH” 。
Name:第三步創建的遠程服務器名稱
Source files:本地需要傳輸過去的文件路徑
Remove prefix:過濾掉的目錄名
Remote directory:遠程服務器的保存路徑
Exec command:傳輸完成后在遠程服務器執行的sh命令
**/dims.tar.gz
/tomcat/webapps
cd /usr/local/src/tomcat/apache-tomcat-8.0.30/webapps/ rm -rf finance tar zxvf finance.tar.gz rm -rf finance.tar.gz
6、保存后點擊“立即構建”查看任務是否構建完成,Console Output 菜單可以查看構建日志。
四、遇到的問題
1、拉取代碼超時報錯
[test] $ /bin/sh -xe /tmp/jenkins5540140486901721898.sh + cd /var/lib/jenkins/workspace/test + rm -rf dist + npm install > yorkie@2.0.0 install /var/lib/jenkins/workspace/test/node_modules/yorkie > node bin/install.js CI detected, skipping Git hooks installation > node-sass@4.9.3 install /var/lib/jenkins/workspace/test/node_modules/node-sass > node scripts/install.js Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.3/linux-x64-72_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.3/linux-x64-72_binding.node": HTTP error 404 Not Found Hint: If github.com is not accessible in your location try setting a proxy via HTTP_PROXY, e.g. export HTTP_PROXY=http://example.com:1234 or configure npm proxy via npm config set proxy http://example.com:8080 > electron@4.0.0 postinstall /var/lib/jenkins/workspace/test/node_modules/electron > node install.js
需要用到淘寶鏡像做代理,否則連接不上,參考:http://npm.taobao.org/
2、推送遠程服務器內存溢出
報錯信息如下:
SSH: Connecting from host [localhost.localdomain] SSH: Connecting with configuration [226] ... SSH: Disconnecting configuration [226] ... FATAL: GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1249) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1282) Finished: FAILURE
報錯信息二:
java.lang.OutOfMemoryError: Java heap space at com.jcraft.jzlib.Deflate.deflateInit(Deflate.java:1384) at com.jcraft.jzlib.Deflate.deflateInit(Deflate.java:1326) at com.jcraft.jzlib.Deflater.init(Deflater.java:133) at com.jcraft.jzlib.Deflater.<init>(Deflater.java:80) at com.jcraft.jzlib.Deflater.<init>(Deflater.java:75) at com.jcraft.jzlib.GZIPOutputStream.<init>(GZIPOutputStream.java:46) at com.jcraft.jzlib.GZIPOutputStream.<init>(GZIPOutputStream.java:40) at com.jcraft.jzlib.GZIPOutputStream.<init>(GZIPOutputStream.java:36) at hudson.console.AnnotatedLargeText.writeHtmlTo(AnnotatedLargeText.java:179) at hudson.console.AnnotatedLargeText.writeLogTo(AnnotatedLargeText.java:147) at org.kohsuke.stapler.framework.io.LargeText.doProgressText(LargeText.java:264) at hudson.console.AnnotatedLargeText.doProgressiveHtml(AnnotatedLargeText.java:95) at java.lang.invoke.LambdaForm$DMH/1024337131.invokeVirtual_L3_V(LambdaForm$DMH) at java.lang.invoke.LambdaForm$BMH/702564452.reinvoke(LambdaForm$BMH) at java.lang.invoke.LambdaForm$MH/1895324968.invoker(LambdaForm$MH) at java.lang.invoke.LambdaForm$MH/378519084.invokeExact_MT(LambdaForm$MH) at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145) at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:535) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:219) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:456) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) Caused: javax.servlet.ServletException at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:797) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:219) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:456) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676) at org.kohsuke.stapler.Stapler.service(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:505) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804) at java.lang.Thread.run(Thread.java:748)
未找到問題的解決辦法,但是換了另一種方法推送到遠程服務器,寫一個腳本文件,采用遠程復制的方法(scp)
記錄一下具體的操作步驟
工程配置信息如下:
注意:從本地倉庫gitlab拉取代碼需要配置git憑證,參考我的另一篇文章:
tomcat部署Jenkins並配置jdk、maven、git
構建環境選擇nodejs
構建執行的shell命令
cd /var/lib/jenkins/workspace/design npm install -g cnpm --registry=https://registry.npm.taobao.org rm -rf design cnpm install cnpm run build mv dist design cd /var/lib/jenkins/workspace/ bash module.sh design
module.sh腳本文件如下:
[root@localhost ~]# cd /var/lib/jenkins/workspace/ [root@localhost workspace]# [root@localhost workspace]# ls design design@tmp dims dims@tmp jsnk module.sh WEB-INF [root@localhost workspace]# [root@localhost workspace]# cat module.sh #!/bin/bash server2=('192.168.2.226' '192.168.2.227') if [[ $1 == "dims" || $1 == "design" || $1 == "jsnk" ]]; then echo "開始復制 $1..." cp -r /var/lib/jenkins/workspace/WEB-INF /var/lib/jenkins/workspace/$1/$1 echo "成功復制 $1..." echo "開始移動 index.html $1..." mv /var/lib/jenkins/workspace/$1/$1/index.html /var/lib/jenkins/workspace/$1/$1/WEB-INF echo "成功移動 index.html $1..." for server in "${server2[@]}";do echo "開始刪除遠程服務器$1原文件" ssh root@${server} "rm -rf /usr/local/tomcat/webapps/$1" echo "遠程服務器$1原文件已經被刪除" echo "開始上傳到遠程服務器 ${server}..." scp -r /var/lib/jenkins/workspace/$1/$1 root@${server}:/usr/local/tomcat/webapps echo "上傳到遠程服務器 ${server}成功。。。" done echo 'build success...' else echo "傳入了錯誤的參數,目前只支持【dims,jsnk,design】..." fi [root@localhost workspace]#
在執行腳本推送到遠端服務器上的時候報錯了,信息如下:
報錯信息一:
Host key verification failed. lost connection Build step 'Execute shell' marked build as failure Finished: FAILURE
報錯信息二:
Warning: Permanently added '192.168.2.227' (ECDSA) to the list of known hosts. Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). lost connection Build step 'Execute shell' marked build as failure Finished: FAILURE
根據報錯信息,需要添加ssh信任,實現無密傳輸即秘鑰傳輸
遠程服務器秘鑰信息226
[root@tomcat1 ~]# cd .ssh/ [root@tomcat1 .ssh]# [root@tomcat1 .ssh]# ll total 16 -rw-------. 1 root root 809 Jun 24 11:20 authorized_keys -rw-------. 1 root root 1679 Jun 24 10:39 id_rsa -rw-r--r--. 1 root root 394 Jun 24 10:39 id_rsa.pub -rw-r--r--. 1 root root 175 Jun 24 10:40 known_hosts [root@tomcat1 .ssh]# [root@tomcat1 .ssh]# cat id_rsa -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAugoSUxtt32aAKvqiug5AoepqUFGYjcxrIZdJyX7BrloneBIG ZWGR4IozHmbRJaylxOyzZwOjL3gS8tE/C6SOLKpmqJOR5FtQMLOMZWYjtNxBQhR4 h/E0IvSPxewx+9N2SHzBsHhN1A8eVo0ncFmeKgi2y+NbCHkBlvJ4amCBK0fg8s27 R0B+z3FlL4VkD4qQNWkon4RcaImojt2GW4xNbPBc/kkWEDYUlvhO/wAplKKnRJ4C H4JrafLBYF4DqADkhPgrGZZbrwilv5XbgDGIcXhfT2Q3qJxsOEMHQEtTrweEwyLh PRAXdrNMaDxIwxiDdNXqJVd3Aop/zEE8voN/6wIDAQABAoIBAQCdnkzaNqIHJUuv njviUJL326iJNih+8tNNWWU9nvQvaNiJxRPAL0Mtr0kSF+BZAAZOapCw1Ycbf6rm KNw2XAvM0e46IxT3GVo+eNCZVEkqQXXUq41W98fJWdS5xpyulAFh9rkPb03ZPZnh kKP6byMuz8U3xv9olUUAg5v73JlzdXaHK8HwssSPT0Gi9NxBPMFzXwL657VJTnDR sqSKK0ymjiyLHuVs6ZDAWqTv/yrltfkkaBv1w6yZ+NvQKiqEmVdq0Zpyp7X07TRo KNeVHid+ZMfYz7sLOaTe4wLoY7eG+YTUdNMhIbkSOAU0SZM+8FSVXunAHscrPFcT 9pORacuxAoGBAO1wimt44FWCj32m/cTr1SDklFzJmj2nUd+aYe4SDZUSnEi4bZRu 6qN0yOlp5d8HTPjQScKMmXE/DCTU7Qabc5R3Lcxd8FD/96jOtu08qDCvh58t/Kqa ZjBvWTVcxX1PhG8N6sZHz20MVO//BFK1YvcrCi253+zsg4jAq+Ytryz5AoGBAMiU 8rgUnlVNjBWLpOp/jPEiTw1cZWVQd/CkUTkTZnu+UDXjDmZJLZ0B/OoqJtBdPieS SYXFFWcUTEBy+lsyf1MDWicqZvP0oR7/S8liYwWWCaMXMbD+ri5IYHRbipiJuwLx cF/LJAFy6CnQRjlDeX5NIIE4aXwy9LqZh44H0QEDAoGBAME3qryIUe3j4Aa9ZJbh 3r70o7LaL9TqGtseE4EbWcgsq9cVlb6LgA9h0rj2/yO+GioDvXI+3gLk7mnuh6+v wp9XWIKNEymnEo9hIETv7mIoBPJJBuqB2JSjl/Gvu9ocYkXJCnsuJqKzvU7LtGXl y1IdyRuqvYlccjFPsNMP7BRpAoGAPHibTF/69CCy8PPuvjvCFBiR2KdYclj2L/h5 /EkbBodzyysu9ittsv4cb8RRe1QBHxD9VXT7ZN47ttpzG/d3Z2GFVnV0IGxJ/vxc rtQYomB/e0nM012UyaNMYQgQGri7RsHfbSHjMwSfdauy4CS1hhxehlaphqYeHfuX YHx+yF0CgYEAnxMCwNBCkgrHFHm1baOkbMrWHWoS4GCs0fArDdwlfs4rjJTRwc/F guD05725L+ERCakdir5s4FfcaT0OPnjpwDW1zTBPPf1rp5Hdim9M6KxuCp8nK3WZ 2CdjwTXOJSljRGev7Iz3mH1k0tBEpubTz0CUgpXRROhPvSJDbuP3+2w= -----END RSA PRIVATE KEY----- [root@tomcat1 .ssh]# [root@tomcat1 .ssh]# cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6ChJTG23fZoAq+qK6DkCh6mpQUZiNzGshl0nJfsGuWid4EgZlYZHgijMeZtElrKXE7LNnA6MveBLy0T8LpI4sqmaok5HkW1Aws4xlZiO03EFCFHiH8TQi9I/F7DH703ZIfMGweE3UDx5WjSdwWZ4qCLbL41sIeQGW8nhqYIErR+DyzbtHQH7PcWUvhWQPipA1aSifhFxoiaiO3YZbjE1s8Fz+SRYQNhSW+E7/ACmUoqdEngIfgmtp8sFgXgOoAOSE+CsZlluvCKW/lduAMYhxeF9PZDeonGw4QwdAS1OvB4TDIuE9EBd2s0xoPEjDGIN01eolV3cCin/MQTy+g3/r root@tomcat1 [root@tomcat1 .ssh]# [root@tomcat1 .ssh]# cat known_hosts 192.168.2.230 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLd5yD0VDlRutV7gyxiH3LZaIUqVLvAM8y9Yb33DMabevXMgbwfDWSvdl3W7bSEiceGGOfQeB1CrmidCXdHNzrE= [root@tomcat1 .ssh]# [root@tomcat1 .ssh]# cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4WXCLfU36bQug31Ob65QUaRJCJhivlYHuDHlPfntAf3BDCEtTpiBzGgKOTg+ZmWAyHzyA0W8+BKSGBYiWyYxBfmh3PJLDc6Gw5y+RERu2+9XnKIyT/gQQ/cQ7jiA4VaGTYkK0Ei/0HfsCB+I2vrhfSPsor0zvfQcDO5fI/0QnoOLH9DnpLPST53li28K3jaglIFBoL8jH7cXAD0NtbGVl9R7vI57HRM0Bi0fofG5sLaF2FqrUJAc50d2AbIprpv7xAdCCjmvHjNsZgeP0JWVC/MJqNqC4BpjQq0heQZG4zCvPhiYhfYHp8ZuP1ON5wmB024nq6lvbvWsXjlm1tIKP gjx@cnbisoft.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgAxa9DsphdOT8l3TeuJXp+bmu9P/gY6hIsMUaCdfEqD1DXVGv+2tipsX4IDmNIGBmseSJrVcOtMM8X7tMaPPzzUXXNP6vvDmHPOh57F77FEI89PvghdzcdiKnmGEbtmxwXwX8oad5TMWmLAyA0rrrXGUdrh44aMR+sDZymOh6p82xcULZKgmzwxcU+cN/egEP7dWiY6rbFpLMrXPryKDqiMQamRR786v4bQNLAs750dg4OFoEx9beY05QklSTotZ7pSpt2P3nzm14Ed9g2bync31ELi2HKfbtdw9Yi4qpJyrI/peKr4MOqi2Cvf4vksu6izGYXt2gtnhNAWaVkxuB jenkins@localhost.localdomain [root@tomcat1 .ssh]#
Jenkins服務器230秘鑰信息
root用戶:
[root@localhost ~]# cd .ssh/ [root@localhost .ssh]# [root@localhost .ssh]# ll total 16 -rw-------. 1 root root 788 Jun 24 14:04 authorized_keys -rw-------. 1 root root 1675 Jun 24 09:26 id_rsa -rw-r--r--. 1 root root 398 Jun 24 09:26 id_rsa.pub -rw-r--r--. 1 root root 1330 Jun 24 13:53 known_hosts [root@localhost .ssh]# [root@localhost .ssh]# cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6ChJTG23fZoAq+qK6DkCh6mpQUZiNzGshl0nJfsGuWid4EgZlYZHgijMeZtElrKXE7LNnA6MveBLy0T8LpI4sqmaok5HkW1Aws4xlZiO03EFCFHiH8TQi9I/F7DH703ZIfMGweE3UDx5WjSdwWZ4qCLbL41sIeQGW8nhqYIErR+DyzbtHQH7PcWUvhWQPipA1aSifhFxoiaiO3YZbjE1s8Fz+SRYQNhSW+E7/ACmUoqdEngIfgmtp8sFgXgOoAOSE+CsZlluvCKW/lduAMYhxeF9PZDeonGw4QwdAS1OvB4TDIuE9EBd2s0xoPEjDGIN01eolV3cCin/MQTy+g3/r root@tomcat1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVBiE6i7yQO7HVDKeBn6JzpQqHzfxVjMg1UxycvoTjneNyPw7wG18LVFEqR/2MZ+n990WY0LBPhOHCYTx1jx2dVURdqqQkDsMLfy3OWjc/gbM/kITKYqNkdi2aYCQvU2GqRl9DBkQ3r6m8bSJzoEJyZEKHfJHRkntiGUiqDbPixwdoOaQNlmsjJvll4xTCpGjlCIYhasRs76ldMWc+d4PM/wPw/N5TaSaR4oFcD9M4KnotbPLXY2K38lyEyvGXoj6Ckj4/wGEEJsKvEmzu8jJUYPVeWmEY1riWrhvHenN8K/XtlGqw0GCPYW/dl+SNpjrBAaTrFizCHc0u/cSEa60F root@tomcat2 [root@localhost .ssh]# [root@localhost .ssh]# cat id_rsa -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAuFlwi31N+m0LoN9Tm+uUFGkSQiYYr5WB7gx5T357QH9wQwhL U6YgcxoCjk4PmZlgMh88gNFvPgSkhgWIlsmMQX5odzySw3OhsOcvkREbtvvV5yiM k/4EEP3EO44gOFWhk2JCtBIv9B37AgfiNr64X0j7KK9M730HAzuXyP9EJ6Dix/Q5 6Sz0k+d5YtvCt42oJSBQaC/Ix+3FwA9DbWxlZfUe7yOex0TNAYtH6HxubC2hdhaq 1CQHOdHdgGyKa6b+8QHQgo5rx4zbGYHj9CVlQvzCajaguAaY0KtIXkGRuMwrz4Ym IX2B6fGbj9TjecJgdNuJ6upb271rF45ZtbSCjwIDAQABAoIBAQCh76cmURcLkXhy g1rtjz4Pw9CPHOn4ayusUXbKtr9MA+Y4a/PHchn1Ifb2zGl1sr5GqRu7yL2gS/G9 7OR0GG3FJmZbv3Dokg2J2Tr2goHG9meK3BrI8Yze5BvZeNqiwc3iKqGPjp5jIWbZ /NTg5B4PTYuazIqXoUtkspd9r4ZOC8z5DtljLcZx2M8p5hvCTcM2CmHzpKuIWd2W aJN4cGkDDiZLtGdKZqFR0M/d2gH+Sq9bUMbjrZr+FD9dwrXsWGNilMt/3JzIxr5u ARvSLDtl8y6QSfGr2Xd/eXBOQmB6ZMyZOZYEnSsfTJvURGWQVW5N6E7Paku/9m2N t1nTxalRAoGBAPGWjDv7BZzXy7KojhlmfQlCecQvVLcJOtBT1xBdkekWjP/LtojI 5GzlUYZeDpMQ5k6ifS1cPqES66UQHVMSbdtHbf+Bdianou91zwLGJjkSdaVDPAiF MLpjw07yFqhcjgoy1MgIqJehtq8wlWkKKAOpOavwYlHl7o+ciSFZGkQHAoGBAMNY wvMzL4fwsPRM3GyX38GqOflKIQImVvi/bG/fU13NhLDlwRdVQTMsSFWL3I/DcDWW rob113fzGNY68nF37DuBqWs2lvrTPlRVHKFxIEEqG8GLmYQKvx8pqU5WE7/IjZeF FpS5uxWsHJ4YTVb9zK4YcJaoM8HbpqRtlRzrdHs5AoGAC3BEXYaqIl35UBE5ASzg GLMkDszq5uux9DE0CptTkES4Elhz4RAZ+Kn27TTA3ee779cztBUdBgVeUOdtbASA XRSJucJIdNYVGd9rGMeHAcbE+Tkwu3qK7xhQJAnEVt5i/0qe1oXKbbuDadIUEPAh KuM1TtXH4fbQD86qk4CjhLsCgYAuuDnX5HQHtR79LqzBJAmVzdqTrpD6bKT8VPvg Pa84jgCgNjLaG7++N2cNXqffkkRx7JnNGVrxCyjzg6GcVawgB0C3rZSqZH9RuBFi 4yVtsF53CaYrmE5ha5tcauXKRnLmvCPMaic+Za1qejF1Dro3IQ08WvoV8SyHwtWY 1w9CsQKBgEcdE+KGtYn57v3QqeR3OrAwF7PnRR2NA80dhyuRyY3CjoQDYDQ8oK4d XPT0eGa8f40mLKjVbFoYkeJ+cgraPtCrtGYYgTNuSErwf+SXXce6e4bBqeuncf82 XsqyHOjO71pdU6mk66jq51ywfGrV4O/TLrY8zKG5nvg1qrksHVNo -----END RSA PRIVATE KEY----- [root@localhost .ssh]# [root@localhost .ssh]# cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4WXCLfU36bQug31Ob65QUaRJCJhivlYHuDHlPfntAf3BDCEtTpiBzGgKOTg+ZmWAyHzyA0W8+BKSGBYiWyYxBfmh3PJLDc6Gw5y+RERu2+9XnKIyT/gQQ/cQ7jiA4VaGTYkK0Ei/0HfsCB+I2vrhfSPsor0zvfQcDO5fI/0QnoOLH9DnpLPST53li28K3jaglIFBoL8jH7cXAD0NtbGVl9R7vI57HRM0Bi0fofG5sLaF2FqrUJAc50d2AbIprpv7xAdCCjmvHjNsZgeP0JWVC/MJqNqC4BpjQq0heQZG4zCvPhiYhfYHp8ZuP1ON5wmB024nq6lvbvWsXjlm1tIKP gjx@cnbisoft.com [root@localhost .ssh]# [root@localhost .ssh]# cat known_hosts git.cnbisoft.com,192.168.1.104 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvUdt2Oh75XhRPNrR7BSexICh6FMQ5sCt2EhqIQf8VZ4OavYaXyS5NqlpmTF3NFv4zIKQ8ZH9pw3HOWzhMpTWI= 192.168.2.226 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPqesXk2I6REAzQgM157kwyvmqV/arsi0HtHl2CzgBGUvBn1wVmng6fDYyKpG5piQF0iO1R6vmvuXwIkkAygoJg= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6ChJTG23fZoAq+qK6DkCh6mpQUZiNzGshl0nJfsGuWid4EgZlYZHgijMeZtElrKXE7LNnA6MveBLy0T8LpI4sqmaok5HkW1Aws4xlZiO03EFCFHiH8TQi9I/F7DH703ZIfMGweE3UDx5WjSdwWZ4qCLbL41sIeQGW8nhqYIErR+DyzbtHQH7PcWUvhWQPipA1aSifhFxoiaiO3YZbjE1s8Fz+SRYQNhSW+E7/ACmUoqdEngIfgmtp8sFgXgOoAOSE+CsZlluvCKW/lduAMYhxeF9PZDeonGw4QwdAS1OvB4TDIuE9EBd2s0xoPEjDGIN01eolV3cCin/MQTy+g3/r root@tomcat1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVBiE6i7yQO7HVDKeBn6JzpQqHzfxVjMg1UxycvoTjneNyPw7wG18LVFEqR/2MZ+n990WY0LBPhOHCYTx1jx2dVURdqqQkDsMLfy3OWjc/gbM/kITKYqNkdi2aYCQvU2GqRl9DBkQ3r6m8bSJzoEJyZEKHfJHRkntiGUiqDbPixwdoOaQNlmsjJvll4xTCpGjlCIYhasRs76ldMWc+d4PM/wPw/N5TaSaR4oFcD9M4KnotbPLXY2K38lyEyvGXoj6Ckj4/wGEEJsKvEmzu8jJUYPVeWmEY1riWrhvHenN8K/XtlGqw0GCPYW/dl+SNpjrBAaTrFizCHc0u/cSEa60F root@tomcat2 192.168.2.227 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPoG+rHp1xQh5R8J56aqtvqph2KVd3uhsp8vFs1Id5X2WvlPyPoRk6CfzoeeWNmACbF2k/T9tkgopLzldtW53j4= [root@localhost .ssh]#
Jenkins用戶秘鑰信息
[root@localhost jenkins]# pwd /var/lib/jenkins [root@localhost jenkins]# [root@localhost jenkins]# cd .ssh/ [root@localhost .ssh]# [root@localhost .ssh]# ll total 16 -rw-------. 1 jenkins jenkins 54 Jun 24 11:11 config -rw-------. 1 jenkins jenkins 1675 Jun 24 11:10 id_rsa -rw-r--r--. 1 jenkins jenkins 411 Jun 24 11:10 id_rsa.pub -rw-r--r--. 1 jenkins jenkins 192 Jun 24 09:46 known_hosts [root@localhost .ssh]# [root@localhost .ssh]# cat id_rsa -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEA4AMWvQ7KYXTk/Jd03riV6fm5rvT/4GOoSLDFGgnXxKg9Q11R r/trYqbF+CA5jSBgZrHkia1XDrTDPF+7TGjz881F1zT+r7w5hzzoeexe+xRCPPT7 4IXc3HYip5hhG7ZscF8F/KGneUzFpiwMgNK661xlHa4eOGjEfrA2cpjoeqfNsXFC 2SoJs8MXFPnDf3oBD+3VomOq2xaSzK1z68ig6ojEGpkUe/Or+G0DSwLO+dHYODha BMfW3mNOUJJUk6LWe6Uqbdj9585teBHfYNm8p3N9RC4thyn27XcPWIuKqScqyP6X iq+DDqotgr3+L5LLuosxmF7doLZ4TQFmlZMbgQIDAQABAoIBAAJYRe6orvmiLZtv QmvqZrdSQ91O9za0FFjecNG69KU8VZfU7Dv5V8BqmnvkanXNtvScPBYs2FJxFfIV 1nIQTy1oIqkEBv5z6+48dvp/vObH6YGV1uUcwZkVK3uxnqKZoDz04a0pTAV7Bj6d C2x1yDsadnx/DBXvEs94rLk6XIScJAgEYXBPuMHEiZU/9a35y+cOI9/hqLKaOTEP HXpRDI9zGc+qMlakzfdvb920NsM7yusewNHLvybhpE63A/ig7dRfqvq9isiGLqPD e3g6C6OtmS+3l/7tbmffsusfssRGHNWdYA0EZj17y0CwwlUTbgBl/+W/g3WTca2H iKpwhRkCgYEA+8f2BR8MgtmmXDgy1FsmmjFNlCVmn8uSANGDWoeh6K66bZ1yetaV fSDV+MtRYbCWTMPHBBlYqlVgih9lvWExaymfzB+vvhHtD8qOhUK4liuWQGXtSUgY eAf3z2IBOP1LYzUe8tjiXwVzIQbbSrWHuhEUmJKha3G+dK+yujxYpqsCgYEA48QC iNnGjQNs1RByP8W77+GYcf5INYFd1irRFSAJSNcsp45QZRZjLgGbx6W6NYP8y00C JrHA614sHl41SnSIYp/UWazA7/Nfz+Pzl21slQwx/+wkox5xRy3awYWcRb1xYizM XOXg0roWrkMoehGkaorcvPEP10gB/sXnmnIpdoMCgYBCSWTF+GSs1mxr/weyzMSe 97f69tXL4CZyPLaeUPMZdVbzoO4Q1QnKRajPtYeZdoo7b5enxpyHS6787kM01q/S DMVbUkRMgB+vdp6LCwPZ1WPbVHpiPq7iewaM/LphrJ36YnPhb6Q5bA/hdBKr2pr/ K5wGhyQkS2/e/JrLWTPlvQKBgCzopv9IwUdol3rjRUOhv06rEp3XX3F9Un058APU T0BXfOyEuQFVirS1iHuzB6YpohyL0JLElZ9S8CwEs0k89O9NSFduIpStTgT1k0AW SUSSJQGrFAY9qGQ6fFmP+KIfmk2bO6hNgyjJnFM71q1K8To4qxFuDouKHSqY5vOi 8t31AoGAWm6B3H1M3h2NRJdLa/VSisjI0JIGMdvrWB8nYSxXn/3+vIYKCHoHKa09 rUrWLgttlkyxad9IuusrbffiZsuUpK4/QJW3qiTRYjJkuRoH998M4WMxQAX1S7Gn 8CeaMH0UDKFGHJCRTXkhWo6X5+6D8W1/8yI4LAeWaGtNfGVDXPk= -----END RSA PRIVATE KEY----- [root@localhost .ssh]# [root@localhost .ssh]# cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgAxa9DsphdOT8l3TeuJXp+bmu9P/gY6hIsMUaCdfEqD1DXVGv+2tipsX4IDmNIGBmseSJrVcOtMM8X7tMaPPzzUXXNP6vvDmHPOh57F77FEI89PvghdzcdiKnmGEbtmxwXwX8oad5TMWmLAyA0rrrXGUdrh44aMR+sDZymOh6p82xcULZKgmzwxcU+cN/egEP7dWiY6rbFpLMrXPryKDqiMQamRR786v4bQNLAs750dg4OFoEx9beY05QklSTotZ7pSpt2P3nzm14Ed9g2bync31ELi2HKfbtdw9Yi4qpJyrI/peKr4MOqi2Cvf4vksu6izGYXt2gtnhNAWaVkxuB jenkins@localhost.localdomain [root@localhost .ssh]# [root@localhost .ssh]# cat known_hosts git.cnbisoft.com,192.168.1.104 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvUdt2Oh75XhRPNrR7BSexICh6FMQ5sCt2EhqIQf8VZ4OavYaXyS5NqlpmTF3NFv4zIKQ8ZH9pw3HOWzhMpTWI= [root@localhost .ssh]# [root@localhost .ssh]# cat config StrictHostKeyChecking=no UserKnownHostsFile=/dev/null [root@localhost .ssh]#
參考博客:
https://blog.csdn.net/ansu2009/article/details/83584796