Gitlab安裝部署

環(huán)境:

操作系統(tǒng): Centos7.6

IP地址: 192.168.31.60

內(nèi)核版本:?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 # 編輯站點(diǎn)地址?

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)啟動(dòng)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
查看指數(shù)據(jù)庫(kù)日志: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 docker

mkdir -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
#驗(yàn)證
[root@openldap ~]# docker-compose -v
docker-compose version 1.24.0, build 0aa59064
[root@openldap ~]# docker -v
Docker version 19.03.8, build afacb8b

2)編寫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í)行啟動(dòng)
[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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容