Gitlab的CICD实现远程部署


一、获取gitlab宿主机的秘钥

1、登录部署gitlab的宿主机(本次使用阿里云ecs)

2、cd到root目录下的.ssh/

3、查看并获取id_rsa中的秘钥

二、gitlab中添加宿主机的秘钥

1、使用管理登录gitlab仓库

2、点击左上角菜单进入管理员角色

3、进入管理员之后点击设置菜单进入CICD

4、展开变量设置,将宿主机的秘钥写入(键-值)

添加变量,键:SSH_PRIVATE_KEY 值:宿主机秘钥



三、配置.gitlab-ci.yml

image: node:14.17.1

stages: # 分段
  - install

cache: # 缓存
  paths:
    - node_modules
    - build

install-job:
  tags:
    - default
  stage: install
  before_script:
    - mkdir -p /mydata/nginx/html/sd/school
    - chmod 700 /mydata/nginx/html/sd/school
    - 'which ssh-agent || ( yum update -y && yum install openssh-client git -y )'
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r'| ssh-add -
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan 37.92.32.200 >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - npm install
    - npm run build:prod #打包指令本文package.json文件scripts配置的是build:prod,执行该指令会打包生成dist目录
    - cp -rf ./dist/* /mydata/nginx/html/sd/school #将本地开发主机上的dist文件同步到远程nginx服务器的对应目录下
    - scp -r ./dist/* root@37.92.32.200:/mydata/nginx/html/sd/school
  only:
    - master

四、配置gitlab-runner和目标主机互信

1、登录docker部署的gitlab-runner服务

2、查看root下的.ssh中的公钥

3、将gitlab-runner中的公钥添加到目标主机的authorized_keys中


五、上传代码值gitlab仓库,自动执行cicd部署至目标服务器


文章作者: Beck Liang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Beck Liang !
 上一篇
Windows环境下使用docker安装mysql Windows环境下使用docker安装mysql
在windows环境下使用docker desktop进行mysql容器的启动,可以方便的进行端口映射、磁盘挂载等操作。
2024-06-06
下一篇 
Docker安装禅道并配置smtp邮件通知 Docker安装禅道并配置smtp邮件通知
禅道开源项目管理软件是一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整地覆盖了项目管理的核心流程。
2023-08-11
  目录