Open felix-cao opened 3 years ago
Publish Over SSH
插件的主要作用是通过 SSH
连接其他 Linux
机器,向远程主机发送文件和执行命令,官方文档
Publish Over SSH
插件Manage Jenkins
-> Manage plugins
-> Available
-> 输入 Publish Over SSH
SSH Servers
Manage Jenkins
-> Configure System
拉到最下面可以看到 Publish over SSH
各参数解释
Passphrase
:如果私钥设置了密码就是私钥的密码,私钥没设置密码可以不填Path to key
:私钥的位置Key
:私钥的内容。如果此处填入了值,则以此处的值为准,会忽略掉Path to key的配置SSH Servers
:服务器的配置
Name
:名称(自定义)Hostname
:服务器地址Username
:用户名Remote Directory
:默认远程服务器的地址
注意:在配置上述内容时,要首先在jenkins
服务器上生成私钥,然后将公钥推送到服务器上。
配置好后,点击 Test Configration
可以看到结果
将Jenkins服务器的公钥复制到远程主机中,一般不用 root
用户,参考 linux 下开启 SSH,远程免密登录 #11
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.73
配置参数
Source files
**/*
表示{projectName}
这个 job
的工作目录下所有的文件和目录。Remove prefix
该操作是针对上面的source files目录,会移除匹配的目录。通常留空。Remote directory
该操作是基于设定的服务器目录进行。Exec command
远程服务器执行的命令。例如可以输出 service jenkins restart
或者 /home/xx. sh
均可。注意, Source files
指的是当前这个 job
的工作目录下的所有文件及目录
Manage Jenkins
-> Manage plugins
-> Available
-> 输入 Date Parameter
进入项目的configure
#!/bin/bash
cd /home/www/${date}
tar -xzvf ${itemName}.tar.gz
if [ "$(docker ps -q -f name=${itemNginx})" ]; then
docker stop ${itemNginx}
fi
if [ "$(docker ps -aq -f status=exited -f name=${itemNginx})" ]; then
# cleanup
docker rm ${itemNginx}
fi
if [ "$(docker images -q nginx:skillman-IIoT-web)" ]; then
docker rmi nginx:${itemName}
fi
docker build -t nginx:${itemName} .
# run your container
docker run --name ${itemNginx} -p 8082:8082 -d nginx:${itemName}
Manage Jenkins
-> Manage plugins
-> Available
-> 输入 Git Parameter
这里的Git Parameter的参数配置如下:
Name
:按照自己习惯来命名,主要做到望文生义即可;Description
:随意;Parameter Type
:这个 Job
是用于基于 Tag
构建,因此选择 Tag
;Default Value
:主要用于当该项目没有Tag时候作为缺省值进行代码拉取构建,这里一般填写 orgin/master
;
接下来于第三步相同
Manage Jenkins
-> Manage plugins
-> Available
-> 输入 Email Extension
Manage Jenkins
-> Configure System
-> 找到 Extended E-mail Notification
进入到具体的项目配置界面点击 Configure
,在配置界面点击“Add Post Build Action”,选择“Editable Email Notification”
针对该项目进行个性化的配置,选择“Advanced Settings”--> '高级'
一、场景描述
之前有篇文章是基于
gitlab
gitlab-ci
ansible
的自动化部署,请阅读二、软件安装
2.1 Jenkins 安装
参考 Jenkins 安装配置及与 gitlab 集成
2.2 Gitlab 安装
参考 gitlab 安装指南
2.3 在 jenkins 服务器上安装配置nodejs
如果出现下面的错误
先去
Ping
一下raw.githubusercontent.com
的地址输入
2.4 在 jenkins 安装 nodejs 插件并配置
安装
nodejs
插件 --- 让jenkins
可以使用npm
命令Manage Jenkins
->Manage plugins
->Available
-> 输入nodejs
全局工具配置
三、Jenkins 与 gitlab 的通信
3.1 配置访问秘钥
在
jenkins
服务器上执行命令,复制~/.ssh/id_rsa.pub
3.2 在 gitlab 中设置
Deploy Keys
在
gitlab
中 左上角小扳手 ->Deploy Keys
-> 添加刚刚复制的public key
3.3 在 jenkins 中设置凭据
设置凭据的目的是让
jenkins
从gitlab
服务器上拉取代码http://ip:8081/credentials/store/system/domain
, 左侧Add Credentials
把私钥~/.ssh/id_rsa
中的内容复制到这里Private Key
3.4 配置 webhook,jenkins 和 gitlab 对接
进入
jenkins
项目configure
, 可以看到,jenkins
配置从上往下依次分为通用、源码关联、构建触发器、构建环境、构建、和构建后操作。jenkins
整个执行流就是按照这几个顺序依次进行执行的。jenkins
项目中,点击source code management
, 选择git
, 输入Repository URL
, 选择 3.3 设置的Credentials
3.5 设置构建脚本
jenkins
所在的服务器是linux
系统,选择 Excute Shell