白云区建材网站建设推广,微信h5链接怎么做,青羊区定制网站建设报价,网站推广的优点目录 1. 说明
2. 资源要求
3. 安装
4. 配置实践
4.1 服务器
4.2 人员与项目
4.2 部署准备
4.2.1 访问变量及用户账号设置
4.2.2 Runner设置
4.2.3 要点
5. 应用项目 CI/CD
6. 参考 1. 说明 gitlab是一个强大且免费的代码管理/部署工具#xff0c;能统一集成代码仓…目录 1. 说明
2. 资源要求
3. 安装
4. 配置实践
4.1 服务器
4.2 人员与项目
4.2 部署准备
4.2.1 访问变量及用户账号设置
4.2.2 Runner设置
4.2.3 要点
5. 应用项目 CI/CD
6. 参考 1. 说明 gitlab是一个强大且免费的代码管理/部署工具能统一集成代码仓库CI/CD的工作。开始时我以为只能在官网上使用后来才知道能私有化部署确实了不起。
原理图
2. 服务器 gitlab资源要求比较高建议8核16G目前我的虚拟机是分配了5核12G要是工作负荷上来还要划拨资源。
ServerIP配置备注host001.dev.ia192.168.0.1305核/12G/200G硬盘Gitlab服务器 / Gitlab Runner工作站 / 开发服务器1host002.dev.ia192.168.0.1312核/4G/200G硬盘开发服务器2
在各自的 /etc/hosts 做上述设定
3. 安装
docker-composer方式指定外部访问url为 http://host001.dev.ia:18181
gitlab.yml
version: 3.5services:web:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: gitlab.dev.iaenvironment:GITLAB_OMNIBUS_CONFIG: |external_url http://host001.dev.ia:18181# Add any other gitlab.rb configuration here, each on its own lineports:- 18181:18181- 2222:22volumes:- /data0/Server/Settings/gitlab:/etc/gitlab- /data0/Server/Logs/gitlab:/var/log/gitlab- /data0/Server/Db/gitlab:/var/opt/gitlabshm_size: 256m
安装后进去容器设置管理员(root)密码
gitlab-rails console -e productionirb user User.where(id: 1).first
irb user.password xxx
irb user.password_confirmation xxx
irb user.save!4. 配置实践
4.1 人员与项目
进入管理后台建立两个开发组3名用户成员 (Regular Member权限配置ssh公钥)两个团队项目, 每个项目分别建 dev / staging / live 分支检查 pull push是否正常
GroupMemberProjectBranchDev1ben, developer1Team1 Prj1dev / staging / liveDev2ben, developer2Team2 Prj1dev / staging / live
如图 4.2 部署准备
4.2.1 访问变量及用户账号设置
- 在gitlab服务器因为docker化安装的需映射ssh访问端口 22 2222
- 用工具生成deployer密钥然后用管理员账号登录gitlab后台:
-- 配置deployer私钥变量 Admin Area Settings CI/CD Variables, 定义 SSH_PRIVATE_KEY用deployer的私钥填充将在.gitlab-ci.ym里使用。注去掉默认的Protect variable勾选不然部署时会出现“Error loading key (stdin): error in libcrypto”问题
-- 配置仓库访问公钥, 可选择添加公共的部署公钥或项目部署公钥2选1
A 公共公钥Admin Area Deploy Keys然后在项目Deploy keys中enable之
B 项目公钥切换到项目 Settings Repository Deploy keys添加deployer的Privately keys并且enable使得deployer用户可访问代码仓库
- 在部署服务器建deployer账号分配密钥目录访问权限脚本
adduser deployer
setfacl -R -m u:deployer:rwx /www/wwwroot# 为解决安全及读写权限问题把deployer添加到www组把www加到deployer组
usermod -aGwww deployer
usermod -aGdeployer www# 建立密钥文件 通过vi把该用户的密钥加上
mkdir -p /home/deployer/.ssh touch /home/deployer/.ssh/authorized_keys touch /home/deployer/.ssh/id_rsa touch /home/deployer/.ssh/configchmod 700 /home/deployer/.ssh chmod 600 /home/deployer/.ssh/id_rsa chown deployer:deployer -Rf /home/deployer/.ssh
- 为了ssh能正确访问git仓库端口映射需编辑 /home/deployer/.ssh/config
Host host001.dev.iaUser gitHostname host001.dev.iaPort 2222Preferredauthentications publickeyIdentityFile ~/.ssh/id_rsaTCPKeepAlive yesAddKeysToAgent yes 完成后用deployer登录目标机器测试是否能连接gitlab, 克隆仓库
ssh -T githost001.dev.iagit clone githost001.dev.ia:dev1/team1-prj2.git
4.2.2 Runner设置
Runner 所处位置图: 通过Runner工作组根据脚本进行构建与分发
用root账号登陆在管理面板Admin Area CI/CD Runners页上建Runner它实际上是个运行代理器让工作机的关联进来通过定义tag来调配对应的运行器完成任务这里我定义了一个php的runner gitlab在项目管理中提供了Pipeline editor工具可以在不同分支定义一个.gitlab-ci.yml文件记叙CI/CD步骤与详细内容当用户提交并推送代码时触发过程
工作机安装gitlab-runner客户端, 脚本 gitlab-runner-install.sh
#!/bin/bash# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64# Give it permission to execute
sudo chmod x /usr/local/bin/gitlab-runner# Create a GitLab Runner user
sudo useradd --comment GitLab Runner --create-home gitlab-runner --shell /bin/bash# Install and run as a service
sudo gitlab-runner install --usergitlab-runner --working-directory/home/gitlab-runner
sudo gitlab-runner start
注册runner
gitlab-runner register --url http://host001.dev.ia:18181 --token glrt-HfgiG84kn28NvU69stkh- 选择shell类型gitlab-runner run# 其他相关命令
gitlab-runner list
gitlab-runner unregister --all-runners
gitlab-runner unregister --url http://host001.dev.ia:18181 --token glrt-ABh3NZLwxomjSk6szHbz
4.2.3 要点
- 在gitlab文档中是没有提及给gitlab-runner账号配deployer私钥的当用giltlab-runner账号在终端进行手动测试时需把deployer的id_rsa拷贝过去 gitlab-runner/.ssh目录下。
5. 应用项目 CI/CD
请关注后续序列文章
6. 参考
- Use SSH keys to communicate with GitLab | GitLab
- .gitlab-ci.yml 配置 · PHP/Python/前端/Linux 等等 学习笔记 · 看云
- gitlab runner tag - 简书
- https://dev.to/techworld_with_nana/gitlab-cicd-for-beginners-free-course-2mee