资源网站
本文所有搭建设备均为CentOS 7.9
这里列举一些资源网站
gitlab安装
虽然市面上已经有github和gitee,但对私有仓库都有所限制。出于各方面考虑,搭建一个属于自己的代码仓库是一个不错的选择。
rpm包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
安装:
1 | rpm -ivh gitlab-ce-13.7.4-ce.0.el7.x86_64.rpm |
如果安装不上可能需要装policycoreutils-python,可以用yum直接装,也可以下载rpm进行安装。
gitlab配置
修改/etc/gitlab/gitlab.rb
文件中的external_url
,来配置域名和端口号,例如:external_url = http://gitlab.xxx.com:8080
,这里可以先配置成内网端口,后面再在yml中将其修改成80端口,这样就可以不占用内网的80端口啦,配置后执行下面的命令使其生效:
1 | gitlab-ctl reconfigure |
生效后我们修改opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
文件,将gitlab下的port端口号改为80,然后重启gitlab
1 | gitlab-ctl restart |
gitlab设置
gitlab软件中有很多设置,后面有空再写
jenkins安装
jenkins是使用java开发,下载他的war包即可运行,但建议使用rpm安装,将jenkins设定为服务进行维护。
在清华镜像站上可以找到jenkins的rpm安装包:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
。执行命令安装:
1 | rpm -ivh jenkins-2.227-1.1.noarch.rpm |
修改/etc/sysconfig/jenkins
设置$JENKINS_USER
字段为root
,让jenkins使用root权限。如果不想jenkins使用root权限,那需要对jenkins使用的文件夹进行授权。
启动jenkins并设置开机自启:
1 | systemctl start jenkins |
防火墙放开:
1 | firewall-cmd --zone=public --add-port=8080/tcp --permanent |
jenkins插件
启动后访问http://localhost:8080
,需要从系统中获取默认密码,选择插件的地方可以跳过,jenkins插件安装非常慢且容易失败。进入jenkins后,先安装Localization: Chinese
插件。重启后到首页点击右下角的Jenkins中文社区
,在出来的页面的更新中心镜像设置下点击使用,然后复制提供的更新中心地址,点击设置更新中心地址,拖动到最下面,把刚刚复制的更新中心地址放到升级站点的url中,点击提交。这样就完成了更新中心的切换,再去下载插件就会比较快了。
插件推荐:
插件名 | 说明 |
---|---|
Git | git相关 |
Maven | maven相关 |
GitLab | gitlab相关 |
Publish Over SSH | 远程执行命令发送文件 |
Multiple SCMs | 可以让构建拥有子目录,一个构建下面可以构建多个项目 |
Generic Webhook Trigger | 通用的webhook触发器 |
Role-based Authorization Strategy | 权限控制 |
jenkins配置
在系统管理-全局工具配置中配置maven配置、jdk配置。gitlab还需要在gitlab创建api令牌,并在jenkins系统管理-系统配置中配置。如果部署机器不是本机,还需要需要在系统配置中配置Publish Over SSH
的服务器地址、用户名、密码、根目录。
jenkins任务
新建一个任务让博客的发布流程自动化。在jenkins上新建任务,配置博客源码的git地址,构建中添加执行shell
:
1 | npm i |
然后添加Send files or execute commands over SSH
将编译好的静态文件发布到指定服务器上
容器化(docker)
使用容器化技术可以快速搭建很多轻量服务,但不建议将重要服务或大型服务使用容器化安装。容器化方法推荐docker,安装方法建议使用官方安装脚本
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
安装后启动并设置开机自启
1 | systemctl start docker |
docker容器的运行依赖docker镜像,在官方仓库已经存在了很多docker镜像,其中有的是相关软件的官方开发的镜像,也有非软件官方开发的镜像。具体的docker教程大家可以在网上学习
docker架构图:
下面列举一个mysql容器的运行命令:
1 | docker run -d -p 3306:3306 --restart=always \ |
以上的脚本运行了一个mysql:5.7.33的docker容器,-p命令将容器内部3306端口映射到外部的3306端口,–restart=always表示docker启动时自动启动该容器。-v命令将目录或文件绑定到容器内。-e设置容器的环境变量,这些变量是该容器镜像的制作者设定的,这里的MYSQL_ROOT_PASSWORD表示mysql的root密码。
docker更多
docker不仅可以用来快速搭建mysql、redis、nginx、zookeeper、showdoc等等服务,也可以通过一些镜像来部署服务和搭建自己的镜像,还可以通过镜像来进行集群部署等
自动化部署流程: