jenkins服务器免密登录tomcat jenkins发布or回滚插件

安装maven
91 gitlab-ctl start
92 /etc/init.d/jenkins start
上传所需安装包

查看自身jdk环境
93 rpm -qa | grep jdk

94 rpm -e java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 --nodeps #卸载自身jdk环境
95 tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local/ 解压配置文件到/usr/local/
96 tar zxf apache-maven-3.6.1-bin.tar.gz
97 mv apache-maven-3.6.1 /usr/local/maven 解压配置文件到/usr/local/
98 vim /etc/profile #末尾添加
export XGP=/usr/local/maven
export PATH=$PATH:$XGP/bin
export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=/usr/local/jdk1.8.0_211/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

99 source /etc/profile 刷新一下
100 mvn -v 测试一下是否安装成功

使用阿里云仓库地址
vim /usr/local/maven/conf/settings.xml #158添加
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url&gt;
<mirrorOf>central</mirrorOf>
</mirror>
102 cd
103 mvn archetype:generate -DgroupId=cn.bdqn.bdqnweb -DartifactId=bdqnweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false #构建一个项目



86 cd xgp-demo/ 进入之前创建的本地git仓库中
87 rm -rf 删除仓库的所有内容
88 git add
上传到缓存 这里会报错
89 git status 查看一下状态
92 git rm index.html x.txt xgp.txt 上传一下删除文件
93 git commit -m "del" 上传到版板库
94 git push origin master 上传到远程仓库

96 netstat -anpt | grep 8081

97 /etc/init.d/jenkins restart 重启jdk

98 /etc/init.d/jenkins status 查看jdk环境

104 ln -s /usr/local/jdk1.8.0_211/bin/java /usr/bin/ 链接命令目录
105 /etc/init.d/jenkins start 再次启动

107 ps -ef | grep 8081

修改Jenkins运行用户
108 vim /etc/sysconfig/jenkins
JENKINS_USER="root" #29 用户改为root
108
/etc/init.d/jenkins restart
109 ps -ef | grep 8081

111 cd bdqnweb/
112 ls
113 cat src/main/webapp/index.jsp

114 vim src/main/webapp/index.jsp 修改如下内容
115 cat src/main/webapp/index.jsp

116 cp -r src/ pom.xml /root/xgp-demo/ 复制测试页面到本地仓库
117 cd /root/xgp-demo/ 进入本地仓库
118 git add * 上传到缓存
119 git commit -m "test1 index.jsp" 上传到版本库
120 git push origin master 上传到版本库

Jenkins服务器免密登陆1.50,1.60
130 ssh-copy-id [email protected]
131 ssh-copy-id root[email protected]
132 ssh 192.168.1.50
133 ssh 192.168.1.60

在web界面上运程仓库看一下

在jdk上安装or回滚插件
系统管理----全局工具配置---Maven安装---取消自动安装
JDK安装---取消自动安装


安装成功

新建任务---构建一-个maven项 目名称为web- tomcat----参数化构建过程-- -添加参数- -选项参数---名称Status
选项Deploy
RollBack
描述: ----请选择发布or回滚----需要填写commit id号 -
选项参数---名称deploy
选项test
stag
描述: ----请选择构建环境
文本参数---名称git
描述:请输入git commit id号
源码管理: git---Repositories---- Repository URL
[email protected] 168.83.3: web/web-demo.git
Branches to build----Branch Specifier (blank for ‘any‘ )---${git}
构建环境---勾选--Color ANSI Console 0utput
Build:
Goals and options----clean package -Dmaven. test. skip-true .
Post Steps --执行shell--编写脚本







clean package -Dmaven.test.skip=true


##Deploy tomcat

war_bak="/data/war/bak"
tomcat_deploy="/usr/local/tomcat/webapps"
#WAR_PATH="${WORKSPACE}/${MODULE_NAME}/target/.war"
WAR_PATH="${WORKSPACE}/target/
.war"

test_host="192.168.1.50"
stag_host="192.168.1.60"
port="8080"

