# group-assignment **Repository Path**: boathouse/group-assignment ## Basic Information - **Project Name**: group-assignment - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-27 - **Last Updated**: 2021-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 团队结业大作业 ## 参考文档 - Github主库地址 - 前端:https://github.com/idcf-boat-house/boat-house-frontend - 后端:https://github.com/idcf-boat-house/boat-house-backend - Gitee国内镜像地址: - 前端:https://gitee.com/idcf-boat-house/boat-house-frontend - 后端:https://gitee.com/idcf-boat-house/boat-house-backend - 文档参考 - [IDCF DevOps黑客马拉松挑战赛操作手册,可作为操作指导手册](http://idcf.org.cn/boat-house/#/docs/workshops/hackathon/README) ## 资源 ### vm-tools #### 虚拟机配置 2核/8G内存/30G系统盘/16G数据盘1/1T数据盘2/Ubuntu Linux 16.04 LTS #### 更新hostname ``` # 更新hostname为vm-tools sudo vim /etc/hostname # 增加127.0.0.1 vm-tools vm-tools sudo vim /etc/hosts # 重启后生效 sudo reboot now ``` #### [Docker 安装](http://idcf.org.cn/boat-house/#/docs/workshops/hackathon/team-env-config) ``` # 更新系统 sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y # 安装docker sudo apt install docker.io -y sudo usermod -a -G docker $USER ## 安装docker-compose ### docker-compose 官方安装地址(如果此地址安装不成功,请使用以下国内镜像地址) sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ## docker-compose 国内镜像 ## sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ## 启动 docker 服务 sudo systemctl daemon-reload sudo systemctl restart docker ## 设置 docker 用户权限 ## group 'docker' already exists sudo groupadd docker sudo gpasswd -a $USER docker newgrp docker # docker docker --version # docker-compose docker-compose --version ``` #### [搭建Jenkins](http://idcf.org.cn/boat-house/#/docs/workshops/hackathon/team-env-config) ``` sudo mkdir ~/jenkins_home sudo chown -R 1000:1000 ~/jenkins_home sudo docker run -d -p 8080:8080 -p 50000:50000 --env JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true -v ~/jenkins_home:/var/jenkins_home -u 0 jenkins/jenkins:lts docker ps ``` ``` sudo cat ~/jenkins_home/secrets/initialAdminPassword ``` 打开 Jenkins 链接,选择安装建议插件。 初始化管理员账号密码(密码存储在 ~/secret/secret.md 中)。 ``` # 代理机安装JDK sudo apt-get install openjdk-8-jdk -y java -version # 安装Maven sudo apt install maven -y mvn -version # 代理机添加 vm帐号(当前登陆账号)至Sudoers sudo usermod -aG sudo $USER # 添加 ghuser 至sudoers文件,因 /etc/sudoers.d/90-cloud-init-users 中已配置,没必要! # sudo visudo # 代理机创建Jenkins工作目录, 并创建文件确保目录在非sudo下可写 mkdir ~/jenkins_workspace cd ~/jenkins_workspace touch test ls ``` Jenkins添加构建节点 按安全警告,将主节点的 Number of executors 从 2 修改为 0。 #### [获取 DevOpsBox 部署配置文件](http://idcf.org.cn/boat-house/#/docs/workshops/boathouse-e2e-opensource/devopsbox/README?id=_044-%e5%ae%8c%e6%88%90%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%9f%ba%e7%a1%80%e7%8e%af%e5%a2%83%e5%ae%89%e8%a3%85) ``` # 获取 DevOpsBox 部署配置文件 git clone https://github.com/idcf-boat-house/boat-house-devopsbox.git ``` ### vm-dev #### 虚拟机配置 同vm-tools。 #### 更新hostname 参照vm-tools。 #### [Docker 安装](http://idcf.org.cn/boat-house/#/docs/workshops/hackathon/team-env-config) 同vm-tools。 ### Azure Container Registry ## 挑战内容 ### 必选动作(最先完成的小组获最高分) #### 1. 从gitee仓库fork代码到小组库(Done) - 小组库(公开,更新请使用pull request,发送gitee账号给管理员获得审批权限) - 前端:https://gitee.com/boathouse/boat-house-frontend - 后端:https://gitee.com/boathouse/boat-house-backend #### 2. 完成前后端代码的本地调试(TODO) 各自在本地进行,这是Demo的一部分。 #### 3. 完成Jenkins服务器和slave搭建(Done) 详见 vm-tools 中相关记录。 #### 4. 完成前后端代码的自动化构建(TODO) #### 5. 完成前后端代码到开发调测环境(vm单机环境)的自动化部署(TODO) ### 加分项(完成一项多得1分) #### 1. 完成前后端代码到测试环境或生产环境(k8s集群环境)的自动化部署(3分)(TODO) #### 2. 或者其他内容,见[工具指导文档](http://idcf.org.cn/boat-house/#/?id=%e5%b7%a5%e5%85%b7%e6%8c%87%e5%af%bc%e6%96%87%e6%a1%a3) (每个1分) ## Demo演示内容 以上挑战内容完成后,每个小组需要准备以下内容进行demo 从自己小组的gitee代码库clone代码到本地开发目录,注意不能使用已经存在的本地目录 在本地完成前后端代码的联调,需要可以通过IDE设置断点进行调试(可选项) 展示Jenkins中已经运行成功的流水线状态,需要确保每个步骤均运行成功,同时可以切换到“测试”标签页看到测试结果,在SonarQube中看到通过流水线触发的检查结果 展示运行在DEV(开发调测环境)的前端页面(包括client和managemnet的页面) 展示运行在k8s中的TEST/PROD环境的前端页面 加分项:具体加分项的完成标准请和讲师单独确认