利用jekines进行批量部署(pipeline流水线模式)

利用jekines进行批量部署(pipeline流水线模式)

1.新建节点
(1)【Manage Jenkins】–> 【Manage Nodes and Clouds】
(2)填写节点名称及远程工作目录(/mnt)
2.启动节点服务器
(1)安装java环境
(2)下载agent.jar包
(3)在节点服务器将节点明细页面里的命令用nohup方式启动,例如
nohup java -jar agent.jar -jnlpUrl https://jenkins-dev.huafaih.com/computer/节点名/slave-agent.jnlp -workDir “/mnt” &
3.新建item
(1)【jenkins】 -->【新建item】–>【流水线】
(2)填写流水线,保存

pipeline {
  
   agent none
   
   environment { 
       M2_HOME = '/usr/local/apache-maven-3.5.4'
   }

   stages {
       stage('前端打包开始') {
         agent {
             node{
                 label 'xxzh-slave'
                 customWorkspace '/mnt/workspace/manager/web'
             }
         }
         steps {
            // Get some code from a GitHub repository
            git branch: 'master',
            credentialsId: 'git',
            url: 'https://gitlab.test.com/xxzh/test-web.git'
            sh 'npm install --unsafe-perm=true --allow-root'
            sh 'rm -rf ./dist/*'
            sh 'npm run build:stage'
            sh 'rm -rf ../api/manage/src/main/resources/static/app'
            sh 'mkdir -p ../api/manage/src/main/resources/static/app'
            sh 'cp -rf ./dist/* ../api/manage/src/main/resources/static/app'
            echo 'Build success1'
         }
      }

      stage('后台打包开始') {
         agent {
             node{
                 label 'xxzh-slave'
                 customWorkspace '/mnt/workspace/manager/api'
             }
         }
         steps {
            // Get some code from a GitHub repository
            git branch: 'master',
            credentialsId: 'git',
            url: 'https://gitlab.test.com/xxzh/test-manager.git'
            sh '${M2_HOME}/bin/mvn clean compile install -Dmaven.test.skip=true -P test -e'
            
            echo 'Build success2'
         }
      }

      stage('部署开始') {
          
         agent {
             node{
                 label 'xxzh-slave'
             }
         }
         steps {
         		//备份
            // 用ansible命令将节点服务器部署包上传至应用服务器
            sh 'ansible manager -i /mnt/hosts -m copy -a "src=/mnt/workspace/manager/api/manage/target/manage-0.0.1-SNAPSHOT.jar dest=/zhfi/opr/apps/manager"'
            sh 'ansible manager -i /mnt/hosts -m shell -a "systemctl restart manager" '
            echo '部署成功'
         }
      } 
   }
}

(3)使用ansible
1>下载安装:yum install ansible -y
2>新建ansible配置文件(/mnt目录下新建hosts文件):

[manager]
manager-01 ansible_connection=local
manager-02 ansible_ssh_host=xxx.xxx.xxx.xxx ansible_ssh_user=root ansible_ssh_pass=password

(4)设置开机启动
vim /etc/systemd/system/manager.service

[Unit]
Description=
Documentation=

[Service]
Type=simple
WorkingDirectory=/zhfi/opr/apps/manager
ExecStart=/usr/local/jdk1.8.0_251/bin/java -jar manage-0.0.1-SNAPSHOT.jar

Restart=always
RestartSec=30

#查看进程状态
systemctl status manager
#启动
systemctl restart manager
#修改后要重载
systemctl daemon-reload

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值