echo "构建环境:${deploy} 项目名称:${JOB_NAME} 构建时间:date +%F 本次上线版本:${GIT_COMMIT}" >> /var/log/${JOB_NAME}.log

status deploy or rollback

##判断git是否为空,如果是为空进行提示
if [ "${git}" = "" ];then

echo "请输入git版本 #############"
exit 1

else

判断发布 or 回滚

if [ "${Status}" = "Deploy" ];then

判断是否为测试环境

if [ "${deploy}" = "test" ];then
        ### 构建主机
           for i in ${test_host}
             do
           ssh ${i} "mkdir -p ${war_bak}/${JOB_NAME}/${git}"
             scp ${WAR_PATH} ${i}:${war_bak}/${JOB_NAME}/${git}/ROOT.war
             ssh ${i} rm -rf ${tomcat_deploy}/*
             ssh ${i} cp ${war_bak}/${JOB_NAME}/${git}/ROOT.war ${tomcat_deploy}
             ssh ${i} /etc/init.d/tomcat  restart
      ### 判断tomcat是否正常
                 for http in `seq 1 5`
               do
                    tomcat_status=`curl -I ${i}:${port} -s|awk -F "[ ]" ‘{print $2}‘ |sed -n ‘1p‘`
                if  [[ "$tomcat_status" -ne 200 ]] || [[ "$tomcat_status" = "" ]];then
                    echo -e "\033[5;34m 请稍等,服务启动中........ \033[0m"
                          sleep 5
                  else
                    echo -e "\033[5;34m 构建 ${i}环境发布正常,返回值[${tomcat_status}] \033[0m"
                          break
                  fi
              done

                  if [[ "${tomcat_status}" -ne 200 ]] || [[ "${tomcat_status}" = "" ]];then
                      if [[ "${tomcat_status}" = "" ]];then
                  echo -e "\033[5;34m 构建 ${i}服务启动异常 \033[0m"
                  exit 1
                      fi
                    echo -e "\033[5;34m 构建 ${i}环境发布异常,返回值[${tomcat_status}] \033[0m"
                fi
          done
            echo -e "\033[5;34m 本次构建${test_host}主机,本次环境 ${deploy} \033[0m"

判断为预发布环境

elif [ "${deploy}" = "stag" ];then
           for i in "${stag_host}"
             do
           ssh ${i} mkdir -p ${war_bak}/${JOB_NAME}/${git}
             scp ${WAR_PATH} ${i}:${war_bak}/${JOB_NAME}/${git}/ROOT.war
             ssh ${i} rm -rf ${tomcat_deploy}/*
             ssh ${i} cp ${war_bak}/${JOB_NAME}/${git}/ROOT.war ${tomcat_deploy}
             ssh ${i} /etc/init.d/tomcat restart
      ### 判断tomcat是否正常
                 for http in `seq 1 5`
               do
                    tomcat_status=`curl -I ${i}:${port} -s|awk -F "[ ]" ‘{print $2}‘ |sed -n ‘1p‘`
                if  [[ "$tomcat_status" -ne 200 ]] || [[ "$tomcat_status" = "" ]];then
                    echo -e "\033[5;34m 请稍等,服务启动中........ \033[0m"
                          sleep 5
                  else
                    echo -e "\033[5;34m 构建 ${i}环境发布正常,返回值[${tomcat_status}] \033[0m"
                          break
                  fi
              done

                  if [[ "${tomcat_status}" -ne 200 ]] || [[ "${tomcat_status}" = "" ]];then
                      if [[ "${tomcat_status}" = "" ]];then
                  echo -e "\033[5;34m 构建 ${i}服务启动异常 \033[0m"
                  exit 1
                    fi
                    echo -e "\033[5;34m 构建 ${i}环境发布异常,返回值[${tomcat_status}] \033[0m"
                fi
    done
           echo -e "\033[5;34m 本次构建${test_host}主机,本次环境 ${deploy} \033[0m"

fi

回滚操作

elif [[ "${Status}" = "RollBack" ]];then

判断回滚环境及主机

        if [ "${deploy}" = "test" ];then
          for i in ${test_host}
          do
             ssh ${i}  "[ -d ${war_bak}/${JOB_NAME}/${git} ]"
                  if [ $? -ne ‘0‘ ];then
                        echo -e "\033[5;34m  git commit 回滚目录不存在,环境${deploy} 错误主机${i} \033[0m"
                        exit 3
                    else
                        echo -e "\033[5;34m  准备回滚操作  本次回滚环境${deploy} 回滚主机${i} \033[0m"
                        sleep 3
                  fi
             ssh ${i}  "mkdir -p ${war_bak}/${JOB_NAME}/${git}_${Status}_rollback/"
             ssh ${i}  "cp -r ${tomcat_deploy}/* ${war_bak}/${JOB_NAME}/${git}_${Status}_rollback/"
             ssh ${i}  "rm -rf ${tomcat_deploy}/*"
             ssh ${i} "cp -r ${war_bak}/${JOB_NAME}/${git}/*.war ${tomcat_deploy}/"
             ssh ${i} /etc/init.d/tomcat  restart
               ### 判断tomcat是否正常
          for http in `seq 1 5`
          do
             tomcat_status=`curl -I ${i}:${port} -s|awk -F "[ ]" ‘{print $2}‘ |sed -n ‘1p‘`
             if  [[ "$tomcat_status" -ne 200 ]] || [[ "$tomcat_status" = "" ]];then
                    echo -e "\033[5;34m 请稍等,服务启动中........ \033[0m"
                    sleep 5
             else
                    echo -e "\033[5;34m 构建 ${i}环境发布正常,返回值[${tomcat_status}] \033[0m"
                    break
             fi
          done

              if [[ "${tomcat_status}" -ne 200 ]] || [[ "${tomcat_status}" = "" ]];then
                if [[ "${tomcat_status}" = "" ]];then
                  echo -e "\033[5;34m 构建 ${i}服务启动异常 \033[0m"
                  exit 1
                fi
                  echo -e "\033[5;34m 构建 ${i}环境发布异常,返回值[${tomcat_status}] \033[0m"
             fi
          done

        elif [ "${deploy}" = "stag" ];then
          echo "123"
        ### 判断测试环境fi结束
        fi

fi

fi是判断是否有git地址的结束

fi

1.50,1.60
搭建tomcat环境

19 cd /usr/src/
20 mkdir tomcat
21 cd tomcat/
22 rz 上传tomcat安装包
安装tomcat
24 tar zxf apache-tomcat-8.5.35.tar.gz
25 mv apache-tomcat-8.5.35 /usr/local/tomcat 移动tomcat配置文件
26 mv tomcat /etc/init.d/ 添加一个tomcat启动脚本到/etc/init.d
32 chmod +x /etc/init.d/tomcat 给启动脚本一个可执行权限
33 /etc/init.d/tomcat start 启动tomcat
34 netstat -anpt | grep 8080

35 scp /etc/init.d/tomcat [email protected]:/etc/init.d/ 复制tomcat启动文件到1.50和1.60
36 scp -r /usr/local/tomcat [email protected]:/usr/local/tomcat/ 复制tomcat配置文件到1.50和1.60

1.60
13 /etc/init.d/tomcat start
14 netstat -anpt | grep 8080

测试一下

浏览器查看192.168.1.50:8080






浏览器查看192.168.1.60:8080







原文地址:https://blog.51cto.com/14320361/2451882

时间: 2024-07-31 07:08:27

jenkins服务器免密登录tomcat jenkins发布or回滚插件的相关文章

服务器免密登录

由于有多台服务器,每次登录还需要 去找对应的服务器地址,然后输入密码,为了避免麻烦,就使用了免密登录. 普通登录方式: ssh -p 22 [email protected] 每次登录还需要输入密码,比较麻烦 更换免密码登录: 本地操作: 本地的公钥位置: ~/.ssh/id_rsa.pub ~/.ssh目录下创建一个config文件, 文件内容如下: Host yux (任意名称,方便以后登录)User root 用户名HostName 120.79.155.201 Port 26580 服务

Linux 服务器免密登录

1:首先在Linux系统下创建RSA公钥和私钥:ssh-keygen -t rsa ,创建完成后会在/root/.ssh 下生成id_rsa文件 2:然后将id_rsa.pub 文件修改成authorized.keys ,里面存放客户端的公钥. 3:修改 /etc/ssh/sshd_config文件,指定授权公钥文件所在的位置,关闭root用户密码登录功能,开启公钥登录功能. #说明是否允许root用户登录 PermitRootLogin yes #是否是rsa认证 RSAAuthenticat

Centos6 做服务器间免密登录

今天收到一个需求,开通6台服务器,服务器之间做免密登录. 所有服务器的统一配置:1-3 1.修改hosts文件,把所有服务器的hostname命和ip地址对应写到/etc/hosts 里面.10.1.1.1 ip-10-1-1-110.1.1.2 ip-10-1-1-2 2.修改/etc/ssh/sshd_conf#>vi /etc/ssh/sshd_config??????? 找到以下内容,并去掉注释符"#" RSAAuthentication yes PubkeyAuthen

ssh免密登录linux服务器

Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁.两者匹配时,系统无需密码就能解除锁定. 官方维护文档:https://www.ssh.com/ssh/ 参考文档:https://www.cnblogs.com/ioveNature/p/7919115.html https://www.cnblogs.com

Linux服务器在SSH客户端如何实现免密登录

一.SSH客户端Setting 配置 key ,  创建生成公钥导出文件. 二.服务器 master 上生成密钥 通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥. ssh-keygen -t rsa 执行上面的命令时,我们直接按三次回车,之后会在用户的根目录下生成一个 3个 的文件夹. cd .ssh查看改目录. authorized_keys id_rsa id_rsa.pub known_hosts cd .ssh 三.远程密钥登录 这里介绍最常用的三种方式,一是通过

多台服务器-SSH免密登录设置

在4台服务器-SSH免密登录设置,如以下4台服务器 master1 node001 node002 node003 我想在master1对4台服务器进行拉取或者分发任务或者是集群服务器的批量操作,但是每次都要输出密码,这个过程比较影响操作效率??? 以下给出解决方法---->设置密钥验证 密钥验证流程如图 原理: 即在源服务器上先生成一份公钥和一份密钥,将公钥复制到目标服务器,利用命令将公钥添加至目标服务器的授权列表(authorized_keys).当有服务器带着公钥申请连接服务器时,目标服务

两个linux服务器之间免密登录

服务器A(假设为10.64.104.11) 免密登录服务器B(10.64.104.22) 1.登录服务器A 2.生成公私钥 ssh-keygen -t rsa 3.将生成的.pub文件发送到服务器B上 ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 4.登录服务器B ssh [email protected] 原文地址:https://www.cnblogs.com/wang666/p/11690992.html

【Linux】两台服务器ssh免密登录

背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备:  服务器A  linux   ip: 192.168.1.1 服务器B  linux  ip: 192.168.1.2 第一步: 在服务器A 上 ,使用以下命令 生成秘钥 出现冒号(:)回车即可,要按三次回车.如果出现(yes/no)输入yes ssh-keygen -t rsa 红色标注部分就是 文件保存的路径 第二步: 在服务器A上 输入命令,指向服务器B的IP地址,用root账户 ssh-copy-id -

中小企业openstack私有云布署实践【11.3 计算nova - compute节点-nova用户免密登录(用于云主机冷迁移+扩展云主机大小)】

云主机迁移+扩展云主机大小 ,官方说它依赖nova用户之间的免密登录.确保每个resion区域的compute节点服务器他们可以相互SSH免密 compute1-7     他们相互SSH免密 kxcompute1-9  他们相互SSH免密 1.注意!是每台机器上的nova用户向另一台机器的nova用户的免密登录 每台compute节点修改ssh配置,目的是为了不让其提示输入yes保存密钥 vi /etc/ssh/ssh_config 尾部添加 StrictHostKeyChecking no