我们使用 Jenkins 部署服务之前要先配置我们的目标服务器,配置目标服务器也很简单,就是将服务器的 IP、账号密码或者账号密钥配置在 Jenkins中。在演示服务器配置之前我们要先知道 Linux 系统中的用户和用户组,最主要的要知道怎么创建用户。

下面我们将介绍如何在 Linux 系统中创建用户,以及如何将用户添加到组,我们还将展示如何从组中删除用户以及如何创建,删除和列出组。要向一个群组添加用户,我们要以具有 sudo 访问权限或 root 用户身份登录。Linux 组是组织单位,用于组织和管理 Linux 中的用户帐户。组的主要目的是定义一组特权,例如对给定资源的读取,写入或执行权限,这些特权可以在组内的用户之间共享。

Linux 操作系统中有两种类型的组:主要组——用户创建文件时,文件的组将设置为用户的主要组。通常,组的名称与用户的名称相同。有关用户的主要组的信息存储在 /etc/passwd 文件中。次要或补充组——在希望向某个用户授予某些文件权限时很有用属于该组成员的一组用户。例如,如果将特定用户添加到 docker 组,则该用户将继承该组的访问权限,并且将能够运行 docker 命令。每个用户可以完全属于一个主要组,零个或多个次要组。

涉及到的命令如下:

# 将用户附加到某个组
$ sudo usermod -a -G groupname username # 将用户添加到新组时,尽量始终使用 -a(附加)开关。
# 如果省略 -a 开关,则该用户将从 -G 开关之后未列出的任何组中删除。 # 将用户添加到多个组,组名以英文逗号分割
$ sudo usermod -a -G groupname1,groupname2 username # 将用户从某个组中删除
$ sudo gpasswd -d username groupname # 创建新的组
$ sudo groupadd groupname # 删除现有的组
$ sudo groupdel groupname # 更改用户的主要组
$ sudo usermod -g groupname username # 创建用户时同时分配到组
# 创建一个名为tony的新用户,主要组为users,辅助组为wheel和docker
$ sudo useradd -g users -G wheel,docker tony # 设置用户登录密码,根据提示两次输入密码
$ sudo passwd username # 查看用户组相关信息,如果不加用户名则显示当前用户的信息
$ id username
# 或者
$ groups username

我这里在自己分服务器上创建了一个 maintainer 运维用户,同时把这个用户添加到 docker 组和 wheel 组,同时我还将该用户设置成可以采用密钥的方式登录。涉及到的操作命令如下:

# 创建用户并加入到组
$ sudo useradd -g users -G wheel,docker maintainer # 设置登录密码
$ sudo passwd maintainer # 以maintainer用户登录后创建登录密钥
# 以下命令执行后会有交互输入内容,或者一直敲回车键默认即可
$ ssh-keygen -t rsa -b 2048 -v



如果你想用同一个密钥文件登录不同的服务器,则需要将公钥文件复制到其他服务器的用户目录的 .ssh 目录中,操作命令如下:

# 前提是确保其他服务器上要先存在该用户
$ ssh-copy-id -i maintainer.pub maintainer@192.168.31.111

服务器上的用户设置好后就去到 Jenkins 的【系统管理】→ 【系统设置】里面的最下面的【SSH Servers】设置选项处。





点击【新增】,添加服务器配置,填好对应信息:



在【高级】设置里面,勾选上【Use password authentication, or use a different key】,设置我们的登录密码:



其他设置默认即可,点击【Test Configuration】测试以下是否正常,提示 Success 表示成功。



我们设置一台以密钥方式登录的服务器,在【SSH Servers】上面的【Publish over SSH】处配置我们统一的密钥,当然每台服务器可以用不同的密钥,我这里为了方便统一管理,使用相同一个密钥。这里Key的内容就是前面创建密钥的密钥:

/home/maintainer/.ssh/maintainer 文件的内容。



继续【新增】一个以密钥登录的服务器配置,这里只设置服务器的名称、IP 和用户名就行了,测试一下,密钥登录方式也是正常的。

