Gitlab+Jenkins通过钩子实现自动部署web项目,图文详细教程

Gitlab+Jenkins通过钩子实现自动部署web项目,图文详细教程,第1张

扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群

1):Gitlab服务器:ubuntu 192168152131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程

2):Jenkins服务器:ubunu 192168152130 ---参考搭建:linux安装Jenkins,或docker安装Jenkins教程

在服务器上生成ssh-keygen,用于配置web服务器和Gitlab服务器。

3):web服务器:centos 192168152150 ---已搭建好LNMP环境

4):开发者电脑:Windows+key密钥 (用于提交代码)

1:在gitlab创建项目Test Project

21): 配置一个开发者电脑的ssh公钥到gitlab

配置一个开发者电脑的ssh公钥到gitlab,这样才能模拟开发上传代码到gitlab。

windows生成key过程及git安装,可参考:Windows下git和github的使用图文详细教程_the丶only的博客-CSDN博客_github win

在windows测试clone,和提交代码。


注:最新版git 已经将默认分支master改为main了。所以看到main,而不是master不要太奇怪

测试成功,在gitlab也显示有indexhtml文件。

22): 配置jenkins公钥到gitlab

同理,同样需要jenkins公钥,因为jenkins也需要拉去gitlab的代码。

jenkins服务器 上查看公钥并复制添加到gitlab,并命名为jekins。

1:插件管理,安装插件

jenkins本身没什么功能,主要是依靠插件来实现各种强大的功能。

基本需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

可以在 Manage Jenkins >> Manage Plugins 查看管理插件。在Available 选项搜索安装插件即可。

安装完成后,重启Jenkins。

2:添加需要部署的web主机

在 Manage Jenkins >> Configure System 中往下翻,找到 Publish over SSH 选项,点击add ssh server。

在Jenkins服务器上,查看私钥,注,是私钥,不是公钥。

将私钥填写在key位置,还有添加web服务器相关信息。

注:如果测试报错如下

Failed to connect or change directory
jenkinspluginspublish_overBapPublisherException: Failed to add SSH key Message [invalid privatekey: [B@2e54414f]

是因为默认用ssh-keygen命令,默认生成了OPENSSH 格式密钥。而Jenkins暂时不支持这种私钥,私钥开头结尾如下:

所以,需要生成rsa密钥格式的。用开头说的ssh-keygen加其他参数生成即可。

私钥开头结尾如下:

再次测试,显示success,则成功。然后点击save保存即可。

3:构建任务项目

首页创建任务或者一个项目

命名为web-project,选择为freestyle project 自由项目。然后ok确认。

31):源码管理 Source Code Management

选择源码管理,添加gitlab的项目clone地址。

注:最后路径选择分支,我gitlab主分支名字为main,如果是master,则写master,或者合并的其他分支。

在add添加用户

添加完成后,选择git用户,这时没有红色提醒,说明已成功连接

32):构建触发器 Build Triggers

现在Build Triggers,勾选build when,其他默认,并记下链接 >方法/步骤
1、登陆github到个人主页,点击“Repositories”,就能看到你自己创建或者“Fork”的项目。
2、找到你要删除的“Repositories”(或者也可以说是项目),点击进入。
3、找到该Repositories页面右下方的“Settings”,如图中标示,点击“Settings”进入(这个时候有可能会提示让你输入密码)。
4、进到“Settings”之后,点选左边框中的“Options”(一般默认也是这个选项),然后拉到最下,就可以看到“Delete this repository”了。
5、点击“Delete this repository”,d出对话框,需要你填写要删除的这个“Repositories”名字,不填写的话是不能删除的,我这里的名字是“Test”,然后就可以删除整个项目了。

