CentOS7 安装 Gitlab 和 Runner
2020-4-9 23:0:38
安装依赖
shell
yum install -y curl policycoreutils-python openssh-server
配置ssh服务
将SSH服务设置成开机自启动
shell
sudo systemctl enable sshd
启动SSH服务
shell
sudo systemctl start sshd
配置防火墙
安装防火墙
shell
yum install firewalld systemd -y
启动防火墙
shell
service firewalld start
添加http服务到防火墙
shell
sudo firewall-cmd --permanent --add-service=http
重启防火墙
shell
sudo systemctl reload firewalld
配置postfix
安装postfix
shell
sudo yum install postfix
设置开机启动
shell
sudo systemctl enable postfix
启动postfix
shell
sudo systemctl start postfix
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
准备工具
- wget
- vim
如果没有安装,使用下面的命令来安装
shell
yum install wget -y
yum install vim -y
安装gitlab
下载gitlab镜像
shell
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
上面的命令是安装10.0.0版本的gitlab社区版。所有的镜像在https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/。
安装gitlab
shell
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
后边的rpm文件是上一步下载好的包。
这样显示就是安装成功了
配置gitlab
打开gitlab配置文件
shell
vim /etc/gitlab/gitlab.rb
将external_url
改为http://服务器ip:端口
。
重置并重启
shell
gitlab-ctl reconfigure
gitlab-ctl restart
访问gitlab
直接访问上一步填写的ip和端口地址,初始账户是
初始账户: root 密码:5iveL!fe
汉化gitlab
在另一个目录clone这个仓库:
https://gitlab.com/xhang/gitlab/
如果clone太慢,可以使用国内gitee上的同款仓库:
https://gitee.com/zhangzheng_764/gitlab-zh。
进入仓库目录下,查看所有分支。
shell
git branch -a
根据已安装的版本,进行对比,生成补丁包。
shell
git diff remotes/origin/10-2-stable remotes/origin/10-2-stable-zh > /tmp/10.2.2-zh.diff
上面示例中是10.2.2版本,要根据实际安装的版本进行更改。
生成补丁包后,先停止gitlab服务。
shell
gitlab-ctl stop
打补丁
shell
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.2.2-zh.diff
启动gitlab并重新配置
shell
gitlab-ctl start
gitlab-ctl reconfigure
刷新页面,汉化完成。
安装gitlab runner
用wget下载镜像
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ci-multi-runner/
安装镜像
shell
rpm -i gitlab-ci-multi-runner-9.5.1-1.x86_64.rpm
获得gitlab-ci的token
项目主页 -> Sttings -> CI/CD -> Runners Expand
注册一个runner出来
shell
gitlab-runner register
配置自动部署
shell
# This file is a template, and might need editing before it works on your project.
# Full project: https://gitlab.com/pages/hexo
image: node:10.15.3
stages:
- deploy
before_script:
- echo '开始准备服务'
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- mkdir -p ~/.ssh
- rm -Rf ~/.ssh/id_rsa
- touch ~/.ssh/id_rsa
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
- rm -Rf ~/.ssh/known_hosts
- touch ~/.ssh/known_hosts
- echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
- chmod 700 ~/.ssh
- chmod 700 ~/.ssh/*
- echo '执行git设置'
- git config --global user.email "t@xtzero.me"
- git config --global user.name "xtGitlabRuner"
- echo '给npm设置成淘宝源'
- npm config set registry https://registry.npm.taobao.org/
- npm config get registry
deploy:
stage: deploy
script:
- cd /data/www/night/web
- git pull
- echo 开始构建项目
- npm run build
- ls
- ls dist