coding持续集成

先看看官网的一些操作提示

1、创建SSH密钥对

2、创建制品仓库 

看完官网的介绍,持续集成需要提前准备好SSH凭证和制品仓库,下面将让我们动手开始吧 

 一、创建SSH密钥对

 登录服务器控制台,创建 SSH 密钥对。获取私钥对后将其录入至 CODING 中的 凭据管理 中,将公钥 id_rsa.pub 的内容复制到服务器的 ~/.ssh/authorized_keys 中。

ssh-keygen -m PEM -t rsa -b 4096 -C "your.email@example.com" 

 

 二、录入凭据--SSH私钥

创建好后将列表的凭据ID记录下来

 

 

三、 创建制品仓库 

创建好后将命令记录下来,里面包含了三个参数,用户名、密码、host

 

 

四、构建后端

 

 

 1、Pipeline 脚本

/opt/coding/  是我的云服务器jar包所在地,/opt/coding/ start.sh 是启动的脚本

def remoteConfig = [:]
remoteConfig.name = "my-remote-server"
remoteConfig.host = "${REMOTE_HOST}"
remoteConfig.port = "${REMOTE_SSH_PORT}".toInteger()
remoteConfig.allowAnyHosts = true

withCredentials([
  sshUserPrivateKey(
    credentialsId: "${REMOTE_CRED}",
    keyFileVariable: "privateKeyFilePath"
  ),
  usernamePassword(
    credentialsId: "${CODING_ARTIFACTS_CREDENTIALS_ID}",
    usernameVariable: 'CODING_DOCKER_REG_USERNAME',
    passwordVariable: 'CODING_DOCKER_REG_PASSWORD'
  )
]) {
  // SSH 登录用户名
  remoteConfig.user = "${REMOTE_USER_NAME}"
  // SSH 私钥文件地址
  remoteConfig.identityFile = privateKeyFilePath

  // 请确保远端环境中有 Docker 环境
  sshCommand(
    remote: remoteConfig,
    command: "docker login -u ${CODING_DOCKER_REG_USERNAME} -p ${CODING_DOCKER_REG_PASSWORD} ${CODING_DOCKER_REG_HOST}",
    sudo: true,
  )

  stage("推送文件") {
    sshPut remote: remoteConfig, from: "target/monkey.jar" , into: '/opt/coding/'
  }

  sshCommand(
    remote: remoteConfig,
    command: "sh /opt/coding/start.sh",
    sudo: true,
  )

  echo "部署成功"
}

2、环境变量

 

 3、云服务器配置

# Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD monkey.jar docker-monkey.jar
ENTRYPOINT ["java","-Xms500m","-Xmx500m","-XX:MetaspaceSize=256m","-XX:MaxMetaspaceSize=500m", "-jar","/docker-monkey.jar"]
# start.sh
cd /opt/coding/
docker build -t monkey .
docker stop monkey | true
docker rm monkey | true
docker run -v /lanren312/docker-workspace/nginx/html/file/monkey/:/lanren312/docker-workspace/nginx/html/file/monkey/ -it -m 512M -p 9001:9001 \
--restart always -d --name=monkey monkey:latest

   配置完成后,点击 立即构建,稍等一会就可以看到构建成功,当你修改代码提交到仓库,coding的持续集成就会自动同步代码,不用再去手动同步代码了。

 五、构建前端

1、Pipeline 脚本 

 将前端打包的文件 /monkey  拷贝到了 /lanren312/docker-workspace/nginx/html/ 目录下 

def remoteConfig = [:]
remoteConfig.name = "my-remote-server"
remoteConfig.host = "${REMOTE_HOST}"
remoteConfig.allowAnyHosts = true

withCredentials([
  sshUserPrivateKey(
    credentialsId: "${REMOTE_CRED}",
    keyFileVariable: "privateKeyFilePath"
  ),
  usernamePassword(
    credentialsId: "${CODING_ARTIFACTS_CREDENTIALS_ID}",
    usernameVariable: 'CODING_DOCKER_REG_USERNAME',
    passwordVariable: 'CODING_DOCKER_REG_PASSWORD'
  )
]) {
  // SSH 登陆用户名
  remoteConfig.user = "${REMOTE_USER_NAME}"
  // SSH 私钥文件地址
  remoteConfig.identityFile = privateKeyFilePath

  // 删除文件 ps: 这个是后面加的..
  sshCommand remote: remoteConfig, command: "rm -rf /lanren312/docker-workspace/nginx/html/monkey"

  stage("推送文件") {
    sshPut remote: remoteConfig, from: "./monkey" , into: '/lanren312/docker-workspace/nginx/html/'
  }
  echo "部署成功"
}

六、记录构建中碰到的问题

1、后端

 

 提交工单,客服回复 “Auth fail是ssh密钥认证失败,麻烦本地检查一下密钥是否能够正常连接到目标服务器”,后发现公钥 id_rsa.pub 的内容复制到服务器的 ~/.ssh/authorized_keys 中时不一致导致,复制要仔细哦

2、前端

持续构建,发现云服务上的文件时间没有更新,其实内容是更新了的。

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值