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
浙公网安备 33010602011771号