安装:
###关闭防火墙.
systemctl stop firewalld
systemctl disable firewalld
###安装依赖环境jdk.
yum -y install java-1.8.0-openjdk
###安装jenkins.
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.204.1-1.1.noarch.rpm
yum -y localinstall jenkins-2.204.1-1.1.noarch.rpm
###修改jenkins用户(我这里直接修改成root,为的就是省麻烦,简单粗暴)
vim /etc/sysconfig/jenkins
JENKINS_USER=“root”
###然后直接启动,并查看对应的端口进行访问(默认是8080的端口).
systemctl start jenkins
ss -anput | grep 8080
###jenkins的日志目录
/var/log/jenkins/jenkins.log
###直接页面访问,然后解锁,页面上有路径,cat文件复制粘贴就进去了.
新人建议安装推荐插件,不过时间很久.
这里我就直接安装推荐插件
安装完后是直接汉化的页面,因为推荐安装里面就有汉化的插件;并且让你创建一个管理员角色,听他的.
###jenkins的微调(更换插件站点)
安装插件的加速:
我选择的是清华大学源–>下拉看到update-center.json–>复制链接地址.——根据下面图片指示接着操作:
插件名 作用
Credentials Plugin 允许在jenkins中存储认证的凭据
Git Client Plugin 允许jenkins使用git
Git Plugin 允许jenkins集成git
Gitlab Plugin 允许gitlab触发jenkins构建并在gitlab中显示
Gitlab Hook 允许gitlab自动出发jenkins构建项目
gitlab Authentication plugin gitlab身份验证插件
Git Parameter 增加gitlab选择分支、标签、版本功能
Qy Wechat Notification 企业微信通知功能
conditional-buildstep
—————————————————————————————————————————————————
实验步骤:
###首先创建自己的组与成员:
gitlab页面—>新建组(test_group)—>新建成员(test)—>成员规划到组里(包括自 己)—>新建项目—>项目名称(php_test)—>项目的url选择建好的组(test_group)–> 选择私有—>点击create project
###然后到gitlab的终端命令行(这里我就不多解释命令了,不懂查下百度git的使用):
git clone [email protected]:test_group/php_test.git
cd php_test/
echo v1.1 > index.php
echo “.php文件测试” > README.me
git add .
git commit -m “test .php file”
git push -u origin master
git tag -a “v1.1” -m “test v1.1”
git push origin v1.1
###接着去到gitlab页面,刷新后可以看到你刚才新建的项目.
###然后到jenkins页面,新建项目:
这里我就跟gitlab的项目同名:
###然后如图:
描述就是说明一下项目的情况.
丢弃旧的构建
——因为项目一般是多次更新,版本多次迭代什么的.
——这里我选择保留的天数是7天
——保留构建最大数20个
按自己情况进行修改就可以了
接下来就是跟gitlab做个免密拉取项目内容的操作:
回到jenkins服务器上生成密钥:
ssh-keygen
###一路回车生成
cat ~/.ssh/id_rsa.pub
###查看并复制公钥,留着下面使用
回到gitlab页面:
右上角用户头像,点击设置,找到图中红框:
然后把复制好的公钥内容贴到图中标记位置:
然后jenkins终端命令行下测试:
git clone [email protected]:test_group/php_test.git
####能免密拉取仓库内容就证明成功
rm -rf php_test
cat ~/.ssh/id_rsa ###顺便查看root的密钥,并复制好留着下面使用
然后回到jenkins的网页页面,下拉看到如图:
——URL就写上gitlab项目上的链接,ssh拉取形式.
——添加Credentials:
——添加Credentials:
类型处选择SSH Username with private key
描述最好写明白
然后是Username
然后点击ADD输入刚才复制好的密钥
然后添加出去
然后是参数化构建过程
继续往下,接下来就是集成shell
回到jenkins终端命令行:
mkdir /scripts
vim php_test.sh
#!/bin/bash
###变量
DATE=$(date +%Y-%m-%d-%H-%M-%S)
WEB_PATH=/usr/local/nginx/html
DIR=/data
DA_VER=${DATE}-${git_version}
###函数形式存在
###进入到项目目录里,然后打包至指定目录
get_code(){
cd ${WORKSPACE} && \ ### workspace , 是属于jenkins自带的变量
tar czf ${DIR}/web-${DATE}-${git_version}.tar.gz ./* #### git_version 是前面写的,这里调用jenkins生成的变量即可
}
###创建存储目录,并做软连接指向web站点目录
web_html(){
mkdir -p ${DIR}/web-${DA_VER} && \
tar zxvf ${DIR}/web-${DA_VER}.tar.gz -C ${DIR}/web-${DA_VER} && \
rm -rf ${WEB_PATH} && \
ln -s ${DIR}/web-${DA_VER} ${WEB_PATH}
/etc/init.d/php-fpm restart
}
###回退时的操作
rollback(){
ROLLBACK_FILE=$(find /data/ -maxdepth 1 -type d -name "web-*-${git_version}")
rm -rf ${WEB_PATH} && \
ln -s ${ROLLBACK_FILE} ${WEB_PATH}
/etc/init.d/php-fpm restart
}
deploy(){
get_code
web_html
}
####判断之前是否有部署过的版本,如果有,就退出,相反则部署;回退不受限.
###GIT_COMMIT是gitlab自带的变量,详情请查看 gitlab可用的环境变量列表
###GIT_PREVIOUS_SUCCESSFUL_COMMIT 同上
if [ $Option == "deploy" ];then
if [ ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
echo "你已经部署过该${git_version}版本"
exit 1
else
deploy
fi
elif [ $Option == "rollback" ];then
rollback
fi
然后应用保存回到jenkins界面:
刷新一下可以看到,这里变成了 Build with Parameter
原因可以回头看下前面的插件
然后如图中操作,选择你是要部署还是要回滚
第一次操作肯定就是deploy:
然后在这里可以看到有一个控制台输出:
点击进去后可以看到你脚本跑的情况:
这里就不贴出来了
接下来是去集成企业微信:
但凡风吹草动,都能发送信息到企业微信群里:
这里图片我就不贴了,图片莫名失踪,懒得再截图了
文字描述可以了,不懂的可以自行百度,极其简单
jenkins页面
|
系统设置
|
下拉最下面
|
企业微信通知配置(填写“构建环境名称”,“默认Webhook地址”,“默认通知UserID”——框框后面都有说明,这里就不废话了)
|
电脑登陆你的企业微信
|
选中群,右击选中添加机器人
|
跟着提示操作,最后得到“Webhook地址”
|
写到jenkins页面中,保存推出
|
随便构建个项目就可以收到信息