Open felix-cao opened 5 years ago
关于 Jenkins 的安装请阅读 Jenkins 安装配置及与 gitlab 集成(重点是端口修改和Jenkins系统用户配置)
Jenkins
192.168.1.200 Jenkins服务器,Linux 环境 192.168.1.201 Windows 主机,干活的, 账号为 admin
Linux
Windows
admin
场景:我们要实现 Jenkins 服务器去指挥 Windows 主机去干脏活累活!
登录 192.168.1.200 Jenkins 服务器,执行下面的命令
ssh-keygen -t rsa
三次回车
vi ~/.ssh/id_rsa
Manage Jenkins → Manage Credentials → global → Add Credentials 输入ID: Client, 请记住这个 ID 将在步骤 2.2 中复制的私钥填入Private Key 中, 点 OK 保存。
Manage Jenkins
Manage Credentials
global
Add Credentials
请记住这个 ID
Private Key
OK
点击左下角 WIN 图标, 设置(Settings) -> 应用(Apps) -> 应用和功能(Apps & features) -> 可选功能(Optional features) -> 添加功能(Add a feature)
WIN
Settings
Apps
Apps & features
Optional features
Add a feature
安装后,在 Type here to search 中输入 service 找到 OpenSSH SSH Server 右键点 start
Type here to search
service
OpenSSH SSH Server
start
下载 git GUI clent(https://git-scm.com/downloads), 安装略
以管理员的的身份启动 Powershell, 输入如下命令:
Powershell
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\Git\bin\bash.exe" -PropertyType String -Force
上面的代码表示更改 Window 的默认 Shell 为 gitbash
Window
Shell
gitbash
打开 C:\ProgramData\ssh\sshd_config , 把最后两行注释掉
C:\ProgramData\ssh\sshd_config
# Match Group administrators # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
将 Jenkins 服务器上的公钥 copy 到 Window 主机上 ~/.ssh/authorized_keys
copy
~/.ssh/authorized_keys
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.201
Nodejs 官网,下载安装略。
npm install -g yarn # npm install -g yarn --registry=https://registry.npm.taobao.org
下载SVN命令行工具 Subversion for Windows, 安装(略)
SVN
下载 SVN 图形界面工具,TortoiseSVN, 安装(略), 安装这个是为了解决第一次使用命令行工具时出现的权限问题
进入 Jenkins 管理界面,左侧 New Item → 输入Job Item名称 → 点击Pipeline → 点击 OK
New Item
Job Item
Pipeline
4.2、配置
Pipeline code
pipeline { agent any options { ansiColor('xterm') } parameters { string(name: 'name', defaultValue: 'czf', description: 'czf') string(name: 'ID', defaultValue: '1', description: '') string(name: 'level', defaultValue: '2', description: '2-Simple; 4-Full') // choice(name: 'siteID', choices: ['THC CN', 'THC Production', 'Predeploy'], description: 'Pick the siteID') // choice(name: 'modulePath', choices: [0,1,2,3, 4], description: '0-All; 1-loanCentral; 2-riskreports/reports/MQReports; 3-riskreports/reports/RevisionReports; 4-asset/budgeting/InvestmentIncome') } stages { stage('Parameters') { steps { sh "printenv" sh "echo 'name:' ${params.name}" sh "echo 'ID:' ${params.ID}" sh "echo 'level:' ${params.level}" } } stage('Build on 192.168.1.201') { steps { sshagent(credentials: ['Client-Win']) { sh """#!/bin/bash date ssh zfcao@192.168.1.201 "cd /c/code/Web-vue && svn info && svn update && yarn test --ID='${params.ID}' --name='${params.name}' --level='${params.level}' " """ } } } } }
上面的代码 Client-Win 为 步骤2.3中设置的 ID, 192.168.1.201 为干脏活累活的 Window 主机
Client-Win
ID
192.168.1.201
右上角用户Icon → Configure → API Token → Add new Token, 请记住这个 API Token
Icon
Configure
API Token
Add new Token
请记住这里设置的 Authertication Token
Authertication Token
Manage Jenkins -> Manage plugins -> Available -> 输入 ansicolor;
Manage plugins
Available
ansicolor;
Manage Jenkins -> Manage plugins -> Available -> 输入 SSH Agent
SSH Agent
安装后重启
curl -X POST http://192.168.200:8090/job/trigger/buildWithParameters?token=token \ --user hsxue:APIToken
上面的代码中的 token 和 APIToken 分别是 5.2 和 5.1 设置的参数 或使用 postMan 测试
token
APIToken
完
关于
Jenkins
的安装请阅读 Jenkins 安装配置及与 gitlab 集成(重点是端口修改和Jenkins系统用户配置)一、场景介绍
192.168.1.200
Jenkins
服务器,Linux
环境 192.168.1.201Windows
主机,干活的, 账号为admin
场景:我们要实现 Jenkins 服务器去指挥 Windows 主机去干脏活累活!
二、配置 Jenkins 全局 Credentials
2.1、生成 Jenkins 服务器的密钥对
登录 192.168.1.200 Jenkins 服务器,执行下面的命令
三次回车![image](https://user-images.githubusercontent.com/8563874/160084718-ccd1b6ad-cceb-4702-bf04-4f23a84b4fe7.png)
2.2、复制私钥
2.3、设置 Credentials 。
Manage Jenkins
→Manage Credentials
→global
→Add Credentials
输入ID: Client,请记住这个 ID
将在步骤 2.2 中复制的私钥填入Private Key
中, 点OK
保存。三、配置干活的机器
3.1、 配置能控制该机器的SSH环境
3.1.1、 安装 openSSH
点击左下角
WIN
图标, 设置(Settings
) -> 应用(Apps
) -> 应用和功能(Apps & features
) -> 可选功能(Optional features
) -> 添加功能(Add a feature
)安装后,在
Type here to search
中输入service
找到OpenSSH SSH Server
右键点start
3.1.2、 下载安装 Git-bash
下载 git GUI clent(https://git-scm.com/downloads), 安装略
3.1.3、Update the window's default shell
以管理员的的身份启动
Powershell
, 输入如下命令:上面的代码表示更改
Window
的默认Shell
为gitbash
3.1.4、更改OpenSSH的配置文件
打开
C:\ProgramData\ssh\sshd_config
, 把最后两行注释掉3.1.5、配置 authorized_keys
将
Jenkins
服务器上的公钥copy
到Window
主机上~/.ssh/authorized_keys
3.2、安装配置干活依赖的工具
3.2.1、安装 nodejs
Nodejs 官网,下载安装略。
3.2.2、安装 Yarn
3.2.3、安装 SVN 命令行工具和 SVN 图形界面工具
下载
SVN
命令行工具 Subversion for Windows, 安装(略)下载
SVN
图形界面工具,TortoiseSVN, 安装(略), 安装这个是为了解决第一次使用命令行工具时出现的权限问题四、创建和配置 Jenkins Pipeline Job
4.1、创建 Pipeline Job
进入
Jenkins
管理界面,左侧New Item
→ 输入Job Item
名称 → 点击Pipeline
→ 点击OK
4.2、配置
Pipeline code
上面的代码
Client-Win
为 步骤2.3中设置的ID
,192.168.1.201
为干脏活累活的Window
主机五、配置 Jenkins Token
5.1、配置当前用户的 API Token
右上角用户
Icon
→Configure
→API Token
→Add new Token
, 请记住这个API Token
5.2、配置当前 job 的 Authentication Token
请记住这里设置的![image](https://user-images.githubusercontent.com/8563874/160090524-3efddc5e-f196-4868-b400-6c401e9b10eb.png)
Authertication Token
5.3、安装插件
5.3.1 安装AnsiColor插件
Manage Jenkins
->Manage plugins
->Available
-> 输入ansicolor;
5.3.2 安装 SSH Agent 插件
Manage Jenkins
->Manage plugins
->Available
-> 输入SSH Agent
安装后重启
5.4、测试通信是否成功
上面的代码中的
![image](https://user-images.githubusercontent.com/8563874/160091517-5c227cc0-2fed-4a1b-a8be-72304cc37d7e.png)
token
和APIToken
分别是 5.2 和 5.1 设置的参数 或使用 postMan 测试完