• Azure DevOps (六) 通过FTP上传流水线制品到Linux服务器


    上一篇我们实现了把流水线的制品保存到azure的流水线制品仓库里去,本篇我们会开始研究azure的发布流水线。

    文章配套视频专栏:

    https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536

    本篇要研究的是把流水线仓库的制品发布到任意一台公网的linux服务器上去,所以我们先研究FTP和流水线的联动。

    首先我们需要创建一条发布流水线,点击左侧的Releases,创建新的流水线,选择我们在前几篇文章中发布到仓库的制品。

     

    创建好流水线后,点击Stages添加第一个步骤,这里我们选择Empty Job,填入一下基础的信息,然后点击我们创建好的步骤进行任务的编辑,

    进来之后azure会默认给我们添加了一个agent,我们可以理解为agent就是我们的执行器,他会去帮我执行接下来我们定义的各种自动化任务,

    因为我们的目的是要执行linux的命令并且上传文件到linux服务器上,所以我们要选择agent的类型为ubantu.

     

     

     

     agent设置好之后,我们接下来创建两个task,他们的作用分别为:

    1.查看从流水线仓库下载过来的制品是否正确。

    2.使用Ftp上传到一个公网的服务器上去。

    首先创建第一个task,我们点击agent上的加号,在右侧搜索bash,点击add,添加一个bash操作到我们的流水线上。

     

     

     

    然后我们选中Bash选择模式为online,然后在里面写一些简单的脚本来查看我们的流水线制品。

     

     

    然后我们添加第二个task,我们在右侧搜索FTP

     

     

     然后填写一下FTP的信息, 这里Authentication Method我们选择输入验证,然后填入我们的FTP信息,注意URL要带上ftp://

    rootFolder是我们制品所在的位置,Remote directory是我们要上传到服务器的哪个文件夹上去,$(Build.BuildId)这个环境变量记录的是编译的id我们可以使用它让每次的上传都新建一个文件夹。

     

     

     填写好之后保存并一下我们的发布流水线,这里顺道贴一下FTP的安装命令

    复制代码
    1、查看是否已经安装了vsftpd
    vsftpd -version
    
    2、安装vsftpd(CentOS7)
    yum install -y vsftpd
    
    3.创建一个目录
    mkdor /home/ftp
    
    4.授权
    chmod 777 /home/ftp
    
    5.创建用户
    useradd -d /home/ftp -s /bin/bash  myftp
    
    6.设置密码
    passwd myftp 
    复制代码

    发布流水线创建好之后,我们稍微回去改造一下之前的编译流水线,毕竟总不能每次都把全量的代码传过去,我们让制品每次只上传编译出来的jar包。

    我们修改一下targetPath,指定到我们要上传的文件上去。

    - task: PublishPipelineArtifact@1
      inputs:
        targetPath: '$(Pipeline.Workspace)/s/webhook/target/demo-app.jar'
        artifact: 'webhook'
        publishLocation: 'pipeline'

    接下来运行一下我们的流水线,点击Create a new release,然后进入就会看见已经开始运行了。

     

    点击logs,我们可以看到,流水线已经开始把制品上传到了服务器,我们同时去服务器上验证一下上传的结果

    我们先看一下我们的第一个bash的输出结果

     

    再看一下我们ftp的输出结果

     

     然后去服务器上看一下目录上有没有对应的文件

     

     

     上传成功,完美。

    到这里打通流水线和FTP就结束了,虽然文章看着很短,但是中间采坑的过程很长,不过摸着过来了就好,下一篇我们会继续研究azure的功能。

     

  • 相关阅读:
    Invertible Image Signal Processing 可逆图像信号处理
    js如何实现开屏弹窗
    docker-部署 redis 主从复制(一主,一从)tag:redis:6.2.6
    PY32F003F18之输入捕获
    【leetcode】【剑指offer Ⅱ】053. 二叉搜索树中的中序后继
    举个栗子~Tableau 技巧(235):用「小提琴图 Violin Plot」 呈现盒须图的数据密集度
    产业互联网的商业模式并非平台模式这么简单
    如何启用 Podman 的自动容器更新
    Tensorflow笔记(二)
    从1到100这100个自然数中任取10个数,使他们的倒数和等于1。这10个数分别是多少?
  • 原文地址:https://www.cnblogs.com/Tassdar/p/16049609.html