1.下载相应文件node
# mkdir gitlab && cd gitlab # vim url.txt https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/gitlab-ns.yaml https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/redis-svc.yaml https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/redis-rc.yaml https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/postgresql-svc.yaml https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/postgresql-rc.yaml https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/gitlab.rb https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/gitlab-svc.yaml https://raw.githubusercontent.com/zhijiansd/ansible-k8s/master/addons/gitlab/gitlab-rc.yaml # vim download.sh #!/bin/bash if command -v wget >/dev/null 2>&1 then echo 'Exists wget' else echo "Wget command not installed" yum -y install wget fi file=/root/gitlab/url.txt Num=`awk 'END{print NR}' $file` echo Total: $Num URLs cat $file | while read line do wget -c -i $file done
2.部署 Namepacegit
# kubectl create -f gitlab-ns.yaml
3.部署 Redisgithub
# kubectl create -f redis-svc.yaml # kubectl create -f redis-rc.yaml
4.部署 PostgreSQL
web
# kubectl create -f postgresql-svc.yaml # kubectl create -f postgresql-rc.yaml
5.部署 GitLabredis
A.建立 ConfigMapsql
# vim gitlab.rb gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = "wangzhijiansd@qq.com" gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "wangzhijiansd@qq.com" gitlab_rails['smtp_password'] = "**********" gitlab_rails['smtp_domain'] = "zhi.io" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_openssl_verify_mode'] = "peer" gitlab_rails['smtp_tls'] = true prometheus['monitor_kubernetes'] = true prometheus['listen_address'] = '0.0.0.0:9090' node_exporter['enable'] = true redis_exporter['enable'] = true postgres_exporter['enable'] = true gitlab_monitor['enable'] = true
注:如上gitlab.rb配置上半部分实现发送邮件功能,下半部分配置了prometheus采集相关信息。docker
gitlab_rails['smtp_password']配置的是邮箱受权码,不是邮箱密码,开启SMTP后,163邮箱会让你本身配置受权码,而QQ邮箱是自动生成的受权码,谨记。
数据库
# kubectl -n gitlab create configmap gitlab-rb --from-file=gitlab.rb # kubectl -n gitlab describe configmap gitlab-rb Name: gitlab-rb Namespace: gitlab Labels: <none> Annotations: <none> Data ==== gitlab.rb: ---- gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = "wangzhijiansd@qq.com" gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "wangzhijiansd@qq.com" gitlab_rails['smtp_password'] = "**********" gitlab_rails['smtp_domain'] = "zhi.io" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_openssl_verify_mode'] = "peer" gitlab_rails['smtp_tls'] = true prometheus['monitor_kubernetes'] = true prometheus['listen_address'] = '0.0.0.0:9090' node_exporter['enable'] = true redis_exporter['enable'] = true postgres_exporter['enable'] = true gitlab_monitor['enable'] = true Events: <none>
B.部署 Gitlabvim
# kubectl create -f gitlab-svc.yaml # kubectl create -f gitlab-rc.yaml
关于gitlab-rc.yaml配置的几点注释:
bash
GITLAB_SECRETS_OTP_KEY_BASE 用于加密数据库中的2FA秘密。若是您丢失或轮换此密码,则您的全部用户都没法使用2FA登陆。
GITLAB_SECRETS_DB_KEY_BASE 用于加密数据库中的CI密钥变量以及导入凭证。若是丢失或轮换此秘密,您将没法使用现有的CI秘密。
GITLAB_SECRETS_SECRET_KEY_BASE 用于密码重置连接和其余“标准”身份验证功能。若是丢失或轮换此密码,电子邮件中的密码重置令牌将重置。
注:可使用pwgen -Bsv1 64命令生成随机字符串并将其指定为如上值。
GITLAB_ROOT_PASSWORD配置GitLab的root密码。
GITLAB_ROOT_EMAIL配置GitLab的root用户的Email。
重要:因为加上探针,pod没法启动,这里我去掉了探针,很郁闷。
C.查看 Pod 和 Services
# kubectl -n gitlab get pod NAME READY STATUS RESTARTS AGE gitlab-jmwbr 1/1 Running 0 1h postgresql-k9p4s 1/1 Running 0 1h redis-rxlqc 1/1 Running 0 1h # kubectl -n gitlab get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gitlab LoadBalancer 10.244.85.204 <pending> 80:41008/TCP,22:30270/TCP,9090:34210/TCP 1h postgresql ClusterIP 10.244.130.245 <none> 5432/TCP 1h redis ClusterIP 10.244.158.130 <none> 6379/TCP 1h
注:gitlab下载镜像和初始化较久,毕竟镜像就1个多G,因此请耐心等待几分钟,以后使用NodeIP:41008便可进入GitLab的web界面,使用nodeIP:34210便可进入Prometheus界面。
6.这里我配置了traefik,且使用了Google Chrome的自动翻译功能,实际gitlab并无中文版
这里输入如上配置的root账号wangzhijiansd@qq.com和密码wangzhijian便可登陆root用户。
以下建立一个新用户
普通用户界面以下
测试忘记密码功能
登陆邮箱查看是否收到
点击“Reset password”,可是因为环境关系并不能跳转访问,以下:
http://gitlab-qgb77/users/password/edit?reset_password_token=HzupUf56ymL2gs12ApPf
这里将gitlab-qgb77更改成环境中的地址便可:
这时候就能够更改密码了,更改完成后系统会发送邮件提示密码已成功更改。
如今就能够建立项目了。
附注:
https://github.com/sameersbn/docker-gitlab
https://github.com/zhijiansd/ansible-k8s/tree/master/addons/gitlab