作业内容
1、基于 docker-compose 实现对 Nginx+Tomcat Web 服务的单机编排
2、安装 GitLab、创建 group、user 和 project 并授权
3、熟练 Git 命令的基本使用,通过 Git 命令实现源代码的 clone、push 等基本操作
4、熟练掌握对 GitLab 服务的数据备份与恢复
5、部署 Jenkins 服务器并安装 GitLab 插件、实现代码免秘钥代码 clone
1、基于docker-compose 实现对Nginx+Tomcat Web服务的单机编排
docker-compose安装
apt install docker-compose
二进制安装
wget https://github.com/docker/compose/releases/download/v2.12.1/docker-compose-linux-x86_64
cp docker-compose-Linux-x86_64 /usr/bin/docker-compose
chmod a+x /usr/bin/docker-compose
官方文档页 https://docs.docker.com/compose/compose-file/
https://docs.docker.com/compose/compose-file/compose-versioning/
新建docker-compose.yaml文件
vim docker-compose.yaml
#需求:使用nginx代理访问成功tomcat默认界面
#1、准备好nginx测试网页,代理配置文件,nginx镜像
#2、准备好tomcat镜像,选择老师已经打好的tomcat测试镜像 registry.cn-hangzhou.aliyuncs.com/zhangshijie/tomcat-myapp:v1
version: '3.8' #指定的语法版本
services: #定义服务
nginx-server: #当前容器服务名
image: nginx:1.22.0-alpine
container_name: nginx-web1
expose: #声明的映射端口
- 80
- 443
ports: #定义端口映射
- "80:80"
- "443:443"
networks: #自定义网络,两块网卡,按顺序排列eth0 和eth1,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网
- front
- backend
volumes: #物理机与磁盘映射关系
- ./web1:/usr/share/nginx/html
- ./conf.d:/etc/nginx/conf.d/
links:
- tomcat-server
tomcat-server:
image: registry.cn-hangzhou.aliyuncs.com/zhangshijie/tomcat-myapp:v1
container_name: tomcat-app1
networks: #eth1
- backend
links:
- mysql-server
networks:
front: #自定义前端服务网络,需要docker-compose创建
driver: bridge
backend: #自定义后端服务的网络,要docker-compose创建
driver: bridge
访问前端界面,验证结果
默认首页
访问代理测试页面
2、安装gitlab,创建group、user和project并授权
1、前置操作,更新镜像源,安装相关工具,依赖
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
2\根据操作系统版本,下载对应的gitlab lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.10
Release: 22.10
Codename: kinetic
3、访问国内镜像下载源 ,练习默认gitlab-ce版本
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/jammy/main/g/gitlab-ce/gitlab-ce_15.5.0-ce.0_amd64.deb
命令安装
dpkg -i gitlab-ce_15.5.2-ce.0_amd64.deb
4、修改配置文件
vim /etc/gitlab/gitlab.rb
5、生成配置文件
gitlab-ctl reconfigure
6、查看gitlab状态
gitlab-ctl status
7、第一次默认密码存储位置
cat /etc/gitlab/initial_root_password
创建group user 和project 并授权
1、修改环境为中文
http://192.168.188.129/-/profile/preferences 选择环境为中文
2、添加管理员电子邮件地址并验证
http://192.168.188.129/-/profile/emails 3、修改默认通知邮件和主邮件
http://192.168.188.129/-/profile/notifications http://192.168.188.129/-/profile 4、修改密码
http://192.168.188.129/-/profile/password
5、关闭掉默认开启的注册功能
http://192.168.188.129/admin
6、新建用户
7、新建群组
8、邀请成员授权开发者权限
9、新建项目
http://192.168.188.129/projects/new?namespace_id=5
4、熟练掌握对 GitLab 服务的数据备份与恢复
1、停止相关数据连接服务,在当前目录备份gitlab服务
gitlab-ctl stop unicorn sidekiq
gitlab-rake gitlab:backup:create
2、备份文件默认存储位置
cat /etc/gitlab/gitlab.rb | grep “backup_path”
3、查看备份文件
配置文件默认命名方式 时间戳_年月日_版本号_gitlab_backup.tar
4、启动服务
gitlab-ctl start unicorn sidekiq
5、数据恢复操作
关闭数据连接服务
gitlab-ctl stop unicorn sidekiq
选择指定的备份文件,恢复数据
gitlab-rake gitlab:backup:restore BACKUP=1668263684_2022_11_12_15.5.0
6、启动数据连接服务
gitlab-ctl start unicorn sidekiq
3、熟练 Git 命令的基本使用,通过 Git 命令实现源代码的 clone、push 等基本操作
git config --global user.name “NAME” #设置全局用户
git config --global user.email xxxx@yy.com
git config --global --list
配置ssh免认证
ssh-keygen -t rsa -C 'xxx@xxx.com' 按注册邮箱生成
http://192.168.188.129/-/profile/keys 添加密钥 拷贝公钥内容
git clone git@192.168.188.129:devops/devops_geek.git
git branch 查看当前分支
git checkout -b devlop 创建一个开发分支
git checkout devlop 切换到开发分支
git remote add origin 仓库地址 添加远程仓库地址
git push -u origin devlop
git remote -v 查看当前远程仓库地址
git push -u origin devlop 推送开发分支
5、部署 Jenkins 服务器并安装 GitLab 插件、实现代码免秘钥代码 clone
1、安装java环境,直接apt
apt install openjdk-11-jdk
验证java环境
java -version
2、下载jenkins二进制安装包 并安装
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/debian/jenkins_2.321_all.deb
apt install daemon
dpkg -i jenkins_2.321_all.deb
3、修改端口
vim /etc/default/jenkins
HTTP_PORT=8081
vim /etc/init.d/jenkins
check_tcp_port “http” “HTTP_HOST” “0.0.0.0” || return 2
4、修改变量NAME,以root用户启动
vim /etc/default/jenkins
JENKINS_USER=root
JENKINS_GROUP=root
vim /lib/systemd/system/jenkins.service
User=root
Group=root
5、systemctl daemon-reload & systemctl restart jenkins & systemctl enable jenkins
6、第一次启动默认密码存储位置
/var/lib/jenkins/secrets/initialAdminPassword
7、第一次启动时遇到长时间无法启动
修改配置文件,更新源为国内清华镜像源后重启jenkins服务
需要你进入jenkins的工作目录,打开-----hudson.model.UpdateCenter.xml将 url 中的
https://updates.jenkins.io/update-center.json 更改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
8、复制初始密码进入初始设置界面,选择推荐安装
9、等待依赖和基础插件安装完成
11、下载插件时下载失败,等待过久,替换下载源为国内镜像源(备注 无用,最新版本jenkins重启会重新下载json文件覆盖原有操作,尚未找到解决办法)
cd /var/lib/jenkins/updates
sudo sed -i ‘s#updates.jenkins.io/download/plugins#mirrors.tuna.tsinghua.edu.cn/jenkins/plugins#g’ default.json && sudo sed -i ‘s#www.google.com#www.baidu.com#g’ default.json
systemctl restart jenkins12、安装完所有必须插件进入主界面
13、添加ssh全局凭证
选择上文录入的git 公钥
14、新建自由流水线,并clone代码
15、build查看结果