環(huán)境:
操作系統(tǒng): Centos7.6
IP地址: 192.168.31.60
內核版本:?3.10.0-957.el7.x86_64
第一種方式: 使用RPM方式安裝
源地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
1)安裝部署
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm?
rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm?
vim /etc/gitlab.rb # 編輯站點地址?
external_url 'http://gitlab.ziioffice.com'
git_data_dirs({ "default" => { "path" => "/data/git-data" } })?
gitlab_rails['backup_path'] = "/data/git-data/backups"
#配置郵箱
?gitlab_rails['gitlab_email_enabled'] = true?
gitlab_rails['gitlab_email_from'] = 'xionghaihua@distrii.com' gitlab_rails['gitlab_email_display_name'] = 'xionghaihua' gitlab_rails['gitlab_email_reply_to'] = 'xhaihua@distrii.com'??
gitlab_rails['smtp_enable'] = true??
gitlab_rails['smtp_address'] = "smtp.distrii.com"
gitlab_rails['smtp_port'] = 465?
?gitlab_rails['smtp_user_name'] = "xionghaihua@distrii.com"?
gitlab_rails['smtp_password'] = "123456"?
gitlab_rails['smtp_domain'] = "smtp.distrii.com"??
gitlab_rails['smtp_authentication'] = "login"?
?gitlab_rails['smtp_enable_starttls_auto'] = true?
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['smtp_tls'] = true??2)啟動gitlab
gitlab-ctl reconfigure??
gitlab-ctl start?
gitlab-ctl status? ? ?
gitlab-ctl stop
3)日志查看:
日志路徑: /var/log/gitlab
查看所有日志:gitlab-ctl tail
查看nginx日志:gitlab-ctl tail nginx/gitlab_access.log
查看指數據庫日志:gitlab-ctl tail postgresql
第二種方式: 使用Docker-compose方式安裝
1)安裝部署docker
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start dockermkdir -p /data/docker
cat >>/etc/docker/daemon.json <<-EOF
{ "registry-mirrors": ["https://wxezogdu.mirror.aliyuncs.com"],
"graph": "/data/docker"
}
EOF
systemctl restart docker
#安裝docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#驗證
[root@openldap ~]# docker-compose -v
docker-compose version 1.24.0, build 0aa59064
[root@openldap ~]# docker -v
Docker version 19.03.8, build afacb8b2)編寫docker-compose.yml文件
#拉取鏡像
? docker pull gitlab/gitlab-ce:12.9.0-ce.0#創(chuàng)建目錄
mkdir -p /data/gitlab
mkdir /data/gitlab/{config,data,logs}#編寫docker-compose.yml文件
cd /data/gitlab
cat >docker-compose.yml <<-EOF
version: "3"
services:
? ? gitlab:
? ? ? ?image:?gitlab/gitlab-ce:12.9.0-ce.0
? ? ? ?container_name: gitlab
? ? ? ?restart: always
? ? ? ?hostname: 'gitlab.ziioffice.com'
? ? ? ?environment:
? ? ? ? ? GITLAB_OMNIBUS_CONFIG: |
? ? ? ? ? ? ?external_url? "http://gitlab.ziioffice.com"
? ? ? ? ? ? ?gitlab_rails['gitlab_shell_ssh_port'] = 2222
? ? ? ? ? ? ?gitlab_rails['gitlab_email_enabled'] = true
? ? ? ? ? ? ?gitlab_rails['gitlab_email_from'] = 'xionghaihua@distrii.com'? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ?gitlab_rails['gitlab_email_display_name'] = 'xionghaihua'
? ? ? ? ? ? ?gitlab_rails['gitlab_email_reply_to'] = 'xionghaihua@distrii.com'
? ? ? ? ? ? ?gitlab_rails['smtp_enable'] = true
? ? ? ? ? ? ?gitlab_rails['smtp_address'] = "smtp.distrii.com"
? ? ? ? ? ? ?gitlab_rails['smtp_port'] = 465
? ? ? ? ? ? ?gitlab_rails['smtp_user_name'] = "xhaihua@distrii.com"
? ? ? ? ? ? ?gitlab_rails['smtp_password'] = "123456"
? ? ? ? ? ? ?gitlab_rails['smtp_domain'] = "smtp.distrii.com"
? ? ? ? ? ? ?gitlab_rails['smtp_authentication'] = "login"
? ? ? ? ? ? ?gitlab_rails['smtp_enable_starttls_auto'] = true
? ? ? ? ? ? ?gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
? ? ? ? ? ? ?gitlab_rails['smtp_tls'] = true
? ? ? ports:
? ? ? ? ? -? '443:443'
? ? ? ? ? -? '2222:22'
? ? ? ? ? -? "80:80"
? ? ? volumes:
? ? ? ? ? -? '/data/gitlab/config:/etc/gitlab'
? ? ? ? ? -? '/data/gitlab/logs:/var/log/gitlab'
? ? ? ? ? -? '/data/gitlab/data:/var/opt/gitlab'
? ? ? logging:
? ? ? ? ?driver:? "json-file"
? ? ? ? ?options:
? ? ? ? ? ? ?max-size: "20m"
? ? ? ? ? ? ?max-file: "10"EOF
?#執(zhí)行啟動
[root@gitlab gitlab]# docker-compose up -d
Creating network "gitlab_default" with the default driver
Creating gitlab ... done
?[root@gitlab gitlab]# docker-compose ps
?Name Command State Ports -----------------------------------------------------------------------------------------------------------------
gitlab /assets/wrapper Up (health: starting) 0.0.0.0:2222->22/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp#gitlab訪問
http://gitlab.ziioffice.com
第三種方式: kubernetes部署gitlab
https://gitee.com/xhaihua/devops/blob/master/gitlab/deploy-gitlab.yaml
---
kind: Deployment
apiVersion: apps/v1
metadata:
? labels:
? ? k8s-app: gitlab
? name: gitlab
? namespace: devops
spec:
? replicas: 1
? revisionHistoryLimit: 10
? selector:
? ? matchLabels:
? ? ? k8s-app: gitlab
? template:
? ? metadata:
? ? ? labels:
? ? ? ? k8s-app: gitlab
? ? ? namespace: devops
? ? ? name: gitlab
? ? spec:
? ? ? containers:
? ? ? ? - name: gitlab
? ? ? ? ? image: gitlab/gitlab-ce:12.9.0-ce.0
? ? ? ? ? imagePullPolicy: IfNotPresent
? ? ? ? ? ports:
? ? ? ? ? ? - containerPort: 30088
? ? ? ? ? ? ? name: web
? ? ? ? ? ? ? protocol: TCP
? ? ? ? ? ? - containerPort: 22
? ? ? ? ? ? ? name: agent
? ? ? ? ? ? ? protocol: TCP
? ? ? ? ? resources:
? ? ? ? ? ? limits:
? ? ? ? ? ? ? cpu: 2000m
? ? ? ? ? ? ? memory: 8Gi
? ? ? ? ? ? requests:
? ? ? ? ? ? ? cpu: 500m
? ? ? ? ? ? ? memory: 512Mi
? ? ? ? ? livenessProbe:
? ? ? ? ? ? httpGet:
? ? ? ? ? ? ? path: /users/sign_in
? ? ? ? ? ? ? port: 30088
? ? ? ? ? ? initialDelaySeconds: 60
? ? ? ? ? ? timeoutSeconds: 5
? ? ? ? ? ? failureThreshold: 12
? ? ? ? ? readinessProbe:
? ? ? ? ? ? httpGet:
? ? ? ? ? ? ? path: /users/sign_in
? ? ? ? ? ? ? port: 30088
? ? ? ? ? ? initialDelaySeconds: 60
? ? ? ? ? ? timeoutSeconds: 5
? ? ? ? ? ? failureThreshold: 12
? ? ? ? ? volumeMounts:
? ? ? ? ? ? - name: gitlab-conf
? ? ? ? ? ? ? mountPath: /etc/gitlab
? ? ? ? ? ? - name: gitlab-log
? ? ? ? ? ? ? mountPath: /var/log/gitlab
? ? ? ? ? ? - name: gitlab-data
? ? ? ? ? ? ? mountPath: /var/opt/gitlab
? ? ? ? ? env:
? ? ? ? ? ? - name: gitlab_HOME
? ? ? ? ? ? ? value: /var/lib/gitlab
? ? ? volumes:
? ? ? ? - name: gitlab-conf
? ? ? ? ? hostPath:
? ? ? ? ? ? path: /data/devops/gitlab/config
? ? ? ? ? ? type: Directory
? ? ? ? - name: gitlab-log
? ? ? ? ? hostPath:
? ? ? ? ? ? path: /data/devops/gitlab/logs
? ? ? ? ? ? type: Directory
? ? ? ? - name: gitlab-data
? ? ? ? ? hostPath:
? ? ? ? ? ? path: /data/devops/gitlab/data
? ? ? ? ? ? type: Directory
? ? ? serviceAccountName: gitlab
---
apiVersion: v1
kind: ServiceAccount
metadata:
? labels:
? ? k8s-app: gitlab
? name: gitlab
? namespace: devops
---
kind: Service
apiVersion: v1
metadata:
? labels:
? ? k8s-app: gitlab
? name: gitlab
? namespace: devops
spec:
? type: NodePort
? ports:
? ? - name: web
? ? ? port: 30088
? ? ? targetPort: 30088
? ? ? nodePort: 30088
? ? - name: slave
? ? ? port: 22
? ? ? targetPort: 22
? ? ? nodePort: 30022
? selector:
? ? k8s-app: gitlab
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: gitlab
namespace: devops
rules:
- apiGroups: [""]
? resources: ["pods"]
? verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
? resources: ["pods/exec"]
? verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
? resources: ["pods/log"]
? verbs: ["get","list","watch"]
- apiGroups: [""]
? resources: ["secrets"]
? verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: gitlab
namespace: devops
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: gitlab
subjects:
- kind: ServiceAccount
? name: gitlab
? namespace: devops