43

通过jenkins构建发布普通网站(jenkins+nginx+svn)-帅小欣

 4 years ago
source link: https://blog.51cto.com/jiaxinwang/2465213
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

通过jenkins构建发布普通网站(jenkins+nginx+svn)

本次实验介绍:
nginx:web网站
svn:代码存储仓库
jenkins:自动化运维工具

开发人员通过将代码提交到svn上,运维人员通过配置jenkins自动发布到nginx目录上。

实验环境:
192.168.0.188 Jenkins
192.168.0.189 nginx
192.168.0.19 svn
Jenkins、nginx、svn环境都已经准备完成,这里不进行再次搭建

步骤:
1.Jenkins安装ssh插件,并配置远程服务器
2.建立项目(job)配置Jenkins
3.将代码上传svn
4.用Jenkins发布文件
5.查看测试结果

1.Jenkins安装ssh插件,并配置远程服务器
在Jenkins系统管理——插件管理

通过jenkins构建发布普通网站(jenkins+nginx+svn)

选择插件publish over ssh插件并安装,已安装则忽略

安装完成后开始配置系统管理——系统配置

翻到最后面,找到SSH Servers 选项然后新增

通过jenkins构建发布普通网站(jenkins+nginx+svn)

测试是可以连接保存即可

释义:
SSH Server配置为Publish Over SSH中运程机的配置,分“基本设置”和“高级设置”两部分。“基本设置”主要是运程机IP、SSHusername、SSHport、连接超时时间等。“高级设置”和大部分“全局设置”中的选项相同。
Name:建立这台机器的名称
Hostname:远程机器的地址,最好是ip地址
Username:用户名
Remote Directory:远程目录
Use password authentication, or use a different key:使用密码连接
高级设置
高级设置里能够设置SSHport、重试时间以及又一次设置“全局设置”中的选项

全局配置:
每一项都能够被SSH Server的设置所覆盖,这种设计有一个优点。在server环境比較规范的情况下,能够省去每个SSH Server分别配置的繁琐步骤。
參数说明
Passphrase:SSH的password
使用username/password登录时为username的password。使用私钥登录时为私钥的password。
Path to key:SSH私钥的文件路径
私钥文件的路径,能够是绝对路径。也能够是相对$JENKINS_HOME的相对路径
Key:私钥
私钥导出后的文本内容

扩展例子:如果不使用密码而使用秘钥远程连接该怎么做呢1.jenkins所在服务器生成公私钥对2.将公钥(idrsa.pub)传到要远程的机器上或者将公钥内容输入到远程机器authorizedkeys文件中(/root/.ssh/authorizedkeys)chmod 600 /root/.ssh/authorizedkeys3.jenkins设置私钥所在路径文件,在输入生成公私钥的密码即可(Passphrase/Password字段需要输入公私钥密码)(Path to key字段输入jenkins所在服务器的私钥文件所在路径)

假设“Key”和“Path to key”都设置,则“Key”的优先级较高,私钥的password是“Passphrase”中设置的内容。
Disable exec:禁止在目标机上运行命令
勾选后将会忽略在Job配置中“Exec command”选项中设置的命令。Jenkins的说明文档中的“The Disable exec in the advanced settings for individual configurations will be ignored.”没有全然理解。从实际效果来看,仅仅要“Disable exec”被勾选后,无论SSH Server中是否勾选“Disable exec”。Job中设置的命令都将补忽略。

2.建立job任务
点击新建任务

输入名称,并选择自由风格项目然后确定

源码管理选择svn

其中
Repository URL:项目的svn地址
Credentials:凭证
点击添加,添加相应用户名即可

选择构建后操作,选择send build artifacts over SSH

通过jenkins构建发布普通网站(jenkins+nginx+svn)
通过jenkins构建发布普通网站(jenkins+nginx+svn)

參数说明:
Name
“系统管理>系统设置”设置的SSH Sverver的名字列表。
Source files
拷贝到运程机上的文件。相对workspace的路径,也支持表达式,如上图中的“*/.war”。
Remove prefix
文件复制时要过滤的文件夹,如上图中的target文件夹。
Remote directory
文件得到到远程机上的文件夹,此文件夹是相对于“SSH Server”中的“Remote directory”的。假设不存在将会自己主动创建。
Exec command
在这里能够填写在运程机器上运行的脚本,如:应用部署脚本

这里是直接将svn发布文件拷到nginx发布目录上,也可以将远程目录修改其他的,然后运行命令拷贝到nginx上也可,这种方法比较安全

这是nginx发布前
通过jenkins构建发布普通网站(jenkins+nginx+svn)
修改文件将文件传到svn

通过jenkins构建发布普通网站(jenkins+nginx+svn)

点击构建
查看日志

通过jenkins构建发布普通网站(jenkins+nginx+svn)

刷新页面,发布成功

通过jenkins构建发布普通网站(jenkins+nginx+svn)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK