当前位置: 首页 > news >正文

K8S学习之基础五十九:部署gitlab服务

部署gitlab

docker pull gitlab/gitlab-ce:latest
docker tag gitlab/gitlab-ce:latest 172.16.80.140/gitlab/gitlab-ce:latest
docker push 172.16.80.140/gitlab/gitlab-ce:latest
docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab 172.16.80.140/gitlab/gitlab-ce:latest

在这里插入图片描述
修改参数,在/home/gitlab/config/gitlab.rb配置文件后增加三行

external_url 'http://172.16.80.133'
gitlab_rails['gitlab_ssh_host'] = '172.16.80.133'
gitlab_rails['gitlab_shell_ssh_port'] = 222

重启容器
docker restart gitlab
浏览器查看80端口
在这里插入图片描述
一直提示502,应该是加载比较慢,ds以下说是内存要8G以上才行
增加虚拟机内存,重启docker,到登录界面
在这里插入图片描述

默认账户root,密码在程序配置文件中,可通过以下方式获取
在这里插入图片描述
但尝试使用root和密码登录,一直提示无法登录,通过ds,在gitlab控制台发现没有root账户,要手工创建,关联namaspace

gitlab-rails console
irb(main):008:0> user = User.find_by(username: 'root')
=> nil
irb(main):004:1*   user = User.new(
irb(main):005:1*     username: 'root',
irb(main):006:1*     email: 'admin@example.com',       # 替换为你的真实邮箱
irb(main):007:1*     name: 'Administrator',
irb(main):008:1*     password: 'YourSecurePass123!',   # 密码需包含大小写字母、数字和符号
irb(main):009:1*     password_confirmation: 'YourSecurePass123!',
irb(main):010:1*     admin: true
irb(main):011:0>   )
=> #<User id: @root>
irb(main):032:1* org = Organizations::Organization.create!(
irb(main):033:1*   name: 'Default Organization',
irb(main):034:1*   path: 'default-org'  # 必须包含2个以上字符,只允许字母、数字、_和-,不能以-开头
irb(main):035:0> )
=> 
#<Organizations::Organization:0x00007f98468d2580
irb(main):036:1* begin
irb(main):037:2*   org = Organizations::Organization.find_or_create_by!(
irb(main):038:2*     name: 'Default Organization',
irb(main):039:2*     path: 'default-org'
irb(main):040:1*   )
irb(main):041:1* rescue ActiveRecord::RecordInvalid => e
irb(main):042:1*   
irb(main):043:1*   
irb(main):044:1*   
irb(main):045:1*   rescue ActiveRecord::RecordInvalid => e
irb(main):046:1*   puts "组织创建失败: #{e.message}"
irb(main):047:1*   org = Organizations::Organization.first || raise("没有可用的组织")
irb(main):048:0> end
=> 
#<Organizations::Organization:0x00007f984633bb80
 id: 1000,
 created_at: Fri, 28 Mar 2025 03:16:38.065510000 UTC +00:00,
 updated_at: Fri, 28 Mar 2025 03:16:38.065510000 UTC +00:00,
 name: "Default Organization",
 path: "default-org",
 visibility_level: 0>
irb(main):049:0> 
irb(main):050:1* user = User.new(
irb(main):051:1*   username: 'root',
irb(main):052:1*   email: 'admin@example.com',
irb(main):053:1*   name: 'Administrator',
irb(main):054:1*   password: 'YourSecurePass123!',
irb(main):055:1*   password_confirmation: 'YourSecurePass123!',
irb(main):056:1*   admin: true
irb(main):057:0> )
=> #<User id: @root>
irb(main):058:1* namespace = Namespace.new(
irb(main):059:1*   name: 'root',
irb(main):060:1*   path: 'root',
irb(main):061:1*   owner: user,
irb(main):062:1*   visibility_level: 20,
irb(main):063:1*   organization: org
irb(main):064:0> )
=> #<Namespaces::UserNamespace id: @root>
irb(main):065:0> 
irb(main):066:0> user.namespace = namespace
=> #<Namespaces::UserNamespace id: @root>
irb(main):067:1* if user.save!
irb(main):068:1*   puts "✅ Root用户创建成功!"
irb(main):069:1* else
irb(main):070:1*   puts "❌ 错误:#{user.errors.full_messages}"
irb(main):071:0> end
✅ Root用户创建成功!
=> nil
irb(main):072:0> user = User.find_by(username: 'root')
=> #<User id:1 @root>

用 root/YourSecurePass123!登录gitlab
在这里插入图片描述

在这里插入图片描述

在jenkins插件管理中,安装git插件,完毕后选择重启jenkins
在这里插入图片描述
在这里插入图片描述
在jenkins为gitlab添加凭据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在gitlab中新建项目
在这里插入图片描述
在这里插入图片描述
在giblib服务器上创建秘钥对
在这里插入图片描述

cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXTAR2mYVWz6I28l+uM9ZTwWcWlyOnQ6eGtjAz00RIvHolKXBaeNMeQ56jKZD4otvI/VyhgOj1W8bRcF/2fFlSHpt2CVEeREhvwKMDcM4xUicMxAY0O/LZ6Ar6DvlxHuLMYsQXi8YRxpqTOIFa0cvTNicrPQVAjXjbsCer7gLsyL1Y9NvxMe4xT+vAB6G+TP1Q3vGIpDomBCZ8++Td7wQe2Rph4PL0kX2sEC4MqT+nfmtnpNu0ClBdTHevA77qSwkVFOpUyXGgNyqHioDUasFMy1fPK0SrDlbzn99J2b03tLvkCgfa/mX8391jMTG09zxXdMIUAIHH/Gy0PKxn4tt7 root@node02

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 学校安全用电管理,还得是CET高校综合能源管理系统解决方案
  • 科技推动下,楼宇自控技术在建筑节能领域如何大放异彩
  • Flutter视频播放优化
  • 通过外网访问局域网内某台电脑的共享文件夹(Win10/11)
  • 【数学建模】动态规划算法(Dynamic Programming,简称DP)详解与应用
  • PrimeTime生成.lib竟暗藏PG添加Bug
  • JavaScript模板字符串:
  • ​​解锁 JavaScript DOM:节点操作的核心方法与最佳实践
  • CSS之盒子模型
  • 数据库----单表、多表
  • 【QT5 多线程示例】条件变量
  • WPF TemplateBinding与TemplatedParent区别
  • CSS3:现代Web设计的魔法卷轴
  • 【深度学习总结】多模态推理分割:LISA代码详解
  • JVM中的垃圾回收算法
  • 模拟电子技术-基本放大电路
  • 前端调试技巧:console输出被禁时,用DOM输出调试信息
  • 洛谷 P10463 Interval GCD Solution
  • uniapp利用第三方(阿里云)实现双人视频/音频通话功能(附完整的项目代码)
  • uniapp开发中store的基本用法和模块化详解
  • 上海虹口网站制作/买卖友情链接
  • 做网站多少钱赚钱吗/建站是什么意思
  • 南县网站制作/公众号推广接单平台
  • 刷单做任务的网站/新出的app推广在哪找
  • 铜陵app网站做招聘/优化网站
  • 做网站的会淘宝美工么/各大网站提交入口