美文网首页
Azure 搭建 pipeline

Azure 搭建 pipeline

作者: Huld多 | 来源:发表于2020-02-11 17:44 被阅读0次

    在本章中,将介绍3种Azure去搭建不同的pipeline的策略和具体的搭建流程,Azure Pipeline搭建,自己搭建Pipeline以及各种策略的优劣。

    前提

    部署的服务器是Azure VM或者是AKS。如果想用AWS部署,然后在Azure上搭建Pipeline,请关掉该页面。

    Azure Pipeline Microsoft-hosted 模式

    简介

    Azure Pipeline中创建的各个pipeline中使用的构建机器都是由微软提供的,当创建单个pipeline的时候,Azure Pipeline就会基于你的源码给出对应的angent配置,用户可以自行修改。pipeline用于构建的agent可能是虚拟机也可能是Docker启动的,对客户来说是完全透明的,不需要客户去维护这个agent。

    搭建流程

    • 登录Azure Devops服务
      Azure Devops
    • 创建pipeline 创建Pipeline
    • 修改Azure Pipeline的构建文件 构建文件

    微软提供的Agent列表

    Image Classic Editor Agent Specification YAML VM Image Label Included Software
    Windows Server 2019 with Visual Studio 2019 windows-2019 windows-latest OR windows-2019 Link
    Windows Server 2016 with Visual Studio 2017 vs2017-win2016 vs2017-win2016 Link
    Ubuntu 18.04 ubuntu-18.04 ubuntu-latest OR ubuntu-18.04 Link
    Ubuntu 16.04 ubuntu-16.04 ubuntu-16.04 Link
    macOS X Mojave 10.14 macOS-10.14 macOS-latest OR macOS-10.14 Link
    macOS X Catalina 10.15 macOS-10.15 macOS-10.15 Link

    价格

    • 第一条流水线免费 30小时/月(也就是说,按照955来算,每天构建+部署时间不能超过1.5小时)
    • 每增加一条新流水线 310.40港币/月

    Azure Pipeline Self-hosted 模式

    简介

    pipeline使用的agen是自己持有的,可以为Azure Pipeline添加自己agent进行构建,用于构建新的pipeline。用户需要自己维护构建机器的信息。

    搭建流程

    • 配置agent,主要分为三大步骤

      • 在Azure Devops平台设置访问权限
      • 从Azure Devops平台下载agent,并在目标机器上配置agent
      • 启动agent
        详细步骤
    • 创建Pipeline,步骤和上面Microsoft-hosted模式是一样的。在yaml文件中设置pool时,使用自己配置的agent

    pool:
      name: 'MyAgentPool'
      demands:
        - npm
    ...
    

    价格

    • 第一条流水线免费,并且想跑多久就跑多久(毕竟不一定是Azure的机器)。
    • 每增加一条,116.40港币/月,比Microsoft-hosted模式便宜了一半!

    Azure VM Jenkins模式

    简介

    该模式将Jenkins安装在Azure VM上。需要自己去配置Jenkins,也要自己去写Jenkinsfile,并且自己去集成部署。

    搭建流程

    • 在Azure市场中找到Jenkins的方案 Jenkins
    • 创建安装了Jenkins的虚拟机。在创建过程中可以用“用户名/密码”的方式也可以用“SSH公钥”的方式登录服务器。推荐使用“SSH公钥”的方式,这样不用每次都输入密码,方便。 创建Jenkins
    • 安装完成后,可以在刚刚创建时填入的资源组中找到Jenkins的相关资源,并找到“公共 IP 地址”资源,查看外网IP,可以通过http://外网IP 访问Jenkins的主页。 Jenkins主页
    • 为了保证网络安全,Jenkins默认是不允许HTTP协议访问的。如果想配置服务,需要使用网页上提示的ssh -L xxx命令去登录到申请的虚拟机上。然后就可以正常配置Jenkins的admin用户信息,下载Jenkins的插件了。
    • 如果希望使用HTTP的方式访问Jenkins。可以修改服务器上的nginx配置。将/signup 相关的url都禁用掉,这样外网用户就不能够自己创建Jenkins用户了。
      修改~/etc/nginx/sites-enabled/default文件
    server {
        listen 80;
        server_name xxx.southeastasia.cloudapp.azure.com;
        error_page 403 /jenkins-on-azure;
        location / {
            proxy_set_header        Host $host:$server_port;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
    
    
            proxy_pass          http://localhost:8080;
            proxy_redirect      http://localhost:8080 http://xxx.southeastasia.cloudapp.azure.com;
            proxy_read_timeout  90;
        }
        location ~ /signup* {
            rewrite ^ /jenkins-on-azure permanent;
        }
        location /jenkins-on-azure {
          alias /usr/share/nginx/azure;
        }
    }
    
    • 配置Jenkins的用户策略 安全配置
    • 当Jenkins构建时,可能需要用到一些脚本命令,如果在不使用docker agent的情况下,可以使用以下命令来去掉sudo。
    sudo groupadd $CMD
    sudo usermod -aG $CMD $USER
    

    总结一波

    模式 优点 缺点 备注
    Azure Pipeline Microsoft-hosted 一键创建,简单,快捷 价格高,按分钟收费 不差钱的请使用
    Azure Pipeline Self-hosted 自持有的Agent比较便宜。 需要自己配置Agent,维护Agent的环境 有一定的运维能力的团队可以使用
    Azure VM Jenkins 便宜,灵活度高,依赖较少,出了问题可以自己解决 需要自己去做集成,人力成本高 有较高运维能力团队适用,或者预算有限的团队比较适合

    参考资料

    原文链接https://huldoo.com/2020/02/16/azure-%e6%90%ad%e5%bb%ba-pipeline/

    相关文章

      网友评论

          本文标题:Azure 搭建 pipeline

          本文链接:https://www.haomeiwen.com/subject/mqmxfhtx.html