gitlab安装、配置smtp、配置https

rpm安装:

yum install https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.2.3-ce.0.el7.x86_64.rpm

docker安装:

安装包预先已经打包好gitlab.tar ,导入docker即可:

docker load -i gitlab.tar 

mkdir /opt/gitlab

GITLAB_HOME=/opt/gitlab # 数据持久化目录

docker run --detach --hostname gitlab.ctnrs.com --publish 443:443 --publish 80:80 --publish 2222:22 --name gitlab --restart always --volume $GITLAB_HOME/config:/etc/gitlab --volume $GITLAB_HOME/logs:/var/log/gitlab --volume $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ce:latest

 打开页面:

 配置smtp:

docker exec -it gitlab bash

 vi /etc/gitlab/gitlab.rb

gitlab_rails['time_zone'] = 'Asia/Shanghai' # 时区

gitlab_rails['gitlab_email_from'] = 'baojingtongzhi@163.com'

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.163.com"

gitlab_rails['smtp_port'] = 25

gitlab_rails['smtp_user_name'] = "baojingtongzhi@163.com"

gitlab_rails['smtp_password'] = "TKOLBLXRONCPHANJ"# 授权码或者密码

gitlab_rails['smtp_domain'] = "163.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = false 

重新加载配置:

gitlab-ctl reconfigure

如果使用docker部署,直接docker restart gitlab

测试是否配置成功:

gitlab-rails console

irb(main):001:0> Notify.test_email('邮箱地址', '标题', '内容').deliver_now

irb(main):002:0> exit

打开设置的邮箱,能收到测试邮件,证明成功。

配置https:

1、自签证书

2、上传证书文件到/etc/gitlab/ssl目录

3、修改配置文件指定证书

下载证书工具并传到/usr/bin:

[root@k8s-2 opt]# cat cfssl.sh
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
chmod +x cfssl*
mv cfssl_linux-amd64 /usr/bin/cfssl
mv cfssljson_linux-amd64 /usr/bin/cfssljson
mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo

运行脚本sh cfssl.sh

配置CA和生成证书:

[root@k8s-2 opt]# cat certs.sh
cat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"server": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
EOF

cat > ca-csr.json <<EOF
{
"CN": "gitlab",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Beijing",
"ST": "Beijing"
}
]
}
EOF

cfssl gencert -initca ca-csr.json | cfssljson -bare ca -

cat > gitlab.ctnrs.com-csr.json <<EOF
{
"CN": "gitlab.ctnrs.com",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing"
}
]
}
EOF

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server gitlab.ctnrs.com-csr.json | cfssljson -bare gitlab.ctnrs.com

sh certs.sh

把证书复制到指定目录:

[root@k8s-2 config]# pwd

/opt/gitlab/config

[root@k8s-2 config]# mkdir ssl

cd /opt

cp gitlab.ctnrs.com-key.pem gitlab.ctnrs.com.pem /opt/gitlab/config/ssl/

因为宿主机和容器目录是映射关系,所以登录容器也可以看到证书:

[root@k8s-2 ssl]# docker exec -it gitlab bash

root@gitlab:/# cd /etc/gitlab/ssl

gitlab.ctnrs.com-key.pem gitlab.ctnrs.com.pem
修改配置文件指定证书:

# vim /etc/gitlab/gitlab.rb

external_url 'https://gitlab.ctnrs.com' # 访问使用的域名或者IP

nginx['enable'] = true

nginx['redirect_http_to_https'] = true #设置开启自动将HTTP跳转到HTTPS

nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.ctnrs.com.pem"

nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.ctnrs.com-key.pem“

重新加载配置:

docker restart gitlab

 测试证书:

  • 测试机器配置host文件,ip和域名对应
  • 浏览器输入http://域名,能自动跳转到https
posted @ 2021-05-05 00:10  jamespeng2020  阅读(685)  评论(0)    收藏  举报