主要参考:blog.csdn.net/weixin_5627…
安装的版本得高于14,14以上集成了helm仓库;本文安装的是16社区版本。
参考:docs.gitlab.cn/jh/user/pac…
参考:faun.dev/c/stories/d…
1. 安装gitlab
[root@server6 ~]# cd /etc/yum.repos.d/
[root@server6 yum.repos.d]# vim gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1
#经过漫长的安装过程
[root@server6 ~]# yum clean all && yum makecache
[root@server6 ~]# yum install gitlab-ce
2. 配置gitlab
安装完成后
#
[root@server6 ~]# gitlab-ctl status
[root@server6 ~]# gitlab-ctl -h
[root@server6 ~]# vim /etc/gitlab/gitlab.rb
#端口不能与其他服务监听的端口冲突,否则会有502错误
external_url 'https://repository.knowdee.com:443'
#开启https
nginx['ssl_certificate'] = "/etc/gitlab/ssl/repository.knowdee.com.cert"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/repository.knowdee.com.key"
letsencrypt['enable'] = false
安装参考:blog.csdn.net/weixin_5627…
开启HTTPS参考:www.cnblogs.com/fengwenqian…
配置完成后,开启服务
3. 设置root访问密码
[root@server6 bin]# ./gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]
GitLab: 16.0.2 (8606c8ca1da) FOSS
GitLab Shell: 14.20.0
PostgreSQL: 13.11
Loading production environment (Rails 6.1.7.2)
irb(main):002:0> u=User.where(id:1).first
irb(main):010:0> u.User.all
irb(main):015:0> u.password='1Ca2Yo3Hr'
=> "1Ca2Yo3Hr"
irb(main):016:0> u.password_confirmation='1Ca2Yo3Hr'
=> "1Ca2Yo3Hr"
irb(main):017:0> u.save!
=> true
irb(main):018:0> exit
4. 查看log
[root@server6 gitlab]# pwd
/var/log/gitlab
[root@server6 gitlab]# ll
总用量 12
drwx------ 2 gitlab-prometheus root 95 6月 8 19:51 alertmanager
drwx------ 2 git root 200 6月 11 19:47 gitaly
drwx------ 2 git root 200 6月 11 19:50 gitlab-exporter
drwx------ 2 git root 130 6月 9 19:47 gitlab-kas
drwx------ 2 git root 4096 6月 12 10:34 gitlab-rails
drwx------ 2 git root 6 6月 7 19:47 gitlab-shell
drwx------ 2 git root 200 6月 11 19:50 gitlab-workhorse
drwx------ 2 root root 200 6月 11 19:47 logrotate
drwxr-x--- 2 root gitlab-www 4096 6月 12 00:34 nginx
drwx------ 2 gitlab-prometheus root 95 6月 8 19:50 node-exporter
drwx------ 2 gitlab-psql root 95 6月 8 19:51 postgres-exporter
drwx------ 2 gitlab-psql root 130 6月 9 19:47 postgresql
drwx------ 2 gitlab-prometheus root 200 6月 11 19:51 prometheus
drwx------ 2 git root 4096 6月 12 10:34 puma
drwxr-xr-x 2 root root 314 6月 12 10:54 reconfigure
drwx------ 2 gitlab-redis root 200 6月 11 19:47 redis
drwx------ 2 gitlab-redis root 95 6月 8 19:51 redis-exporter
drwx------ 2 git root 200 6月 11 19:50 sidekiq
配置:
[root@server6 gitlab]# pwd
/var/opt/gitlab
[root@server6 gitlab]# ls
alertmanager bootstrapped git-data gitlab-exporter gitlab-rails gitlab-workhorse nginx postgres-exporter prometheus redis
backups gitaly gitlab-ci gitlab-kas gitlab-shell logrotate node-exporter postgresql public_attributes.json trusted-certs-directory-hash
4. 配置邮箱
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "imaphz.qiye.163.com"
gitlab_rails['smtp_port'] = 994
gitlab_rails['smtp_user_name'] = "caoyong@knowdee.com"
gitlab_rails['smtp_password'] = "KxdepbxV2aOQAutc"
gitlab_rails['smtp_domain'] = "qiye.163.com"
gitlab_rails['smtp_authentication'] = "login"
#gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['gitlab_email_from'] = 'caoyong@knowdee.com'
user['git_user_email'] = "caoyong@knowdee.com"
更新配置并重启
gitlab-ctl reconfigure
gitlab-ctl restart
测试邮箱:
[root@server6 ssl]# gitlab-rails console
--------------------------------------------------------------------------------
Ruby: ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]
GitLab: 16.0.2 (8606c8ca1da) FOSS
GitLab Shell: 14.20.0
PostgreSQL: 13.11
------------------------------------------------------------[ booted in 25.55s ]
Loading production environment (Rails 6.1.7.2)
irb(main):001:0> Notify.test_email('cyxinda@163.com','gitlab email','Holoow world').deliver_now
Delivered mail 64868d4d7ac2b_ad6a317412918@server6.mail (1266.1ms)
=> #<Mail::Message:291820, Multipart: false, Headers: <Date: Mon, 12 Jun 2023 11:13:17 +0800>, <From: GitLab <caoyong@knowdee.com>>, <Reply-To: GitLab <noreply@192.168.5.6>>, <To: cyxinda@163.com>, <Message-ID: <64868d4d7ac2b_ad6a317412918@server6.mail>>, <Subject: gitlab email>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>
irb(main):002:0>
管看邮箱,已经有邮件接收到了
helm仓库
在gitlab页面上面,创建一个普通的project,ID为3
需要创建helm命令用的password,实际上是gitlab的Token
复制保存下token,以备后面使用glpat-zyfAyBbaou1cH
添加helm-push插件:
helm plugin install https://github.com/chartmuseum/helm-push.git
上传helm包
root@ubuntu:/home/cyxinda/workspace/test# helm package demo
Successfully packaged chart and saved it to: /home/cyxinda/workspace/test/demo-0.1.0.tgz
root@ubuntu:/home/cyxinda/workspace/test# ls
demo demo-0.1.0.tgz
root@ubuntu:/home/cyxinda/workspace/test# helm repo add --username root --password glpat-zyfAyBbaou1cH demo https://repository.knowdee.com/api/v4/projects/3/packages/helm/stable
"demo" has been added to your repositories
root@ubuntu:/home/cyxinda/workspace/test# helm repo list
NAME URL
ingress-nginx https://kubernetes.github.io/ingress-nginx
prometheus-community https://prometheus-community.github.io/helm-charts
deepflow https://deepflowio.github.io/deepflow
milvus https://milvus-io.github.io/milvus-helm/
kubesphere https://charts.kubesphere.io/main
polardbx https://polardbx-charts.oss-cn-beijing.aliyuncs.com
test https://harbor.192.168.5.6.nip.io/chartrepo/library
example-repo https://repository.knowdee.com/api/v4/projects/2/packages/helm/stable
example https://repository.knowdee.com/api/v4/projects/2/packages/helm/stable
demo https://repository.knowdee.com/api/v4/projects/3/packages/helm/stable
root@ubuntu:/home/cyxinda/workspace/test# helm search repo demo
No results found
root@ubuntu:/home/cyxinda/workspace/test# helm cm-push demo-0.1.0.tgz demo
Pushing demo-0.1.0.tgz to demo...
Done.
root@ubuntu:/home/cyxinda/workspace/test# helm repo update demo
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "demo" chart repository
Update Complete. ⎈Happy Helming!⎈
root@ubuntu:/home/cyxinda/workspace/test# helm search repo demo
NAME CHART VERSION APP VERSION DESCRIPTION
demo/demo 0.1.0 1.16.0 A Helm chart for Kubernetes
root@ubuntu:/home/cyxinda/workspace/test#
如果自定义的证书,则需要在命令行上面添加好相关参数:
root@ubuntu:/home/cyxinda/workspace/test# helm repo add --username root --password glpat-zyfAyBbaou1cH --ca-file /etc/docker/certs.d/repository.knowdee.com/ca.crt --cert-file /etc/docker/certs.d/repository.knowdee.com/repository.knowdee.com.cert --key-file /etc/docker/certs.d/repository.knowdee.com/repository.knowdee.com.key example https://repository.knowdee.com/api/v4/projects/2/packages/helm/stable
"example" has been added to your repositories
helm plugin install https://github.com/karuppiah7890/helm-schema-gen.git
helm schema-gen values.yaml
helm schema-gen values.yaml > values.schema.json
helm语法:godleon.github.io/blog/DevOps…
2.8版本以前的harbor
./install.sh --with-chartmuseum
helm cm-push test https://harbor.192.168.5.6.nip.io/chartrepo/caoyong --ca-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/ca.crt --cert-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.cert --key-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.key -u admin -p admin_lenobot
helm push test- oci://repository.knowdee.com/library --ca-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/ca.crt --cert-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.cert --key-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.key