Jenkins

安装

  • 去官网下载rpm包

  • 安装完后会生成如下目录

    /usr/lib/jenkins/jenkins.war WAR包

    /etc/sysconfig/jenkins 配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。

    /var/lib/jenkins/ 默认的JENKINS_HOME目录

    /var/log/jenkins/jenkins.log Jenkins日志文件

  • 启动 systemctl start jenkins

  • 默认访问8080端口

  • 启动后界面会显示一直在准备,修改配置文件下的hudson.model.UpdateCenter.xml

    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version='1.1' encoding='UTF-8'?>
    <sites>
    <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    </url>
    </site>
    </sites>
  • 出现No such plugin: cloudbees-folder 去镜像下载此插件放在war包下的/var/cache/jenkins//war/WEB-INF/detached-plugins/目录下

  • 卸载

加速下载:Jenkins目录下的/var/lib/jenkins/update/default.json里面的所有updates.jenkins-ci.org更换为mirrors.tuna.tsinghua.edu.cn/jenkins即可

Nginx反向代理

需要配置Jenkins的prefix,否则Nginx反向代理后会404

1
2
3
4
5
6
7
server {
#Jenkins
location /jenkins {
proxy_pass http://127.0.0.1:8081/jenkins;
}

}

Jenkins的配置文件

1
JENKINS_ARGS=" --prefix=/jenkins"

整合Git

  • 安装Git 安装官方资源
  • 安装GitLab

Gitlab说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/etc/gitlab/gitlab.rb          #gitlab配置文件
/opt/gitlab #gitlab的程序安装目录
/var/opt/gitlab #gitlab目录数据目录
/var/opt/gitlab/git-data #存放仓库数据
gitlab-ctl reconfigure #重新加载配置
gitlab-ctl status #查看当前gitlab所有服务运行状态
gitlab-ctl stop #停止gitlab服务
gitlab-ctl stop nginx #单独停止某个服务
gitlab-ctl tail #查看所有服务的日志

Gitlab的服务构成:
nginx: 静态web服务器
gitlab-workhorse 轻量级反向代理服务器
logrotate 日志文件管理工具
postgresql 数据库
redis 缓存数据库
sidekiq 用于在后台执行队列任务(异步执行)

提高gitLab速度

如果不进行swap分区的话,可能会502报错

https://blog.csdn.net/qq_30745307/article/details/82829064?utm_source=distribute.pc_relevant.none-task

Nginx反向代理gitLab

  • 配置/etc/gitlab/gitlab.rb
1
2
external_url 'http://sunhome.online/gitlab'
nginx['listen_port'] = 8082
  • 配置Nginx的文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server{
listen 80;
server_name sunhome.online;

#gitlab
location /gitlab {
# 这个大小的设置非常重要,如果 git 版本库里面有大文件,设置的太小,文件push 会失败,根据情况调整
client_max_body_size 50m;
proxy_redirect off;
#以下确保 gitlab中项目的 url 是域名而不是 http://git,不可缺少
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8082/gitlab;
}


}

增加自定义Hooks

在/var/opt/gitlab/git-data/repositories找到自己的项目.git文件,下创建custom_hooks,然后可以创建post-recive脚本,需要gitlab-ctl reconfigure才能生效

如果安装gitlab11.10以后的版本,会导致git-data下数据文件会被加密,暂不知如何解决

出现代码上传成功,但是gitlab界面依然显示空项目

1
gitlab-rake cache:clear RAILS_ENV=production

邮件设置

1
2
3
4
5
6
7
8
9
10
11
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "sunhao1256@163.com"
gitlab_rails['smtp_password'] = "xxxx"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true ##必须开启
gitlab_rails['gitlab_email_from'] = 'sunhao1256@163.com'
user['git_user_email'] = 'sunhao1256@163.com'