栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Gitlab/SSL证书/内网部署/Go项目使用示例

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Gitlab/SSL证书/内网部署/Go项目使用示例

1. 安装docker

Install Docker Engine on Debian | Docker Documentation

2.安装gitlab

GitLab Docker images | GitLab

如果内网IP地址为 192.168.0.2

--hostname gitlab.example.com # 改为内网地址 例如:192.168.0.2
3. 修改配置
vim /home/gitlab/config/gitlab.rb
external_url 'https://192.168.0.2'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/192.168.0.2.crt" #别管有没有,先配置
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/192.168.0.2.key" #别管有没有,先配置


gitlab_rails['time_zone'] = 'Asia/Shanghai'
sidekiq['concurrency'] = 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
prometheus_monitoring['enable'] = false
4.创建证书
vim /home/gitlab/config/ssl/generate_crt.sh #编写生成证书脚本
#!/bin/sh
# 创建证书:
read -p "输入你的内网地址: " DOMAIN
SUBJECT="/C=ZH/ST=Home/L=$DOMAIN/O=$DOMAIN/OU=$DOMAIN/CN=$DOMAIN"
openssl req -subj $SUBJECT  -sha256 -newkey rsa:2048 -nodes -keyout  $DOMAIN.key -x509 -days 3650 -out  $DOMAIN.crt -config ./openssl.cnf -extensions v3_req
docker cp gitlab:/usr/lib/ssl/openssl.cnf openssl.cnf //复制容器的默认配置
vim openssl.cnf #修改配置
req_extensions = v3_req #把这个配置打开

[ v3_req ]


# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names # 添加一行配置

[ alt_names ]# 添加一行配置
IP.1 = 192.168.0.2 # 添加一行配置
#DNS.1 = a.com #如果是内网,没有域名的,不能添加DNS.否则证书出错
chmod 775 ./generate_crt.sh #给权限
./generate_crt.sh #生成证书
docker restart gitlab #重启容器
5.windows 安装证书
scp root@192.168.0.2:/home/gitlab/config/ssl/192.168.0.2.crt D:a.cer#CMD命令行下载证书到windows

把它导入到"受信任的根证书颁发机构"中

 6.配置gitlab
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password #获取gitlab管理员root的密码

可访问性与控制中修改URL 

 7.Golang 项目使用示例

创建新用户 golanguser=>使用新用户登录gitlab=>新用户创建两个新项目: test1/test2

Widows配置环境变量  

# 运行CMD命令 , 配置环境变量
setx CGO_ENABLED 1
setx GOOS windows
setx GOARCH amd64
setx CC gcc
setx GOPATH D:DevManager #我这里是这个位置
setx GOPROXY https://goproxy.cn,direct #使用代理
setx GO111MODULE on
setx GOINSECURE 192.168.0.2#指定不检查证书的地址
setx GOPRIVATE 192.168.0.2 #指定不使用代理的地址
setx GOROOT D:go #我这里是这个位置
# 运行CMD命令,下拉test项目
mkdir %GOPATH%srcgolanguser192.168.0.2
cd %GOPATH%srcgolanguser192.168.0.2
D: #切换到D盘,我这里是D盘
git clone https://192.168.0.2/golanguser/test1.git
git clone https://192.168.0.2/golanguser/test2.git
//在test1文件夹中,新建test1.go文件
package test1

import (
	"fmt"
)


//首字母要大写
func Hello(){
    fmt.Println("我是测试1")
}
//在test2项目文件夹中,创建一个test2.go文件
package test2
import(
    "192.168.0.2/golanguser/test1" #这里不会走代理
    "fmt"
    "github.com/dodoao/gt" #这里会走代理
)

func test2(){
    test1.Hello()
    fmt.Println(gt.Get_current_directory())
}
#运行CMD命令,初始化
cd %GOPATH%/src/192.168.0.2/golanguser/test1 #
D: #切换到D盘,我这里是D盘
go mod init
go get -d -v ./... #循环下载所有依赖
cd %GOPATH%/src/192.168.0.2/golanguser/test2 #
D: #切换到D盘,我这里是D盘
go mod init
go get -d -v ./... #循环下载所有依赖,只要这里成功完成了,就成功了

基本用法

       

git clone https://username:password@192.168.248.161/xiaomeing/dba.git

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号