gitlab-ci自动化部署-前端(linux·centos·redhat)
前端项目自动化部署需要的环境依赖
- node:安装项目依赖、打包需要
- nginx:项目部署必须[正向代理、反向代理、负载均衡等等]
- git:自动化部署拉取代码
- gitlab-runner:gitlab CI/CD需要程序
1、安装node
此处使用的是node库 “ n ” ,可随时切换固定版本
先安装任意版本的node后,安装完 “ n ” 后再卸载
- 下载安装包,需要哪个版本,在url中修改就可以了
wget https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-x64.tar.xz- 解压
tar xf node-v12.9.0-linux-x64.tar.xz- 复制
cp -rf /root/node-v12.9.0-linux-x64 /usr/local/node- 打开编辑配置文件
vim /etc/profile
export PATH=$PATH:/usr/local/node
- 重载系统配置文件
source /etc/profile
安装n库常见命令:
安装命令: sudo npm i -g n
当前稳定版本node命令:sudo n stable
最新版node命令:sudo n latest
查看当前安装了那些版本的node:n
卸载指定版本 node(需要是在n中安装的版本才可以卸载):sudo n rm 版本号
切换当前使用的 node版本(如果没有该版本会自动安装):sudo n 版本号
2、安装nginx
版本:nginx 1.18.0
安装相关依赖
- zlib开启gzip需要
- openssl 开启 SSL 需要
- pcre rewrite模块需要
- gcc-c++ C/C++ 编译器
yum -y install gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
下载和解压nginx包
- 下载压缩包
wget https://nginx.org/download/nginx-1.18.0.tar.gz- 解压
tar -zxvf nginx-1.18.0.tar.gz
编译安装
cd ./nginx-1.18.0
./configure
make && make install
配置环境变量
查看安装路径
运行下方的命令查看安装路径,不出意外的话,应该是/usr/local/nginx
whereis nginx
配置
- 编辑
vim /etc/profile- 文件最后加上这两句,然后保存并退出(:wq)
export NGINX_HOME=/usr/local/nginx
export PATH=$NGINX_HOME/sbin:$PATH- 重载配置文件(运行才能生效)
source /etc/profile
测试环境变量是否生效
查看版本号
nginx -v
开放 80 端口
- 开放 80 端口
firewall-cmd --permanent --zone=public --add-port=80/tcp- 重载防火墙
firewall-cmd --reload
启动 nginx
- 启动
nginx
默认情况下nginx已经配置好了,80端口 可以访问 nginx 的欢迎页。浏览器直接访问服务器的 IP 就可以了。Nginx 1.18.0 和 1.20.0 版本的欢迎页不同。能显示就证明 Nginx 正常运行了。
3、安装git
Gitlab自动化部署需要拉取代码,需要用到 Git。尽量安装Git 2.x.x版本,不然新版的GitLab自动化部署无法拉取代码。
本人安装的是 Git 2.24.4 版本。
查看依赖
yum list git224
如果看到一下的安装包,证明可以通过yum安装;否则安装完成之后再升级git版本
安装命令:yum install git -y
查看版本:git --version
升级git版本
查看Linux系统版本(切换安装源使用)
cat /etc/redhat-release
先给一个centos7系统更新git的示例:
- 先安装源
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm- 安装git
yum install git- 更新git
yum update git- centos8的安装源为:
yum install http://opensource.wandisco.com/centos/8/git/x86_64/wandisco-git-release-8-1.noarch.rpm
4、安装gitlab-runner及注册配置runner
安装gitlab-runner
- 下载
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64- 分配运行权限
chmod +x /usr/local/bin/gitlab-runner- 创建用户
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash- 安装
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner- 运行
gitlab-runner start
注册配置runner
- 注册 runner
gitlab-runner register- 输入 gitlab 的访问地址
http://192.168.26.139:1874- 输入 runner token,把开 http://192.168.26.139:1874/admin/runners 页面查看
63AyFAthj7s7sNy3JDwu- runner 描述,随便填
测试webpack-vue项目部署- runner tag
webpack-vue-cicd- 输入(选择) shell
shell
常见问题
node高版本异常解决
解决GLIBC版本异常
查看系统中安装的 GLIBC(GNU C Library)的版本:
也可以使用strings /lib64/libc.so.6 |grep GLIBC_命令查看
ldd --version
安装所需要的GLIBC_2.27
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar xf glibc-2.28.tar.gz
cd glibc-2.28/ && mkdir build && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
预编译出现异常:
- 升级GCC(默认版本4.x 升级为8.x)
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*
mv /usr/bin/gcc /usr/bin/gcc-4
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++- 升级 make(默认版本3.x 升级为4.x)
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gztar -xzvf make-4.3.tar.gz && cd make-4.3/
./configure --prefix=/usr/local/make
make && make install
cd /usr/bin/ && mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make
然后再次执行
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
没有异常则正式执行安装操作
make && make install
查看版本:ldd --version
解决CXXABI版本异常
查看动态链接库有没有GLIBCXX_3.4.21
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
升级GCC
wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
tar -zxvf gcc-7.5.0.tar.gz
cd gcc-7.5.0
mkdir build && cd build
- 生成make文件并且编译
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib- 编译与安装
make && make install
拷贝文件到lib目录,并重新建立软链接:
cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64/
rm /usr/local/lib64/libstdc++.so.6
ln -sf /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6
验证Node.Js安装情况