Jenkins 基础篇 - Server 配置的更多相关文章

  1. Jenkins 基础篇-凭证配置

    我们在正式开始使用 Jenkins 之前还要先配置一些凭证,这些凭证的作用主要是用于认证,例如我们要从代码仓库拉取代码,就需要用到代码仓库的账号密码或者密钥:我们要登录远程服务器也需要用户名密码或者密 ...

  2. Jenkins: 基础篇(环境配置)

    自动化领域比较有影响力的开源框架jenkins,确实比较强大,易用.很多公司将其用来做持续即成CI(continuous integration).为了拓展和强化自己的软件设计生态系统,也将很久前使用 ...

  3. Jenkins 基础篇 - 插件安装

    这一小节主要介绍 Jenkins 插件的安装,登录到 Jenkins 后,依次进入到[系统管理]→ [插件管理]→ [可选插件],在这里可以看到所有的 Jenkins 插件,如下图: 我们在最开始安装 ...

  4. Jenkins 基础篇 - 任务创建

    前面了解了 Jenkins 上各种任务的区别后,我们就来实践应用下,先创建一个[文件夹]类型的任务,将我们目前的一些基础的演示任务[移动]到文件夹里面去,这样可以先做个简单的分类. 新建一个[文件夹] ...

  5. Jenkins 基础篇 - 小试牛刀

    现在我们来创建一个简单的 Jenkins 任务,这个任务输出 Java 版本信息和系统信息,通过这个任务我们先了解创建 Jenkins 任务的流程,以及了解一些对任务的基础设置,接下来就是演示任务的整 ...

  6. Jenkins 基础篇 - 环境准备

    前期准备 为了开发这套课程,我专门购买了一台二手戴尔服务器 Dell R720,同时把废弃多年的笔记本电脑也利用了起来.当然如果自己没有多余的电脑,也可以在自己电脑上安装 Vmware Worksta ...

  7. Jenkins 基础篇 - 安装部署

    Jenkins 安装 Jenkins 支持主流的 Linux 发行版系统,同时还支持 macOS.Windows.和 Docker 运行. 具体系统的 Jenkins 安装包可以去官网下载 https ...

  8. Jenkins 基础篇 - 基础设置

    站点设置 刚搭建好 Jenkins 环境,你还需要做一些简单设置,让我们的 Jenkins 看起来是这么一回事,特别是你要用于生产环境的时候.首先就是域名配置,如果你为 Jenkins 服务分配了一个 ...

  9. Jenkins 基础篇 - 任务分类

    从前面的小节中我们看到在创建 Jenkins 任务的时候有好几种类型,如果你专门安装了 Maven 相关插件,可能还会有一个[构建一个 maven 项目]的任务类型,那这些任务类型究竟有何区别,以及我 ...

随机推荐

  1. 设计模式——从工厂方法模式到 IOC/DI思想

    回顾简单工厂 回顾:从接口的角度去理解简单工厂模式 前面说到了简单工厂的本质是选择实现,说白了是由一个专门的类去负责生产我们所需要的对象,从而将对象的创建从代码中剥离出来,实现松耦合.我们来看一个例子 ...

  2. python函数之有参装饰器

    一.为什么要有有参装饰器? 来看之前的无参装饰器 # 无参装饰器 def outter(func): def wrapper(*args,**kwargs): start = time.time() ...

  3. vue全局错误捕获

    1.errorHandler Vue全局配置 errorHandler可以进行全局错误收集,捕获全局错误抛出,避免前端页面挂掉   export default function errorHandl ...

  4. 移动文件--mv

    mv file  srcpath 将文件移动到指定目录下 mv dir srcpath  将文件移动到指定目录下

  5. (5)MySQL进阶篇SQL优化(优化数据库对象)

    1.概述 在数据库设计过程中,用户可能会经常遇到这种问题:是否应该把所有表都按照第三范式来设计?表里面的字段到底改设置为多大长度合适?这些问题虽然很小,但是如果设计不当则可能会给将来的应用带来很多的性 ...

  6. [树形DP]战略游戏

    战 略 游 戏 战略游戏 战略游戏 题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题.他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上 ...

  7. 机器学习--PR曲线, ROC曲线

    在机器学习领域,如果把Accuracy作为衡量模型性能好坏的唯一指标,可能会使我们对模型性能产生误解,尤其是当我们模型输出值是一个概率值时,更不适宜只采取Accuracy作为衡量模型性泛化能的指标.这 ...

  8. Spring Boot demo系列(九):Jasypt

    2021.2.24 更新 1 概述 Jasypt是一个加密库,Github上有一个集成了Jasypt的Spring Boot库,叫jasypt-spring-boot,本文演示了如何使用该库对配置文件 ...

  9. JAVAEE_Servlet_09_Adapter适配器GenericServlet

    适配器 GenericServlet * 适配器 (Adapter) - 适配器的作用? 1.我们目前所有的Servlet类都直接实现了javax.servlet.Servlet接口,但是该接口中有些 ...

  10. Nginx 负载均衡方案

    轮询 根据Nginx配置文件中的顺序,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除. upstream web { server server1; serve ...