GitLab 默认是开启你的 cpu数 +1 个进程,如果在一些 cpu 比较彪悍但是内存比较小的服务器上运行 gitlab 的话,会非常占用内存。所以我们可以改变这一设置即可。
修改 gitlab 配置文件
找到 gitlab 的配置文件 gitlabrb,取消注释,将进程数量设置为一个表合理的值。
unicorn['worker_processes'] = 3
我的 gitlab 因为用的人比较少,因此设置为 3 gitlab 官方文档中声明其最小值为2
2 载入配置
gitlab-ctl reconfigure
3 重启 gitlab 服务
gitlab-ctl restart
gitlab 服务重启要一小会儿。
搞定。可以看到内存占用还是有显著的下降。

首先要 ssh远程登陆工具比secureCRT等
案 基于SSH直接搭建
Git支持协议主要四种:
本: 需要文件共享系统权限控制
>ubuntu 13/pub/ruby/1/gitlabhq/gitlab-shell/',本地局域网安装的话默认localhost就行/gitlabhq/gitlabhqgit gitlab# 进入 gitlab 目录cd /home/git/gitlab# 切换到 gitlab 的 53 分支sudo -u git -H git checkout 5-3-stablecd /home/git/gitlab# 复制 gitlab 的示例配置文件到指定目录sudo -u git -H cp config/gitlabymlexample config/gitlabyml# 如果用的不是本地服务器,更改 localhost 为 gitlab 的服务器域名sudo -u git -H gedit config/gitlabyml# 确保当前用户对 gitlab 的 log 和 tmp 文件有读写权限sudo chown -R git log/sudo chown -R git tmp/sudo chmod -R u+rwX log/sudo chmod -R u+rwX tmp/# 创建一个我不认识的目录汗!sudo -u git -H mkdir /home/git/gitlab-satellites# 再创建两个我不认识的目录并且确保 当前用户对他有读写权限sudo -u git -H mkdir tmp/pids/sudo -u git -H mkdir tmp/sockets/sudo chmod -R u+rwX tmp/pids/sudo chmod -R u+rwX tmp/sockets/# 创建公共的上传备份目录,并确保当前用户对其有读写权限否则备份会失败sudo -u git -H mkdir public/uploadssudo chmod -R u+rwX public/uploads# 复制示例配置文件到制定目录sudo -u git -H cp config/pumarbexample config/pumarb# 找到其中有一行 # workers 2,去掉前面的 # 并将 2 改为 3sudo -u git -H gedit config/pumarb# 配置 gitlab 的全局设置sudo -u git -H git config --global username GitLabsudo -u git -H git config --global useremail gitlab@localhost# 复制示例Mysql配置文件到指定目录sudo -u git cp config/databaseymlmysql config/databaseyml# 修改里面的 root 为 gitlab, 密码为创建的 gitlab mysql 用户密码sudo gedit config/databaseyml# 安装一个我不认识的东西我没脸翻译了大哥你还是看原版教程吧cd /home/git/gitlabsudo gem install charlock_holmes --version '0694'sudo -u git -H bundle install --deployment --without development test postgressudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production# 下载 gitlab 的 开始/停止 脚本,并且加入当前用户的可执行权限sudo cp lib/support/initd/gitlab /etc/initd/gitlabsudo chmod +x /etc/initd/gitlab# 添加 gitlab 的开机启动sudo update-rcd gitlab defaults 21# 检查 gitlab 的状态和环境配置是否正确sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production# 启动 gitlabsudo service gitlab start# 或者sudo /etc/initd/gitlab restart# 再次检查 gitlab 的状态,如果全部绿色,说明 gitlab 配置成功不知道为什么,我要运行这个命令两次才会全绿sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production七 配置 Nginx# 软件源安装Nginxsudo apt-get install nginx# 复制 gitlab 的示例配置到指定目录sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlabsudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab# 修改配置文件更改其中的 YOUR_SERVER_FQDN 为你的 gitlab 服务器全称域名或者本机IP地址,修改 listen 为 :80sudo gedit /etc/nginx/sites-available/gitlab# 重启 nginx 服务器sudo service nginx restart# 打开浏览器输入本机 IP,用下面的用户密码登录既可admin@localhost5iveL!fe

步骤一:安装和配置必要的依赖关系
首先利用如下图所示的命令打开>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13446659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存