运维进阶训练营 -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
版权声明: 本文为 InfoQ 作者【赤色闪电】的原创文章。
原文链接:【http://xie.infoq.cn/article/4ab9d0768323c98a35b67d887】。未经作者许可,禁止转载。
赤色闪电
关注
还未添加个人签名 2018-05-30 加入
还未添加个人简介









评论