gogs可以⾃动化部署吗_Jenkins+Gogs搭建⾃动化部署平台1、安装Gogs
(1)、配置数据库(以mysql为例)
#创建gogs数据库
create database gogs;
#创建gogs数据库⽤户
create user 'gogs'@'localhost' identified by 'your-password';
grant all privileges on gogs.* to 'gogs'@'localhost';
flush privileges;
(2)、配置Git
#git版本需 >= 1.7.1
git version
git version 2.15.1
#创建git⽤户
sudo adduser git
#切换⾄git⽤户
su git
(3)、下载安装Gogs
返回根⽬录
cd ~
下载安装包
解压安装包
tar -xzvf gogs_0.11.79_linux_
mysql下载后安装中出现提示不到安装包
进⼊解压后的⽬录
cd gogs
编辑配置⽂件
vim ./scripts/init/debian/gogs
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Go Git Service"
NAME=gogs
SERVICEVERBOSE=yes
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
WORKINGDIR=/home/git/gogs #这个根据⾃⼰的⽬录修改
DAEMON=$WORKINGDIR/$NAME
DAEMON_ARGS="web"
USER=git #如果运⾏gogs不是⽤的这个⽤户,修改对应⽤户
切换到root账户/复制命令/增加命令权限
sudo cp /home/git/gogs/scripts/init/debian/gogs /etc/init.d/
sudo chmod +x /etc/init.d/gogs
配置service命令
cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/启动Gogs
sudo service gogs start
sudo /home/git/gogs/gogs web
浏览器访问完成安装
# Gogs配置⽂件在 /home/git/gogs/custom/conf/app.ini
# 进⼊安装页后按照提⽰填写完成最终安装~
Gogs
2、安装jenkins
(1)、安装JDK
yum install -y java
(2)、安装jenkins
添加Jenkins库到yum库,Jenkins将从这⾥下载安装
yum install -y jenkins
rpm -ivh jenkins-2.7.arch.rpm
配置jenkins端⼝号
vi /etc/sysconfig/jenkins
# 到修改端⼝号:
JENKINS_PORT="8088" 此端⼝不冲突可以不修改
(3)、启动jenkins
service jenkins start/stop/restart
安装成功后Jenkins将作为⼀个守护进程随系统启动
系统会创建⼀个“jenkins”⽤户来允许这个服务,如果改变服务所有者,同时-
需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者启动的时候将从/etc/sysconfig/jenkins获取配置参数
默认情况下,Jenkins运⾏在8080端⼝,在浏览器中直接访问该端进⾏服务配置
Jenkins的RPM仓库配置被加到/pos.po
(4)、打开jenkins
⾸次进⼊会要求输⼊初始密码如下图,
初始密码在:/var/lib/jenkins/secrets/initialAdminPassword
选择“Install suggested plugins”安装默认的插件,下⾯Jenkins就会⾃⼰去下载相关的插件进⾏安装
创建超级管理员账号
(5)、创建项⽬
其它配置项先默认即可
3、Jenkins配置Gogs webhook插件
(1)、进⼊jenkins平台打开 系统管理 -> 管理插件 -> 可选插件,在右上⾓输⼊框中输⼊"gogs"来筛选插件:
(2)、gogs中仓库配置
1、进⼊对应的仓库,点击仓库设置
2、添加webhook
点击 管理Web钩⼦ -> 添加Web钩⼦ -> 选择Gogs
3、添加如下配置:
推送地址的格式为:
http(s):///gogs-webhook/?job=
4、点击 推送测试,如 成功 会看到下推送记录
4、Jenkins配置构建远程服务器
(1)、进⼊jenkins平台 -> 安装插件 -> 搜索 Publish Over SSH 并安装
(2)、重启Jenkins服务
service jenkins restart
(3)、配置服务器密钥认证
注:
A服务器:jenkins所在服务器 (192.168.100.101)
B服务器:⽬标线上服务器 (192.168.100.100)
1、服务器A上⽣成密钥
ssh-keygen -f jenkins
2、查看⽣成的公钥
cat ~/.ssh/jenkins.pub
3、登录服务器B将服务器A⽣成的公钥加⼊authorized_keys
vim ~/.ssh/authorized_keys
4、jenkins配置 Publish Over SSH
进⼊Jenkins平台,点击 系统管理 -> 系统设置 -> 到 Publish Over SSH 配置项
# 查看并拷贝服务器A的私钥
cat ~/.ssh/jenkins
注:Jenkins SSH Key 这⼀栏默认会使⽤Jenkins管理员admin账户的密码,可以不填则设置为空密码
5、项⽬Git项相关配置
打开项⽬(test)配置页
6、建构触发器配置
构建触发器,以及构建环境都不需要配置,因为我们发布的是php代码!
7、构建项配置
最核⼼的⼀步,选择"Send files or execute commands over SSH"
简单说明
SSH Server,Name 选择对应的服务器,
Transfers, Source files填写/,表⽰全部⽂件
Remove prefix可以指定截掉的前缀⽬录,这⾥留空即可,
Remote directory指定远程服务器上代码存放路径,⽐如/data/wwwroot/www.aaa
Exec command为⽂件传输完成后要执⾏的命令,⽐如可以是更改⽂件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作
5、推送⾃动构建测试
Gogs上关联的仓库(test)master分⽀下push⼀条修改记录后,会发现jenkins上⾃动完成本地push的远程构建
查看远程服务器(B)⽬录情况
线上服务器B
OK~~ 整个Jenkins+Gogs⾃动化部署平台完成 ~~
注:
1、私有库项⽬Jenkins中Git项授权配置
添加授权凭证
添加授权凭证
授权成功

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。