写点什么

运维进阶训练营 -W03H

作者:赤色闪电
  • 2022-11-12
    北京
  • 本文字数:2420 字

    阅读完需:约 8 分钟

基于 docker-compose 实现对 Nginx+Tomcat Web 服务的单机编排

version: '3.8'services:  nginx-server:    image: nginx:1.22.0-alpine    container_name: nginx-web1#    network_mode: bridge #网络1,使用docker安装后的默认网桥    expose:      - 80      - 443    ports:      - "80:80"      - "443:443"    networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有两块网卡      - front      - backend    links:      - tomcat-server
tomcat-server: #image: tomcat:7.0.93-alpine image: registry.cn-hangzhou.aliyuncs.com/zhangshijie/tomcat-myapp:v1 container_name: tomcat-app1 ##network_mode: bridge #网络1,使用docker安装后的默认网桥 #expose: # - 8080 #ports: # - "8080:8080" networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有一块网卡 - backend links: - mysql-server
mysql-server: image: mysql:5.6.48 container_name: mysql-container# network_mode: bridge #网络1,使用docker安装后的默认网桥 volumes: - /data/mysql:/var/lib/mysql #- /etc/mysql/conf/my.cnf:/etc/my.cnf:ro environment: - "MYSQL_ROOT_PASSWORD=12345678" - "TZ=Asia/Shanghai" expose: - 3306 ports: - "3306:3306" networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有一块网卡 - backend

networks: front: #自定义前端服务网络,需要docker-compose创建 driver: bridge backend: #自定义后端服务的网络,要docker-compose创建 driver: bridge default: #使用已经存在的docker0默认172.17.0.1/16的网络 external: name: bridge
复制代码

安装 GitLab、创建 group、user 和 project 并授权

# 安装GitLab# dpkg -i gitlab-ce_15.4.3-ce.0_amd64.deb # vim /etc/gitlab/gitlab.rb # grep -v "#" /etc/gitlab/gitlab.rb | grep -v "^$" #验证配置文件  external_url 'http://172.31.5.101' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "2973707860@qq.com" gitlab_rails['smtp_password'] = "chwbwjpkqizodgbb" gitlab_rails['smtp_domain'] = "qq.com" gitlab_rails['smtp_authentication'] = :login gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = "2973707860@qq.com" user["git_user_email"] = "2973707860@qq.com" # gitlab-ctl reconfigure #重新配置服务
复制代码


账户权限分类:
Guest-访客,可以创建issue、发表评论,不能读写版本库
Reporter-Git项目测试人员,可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer-Git项目开发人员,可以克隆代码、开发、提交、push,RD(Research and Development engineer,研发工程师)可以赋予此权限
Master-Git项目管理员,可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予此权限
Owner-Git系统管理员即Administrator,可以设置项目访问权限、删除项目、迁移项目、管理组成员,研发组leader可以赋予此权限
项目权限分类:
Private:私有 项目、只有组内成员才能看到
Internal:内部项目、只有登录的用户就能看到
Public:公开项目、所有人都能看到
复制代码


熟练 Git 命令的基本使用,通过 Git 命令实现源代码的 clone、push 等基本操作

#Git常用命令git configgit statusgit addgit commitgit pushgit fetchgit checkoutgit rebasegit branch
复制代码

熟练掌握对 GitLab 服务的数据备份与恢复

备份:  root@gitlab:~# gitlab-ctl stop unicorn sidekiq  root@gitlab:~# gitlab-rake gitlab:backup:create #在任意目录即可备份当前gitlab数据  /var/opt/gitlab/nginx/conf #nginx配置文件  /etc/gitlab/gitlab.rb #gitlab配置文件  /etc/gitlab/gitlab-secrets.json #key文件  root@gitlab:~# gitlab-ctl start unicorn sidekiq 
恢复: 查看要恢复的文件: root@gitlab:~# ll /var/opt/gitlab/backups/ # 查看Gitlab数据备份目录 -rw------- 1 git git 399360 Oct 24 10:04 1666577054_2022_10_24_15.4.3_gitlab_backup.tar root@gitlab:~# gitlab-ctl stop unicorn sidekiq #停止服务 root@gitlab:~# gitlab-rake gitlab:backup:restore BACKUP=1666577054_2022_10_24_15.4.3 #unix时间戳、备份年月日、版本号 root@gitlab:~# gitlab-ctl start unicorn sidekiq #启动服务
复制代码

部署 Jenkins 服务器并安装 GitLab 插件、实现代码免秘钥代码 clone

安装依赖:  https://www.jenkins.io/zh/doc/book/installing/  CPU、内存、磁盘  安装Java 8、在2.361.1及以上版本开始要求Java 11  root@jenkins:~# apt install openjdk-11-jdk java war包: 二进制安装包:  # dpkg -i jenkins_2.361.2_all.deb && systemctl stop jenkins  # vim /etc/default/jenkins  JENKINS_USER=root  JENKINS_GROUP=root  root@jenkins:~# vim /lib/systemd/system/jenkins.service  User=root  Group=root  JAVA_ARGS="-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true" #关闭 跨站请求伪造保护(CSRF)保护  # systemctl daemon-reload && systemctl restart jenkins.service
复制代码

发布于: 刚刚阅读数: 4
用户头像

赤色闪电

关注

还未添加个人签名 2018-05-30 加入

还未添加个人简介

评论

发布
暂无评论
运维进阶训练营 -W03H_运维_赤色闪电_InfoQ写作社区