自动化部署原理:git提交代码仓库会向你配置的服务器发送一条记录,服务器解析记录分析对应的项目以及判断该分支提交该做哪些操作,然后执行预设的shell脚本,我们使用Jenkins来处理hook响应。
Jenkins依赖Java环境,默认服务器已经安装好Jdk与Tomcat
0. 开始安装
先下载war包 http://mirrors.jenkins.io
启动Tomcat安装,此时Jenkins已经运行,打开网页后按照提示在服务器对应文件中找到密码,输入并进入新手安装,选择默认的安装,这时别管它,应该会出现一系列失败,先进入tomcat刚安装的对应目录中:
找到路径 \WEB-INF\detached-plugins
文件夹下确认是否存在 cloudbees-folder.hpi
这个文件,如果缺少则这里手动下载后放进去,这是第一个坑点。
进入工作目录(不是安装目录,一般是root文件夹下的.jenkins文件夹),找到hudson.model.UpdateCenter.xml
这个文件,将URL改为https://updates.jenkins-zh.cn/update-center.json
工作目录下updates文件夹default.json
文件中,将所有 http://updates.jenkins-ci.org/download/
替换为 https://updates.jenkins-zh.cn/
这是为了确保初始化不会因为网络问题卡死,重启Jenkins,等待安装完成。
1. 创建用户
首先配置下git,进入Manager -> Global Tool Config… 找到 Git 位置 Path to Git executable 填入路径 :/usr/local/git/bin/git
开启Webhook链接:进入Manager -> Configure System,找到GitHub -> 高级 -> 勾选Hook URL打开,复制下payload Url
通常是 http://你的域名/github-webhook/
进入 GitHub,点击setting,进入setting页面点击左下角的Developer settings,点击跳转到Personal access tokens,创建token,勾选 repo 和 admin:repo_hook;
进入Jenkins configure配置githubserver,(Credentials)Add选择“secret text”---Secret输入token,勾选管理hook
Yum配置国内源(已配置略过)
# 添加: /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
2. Git相关
下载GIt
https://mirrors.edge.kernel.org/pub/software/scm/git/
git --version
yum remove -y git
yum -y install libcurl-devel expat-devel curl-devel gettext-devel openssl-devel zlib-devel
yum -y install gcc perl-ExtUtils-MakeMaker
cd /usr/local/src/
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.1.1.tar.gz
tar -zvxf git-2.1.1.tar.gz
cd git-2.1.1
make prefix=/usr/local/git all
make prefix=/usr/local/git install
添加git到环境变量(可能需要)
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc
注意在Github的相关项目下 Settings Webhooks 配置push时payload。
3. 通常的配置实例
备注:这里一般不勾选“构建环境”中的Delete workplace....会增加构建时间。
4. 常用构建shell记录
rm -rf /某工程项目目录/* # 每次部署先清空,适合较小项目
mv -f ./* /某工程项目目录 # 转移部署文件到指定目录
chmod -R 775 /某工程项目目录 # 设置权限防止nginx403