写在前面

大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群。个中区别,不言而喻,形象生动。

前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣):

1、普通直接部署(Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署)、

2、docker部署(Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署)、

3、jenkins+docker自动化部署(Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署,以上的安装及部署,都只涉及一台机,现在在单机环境上都没问题了,那么:

而实际开发、生产使用中,我们一个Asp.net Core 应用一般需要部署到多台机器也就是集群部署,我们怎么做呢?每台机都安装一台jenkins?

我们这篇,就解决这个问题。

运行环境

centos:7.2
cpu:1核 2G内存 1M带宽

Jenkins ver. 2.150.1

一台安装jenkins的机器,作为Master,一台安装jenkins节点Agent的机器,作为Slave。

节点不需要安装jenkins,节点的job是通过agent接受Master发送过来的指令和文件,执行对应的操作。

jenkins节点机器权限配置

比如上面我们提到,节点Job是通过Master发送指令和文件过去再执行的,而Master也要知道节点的各种信息,比如磁盘内存等信息。在那这里,就需要Master和节点能够互相通信,及有发送文件到远程的权限。

本文是通过配置SSH解决权限问题,SSH配置我单独写了这篇文章linux 远程ssh免密登录

添加jenkins节点

下面开始添加Jenkins节点

入口:系统管理->节点管理->添加节点

这里“固定节点”差不多是添加一个新节点的意思;

“Copy Existing Node” 是复制一个已存在的节点,我们这里选“固定节点”。

如果下次有新节点添加的时候,就可以选"Copy Existing Node" 了,因为现在还没有可以复制的节点。

节点配置

Name:节点名称,随便填
Description:节点描述,随便填

#of executors:并发执行构建数目,根据机器配置填,一般填cup核心数。我填2个

Remote root directory:远程构建工作目录
Labels:节点标签,简单点,随便填
Usage:节点使用策略,我选:只允许运行绑定到这台机器的Job
Launch method:启动节点方式,我选:Launch agent agents via SSH ,通过ssh方式启动(这里需要配置ssh,看请看jenkins节点机器权限配置 这部分)
Availability:可用性,我选:尽量保持代理在线

这里各个配置,大家不要纠结于一时,非要配置的时候弄清楚,可以先参考我的配置或其他同学的配置,用起来后,自然而言就理解了。

再补充一下:Launch method->Credentials:

点击“Add” 选择“Jenkins”

key:就是刚刚 jenkins节点机器权限配置 里面生成的:id_rsa

添加成功大概是这样的

(失败的话应该会红色的XX什么的,这里没有图)

节点列表:

这里可以实时看到节点机器的一些信息

开始部署

哈哈哈,说的好像很有气势,终于到重头戏的感觉;

其实,部署很简单:

在Job的配置里面勾选“Restrict where this project can be run”,并填写节点的Label

配置好后再节点列表,点击:

就可以部署了。

至于节点机器环境,能不能跑你的程序,我这里用docker的,写好Dockerfile就ok了。

其他方式,理解jenkins模式后,也不难。

一个节点如此,多个节点皆然,晚安。

参考资料

https://blog.csdn.net/zhu_tianwei/article/details/68277374

https://www.cnblogs.com/stulzq/p/9297260.html

Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境的更多相关文章

  1. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署

    前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...

  2. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装

    2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...

  3. ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建

    在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...

  4. Linux-GitLab+Jenkins持续集成+自动化部署

    GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...

  5. [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)

    本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...

  6. .NET Core 从 Github到 Nuget 持续集成、部署

    一.前言 Nuget 作为一个.NET研发人员,我想你都不会陌生,他为我们提供非常方便的程序包管理,不管是版本,还是包的依赖都能轻松应对,可以说是我们的好助手.而 Nuget 除了官方nuget.or ...

  7. Docker学习-jenkins+github实现持续集成和部署

    上一篇介绍了docker环境搭建,本篇继续深入,结合jenkins利用docker-compose容器编排简单介绍下如何实现个人学习的持续集成/部署. 本篇学习曲线: 1.安装/运行jenkins容器 ...

  8. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(四):发布与回滚

    写在前面 我们以前windows跑.net Framework程序的时候,发布,自己乖乖的替换程序:备份,也是自己一个一个的重命名备份:回滚,发布遇到问题的回滚更是不用说了:运维很是怕我们 这些用wi ...

  9. CentOS 7 Gitlab+Jenkins持续集成+自动化部署

    基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...

随机推荐

  1. <算法图解>读书笔记:第1章 算法简介

    阅读书籍:[美]Aditya Bhargava◎著 袁国忠◎译.人民邮电出版社.<算法图解> 第1章 算法简介 1.2 二分查找 一般而言,对于包含n个元素的列表,用二分查找最多需要\(l ...

  2. 短网址API

    http://tao.tf/open/ API简介 API允许第三方自由调用URL缩短,基于text/json/jsonp/js模式,支持post.get提交. 支持缩短网址: 淘宝网(*.taoba ...

  3. EXCLE 导入 或 导出

    首先要引用 NPOI.dll   (可在网上下载!)//导入public void OnSubmit()        {            string path = Server.MapPat ...

  4. R语言grid包just参数如何just图形位置

    思路   grid的画图函数都含有just,但是just参数的是怎么调节图形位置的总是让人非常费解,于是便写了代码来一探究竟.   思路非常简单:放一个2*2的布局viewport,每个布局里面放一个 ...

  5. 用cmd命令执行SQL脚本

    1.简单说明 osql 为SQL Server的命令 2.要在cmd中执行该命令,一般安装SQL Server后该命令对应的路径会自动添加到系统环境变量中. 3.-S 表示要连接的数据库 -U表示登录 ...

  6. Restful levels&HATEOAS

    RESTful: Rest是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等 ...

  7. HTML图片标签路径解析

    img标签中src属性表示的是引用的图片路径,有两种路径类型: 1. 绝对路径    2. 相对路径. 绝对路径:使用图片在硬盘上的绝对位置来访问图片,通常是从根目录开始,向下一个目录一个目录的寻找. ...

  8. db2数据库常见问题

    db2数据库不能轻易改变表结构,不然表会进入暂挂状态,造成表被锁住. 解锁表语句:call sysproc.admin_cmd('reorg table <table name>');

  9. 让MEF插上AOP的翅膀

    什么是MEF Git:https://github.com/MicrosoftArchive/mef MEF也是一款ioc框架,貌似历史比较悠久了. 这里有一篇.net阵容里面主流ioc比较. htt ...

  10. HBuilder git合作-代码同步

    1. 以下场景的操作都是同样的,包括:新建了文件.删除了文件.独占式修改文件(即不存在多人同时修改一个文件的情况) 提交 项目修改完成后,选中项目,右键Team->Commit 一般是选择Com ...