我们使用 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. 用DeBug的方式,带你掌握HBase文件在Snapshot的各种变化

    摘要:掌握Snapshot可以帮助我们很好的完成HBase数据备份和数据迁移的工作. 简介 HBase的Snapshot功能可以在不复制数据的情况下,快速克隆一张表,完成一次数据备份.通过Snapsh ...

  2. [二分匹配]Asteroids

    A s t e r o i d s Asteroids Asteroids 题目描述 Bessie wants to navigate her spaceship through a dangerou ...

  3. windows认证解读

    0x00 本地认证 本地认证基础知识 在本地登录Windows的情况下,操作系统会使用用户输入的密码作为凭证去与系统中的密码进行验证,但是操作系统中的密码存储在哪里呢? %SystemRoot%\sy ...

  4. “知疫”疫情防控可视化平台——NABCD分析

    "知疫"疫情防控可视化平台 项目 内容 这个作业属于那个课程 2021春季学期软件工程(罗杰.任健) 这个作业的要求在哪里 初次邂逅,需求分析 1 NABCD分析 NEED 目前多 ...

  5. 迷宫问题(BFS)

    给定一个n* m大小的迷宫,其中* 代表不可通过的墙壁,而"."代表平地,S表示起点,T代表终点.移动过程中,如果当前位置是(x, y)(下标从0开始),且每次只能前往上下左右.( ...

  6. 一个诡异的MySQL查询超时问题,居然隐藏着存在了两年的BUG

    这一周线上碰到一个诡异的BUG. 线上有个定时任务,这个任务需要查询一个表几天范围内的一些数据做一些处理,每隔十分钟执行一次,直至成功. 通过日志发现,从凌晨5:26分开始到5:56任务执行了三次,三 ...

  7. pytorch从入门到放弃(目录)

    目录 前置基础 Pytorch从入门到放弃 推荐阅读 前置基础 Python从入门到放弃(目录) 人工智能(目录) Pytorch从入门到放弃 01_pytorch和tensorflow的区别 02_ ...

  8. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博 ...

  9. Go-16-map

    map的value可以是任何数据类型.map和切片一样,也是一种引用类型. map声明: (1)使用var关键字定义map var 变量名 map[key类型] value 类型 (2)使用make( ...

  10. 多图详解 TCP 连接管理,太全了!!!

    TCP 是一种面向连接的单播协议,在 TCP 中,并不存在多播.广播的这种行为,因为 TCP 报文段中能明确发送方和接受方的 IP 地址. 在发送数据前,相互通信的双方(即发送方和接受方)需要建立一条 ...