jenkins+gitlab+nginx
搭建私有Git服务器,搭建私有源,并实现push时从git服务器拉代码更新到私有源
系统环境
- WMware虚拟机 centos7 64 内存4g 硬盘50g
- python3
- jdk1.8
设置防火墙
1. 查看防火状态
systemctl status firewalld
service iptables status
2. 暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3. 永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
4. 重启防火墙
systemctl enable firewalld
service iptables restart
5. 添加防火墙白名单
telnet 172.168.1.101 8080后面跟端口号,如果连接上证明是防火墙白名单
如果没有配置 vi /etc/sysconfig/iptables进行添加
添加好了之后重启防火墙/etc/init.d/iptables restart
使用gitlab搭建Git服务器
安装gitlab
1. 安装依赖包并启动
yum install curl policycoreutils openssh-server openssh-clients postfix
systemctl start postfix
systemctl enable postfix
2. 下载gitlab
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 下载xxx.rpm (建议使用迅雷下载)
将xxx.rpm 其移动到linux任意文件夹(比如/data/downloads)
3. 安装gitlab
cd /data/downloads
rpm -ivh xxx.rpm
4. 更改gitlab配置
vim /etc/gitlab/gitlab.rb
修改 external_url 'http://ip:port' 'http://192.168.18.18:8888'
gitlab-ctl reconfigure
gitlab-ctl start
安装汉化包(未测试)
cd /data/downloads
yum -y install git
git clone https://gitlab.com/xhang/gitlab.git
gitlab-ctl stop
cat gitlab/VERSION
cd gitlab
git diff origin/version-stable origin/version-stable-zh > /tmp/version.diff #version是版本号
yum -y install patch
cd /tmp/
patch -d/opt/gitlab/embedded/service/gitlab-rails -p1 < version.diff
gitlab-ctl reconfigure
gitlab-ctl start
测试git仓库
1. gitlab管理设置
1. 访问192.168.18.18:8888
2. 修改默认密码
3. 创建组
4. 创建项目
2. 添加密匙
1. ssh-keygen -t rsa #一直回车就可以
2. cat .ssh/id_rsa.pub
3. 打开192.168.18.18:8888
4. 用户->setting->SSH Keys->输入Key和Title->Add key
3. 测试git仓库
1. 点击创建的项目
2. 点击Clone
3. 复制Clone with HTTP # http://192.168.18.18:8888/algorithm/ikas-simlib.git
4. 打开pycharm项目
5. VCS->git->Remotes->将http://192.168.18.18:8888/algorithm/ikas-simlib.git添加进去->OK->输入gitlab账号密码
6. 将项目push到git仓库
使用nginx搭建私有源
Nginx服务器安装
1.安装pcre依赖
yum -y install pcre*
2.安装openssl依赖
yum -y install openssl*
3.创建nginx目录并切换到该目录
1. cd /
2. mkdir nginx
4.下载并解压nginx
1. 至http://nginx.org/download/ 下载xxx.tar.gz包
2. cd nginx
3. rz
4. tar -zxvf xxx.tar.gz (nginx-1.17.9.tar.gz)
5.安装nginx
1. cd nginx-1.17.9
2. ./configure # 执行文件, 检查配置文件是否生效
3. make -j4 # 编译
4. make install # 安装依赖
6.创建快捷方式
1. cd /usr/bin
2. ln -s /usr/local/nginx/sbin/nginx nginx
7.启动nginx
1. cd /
2. nginx
8.修改访问端口
1. vim /usr/local/nginx/conf/nginx.conf
2. 修改 user root;
3. 修改server { listen 80; 为 8088(设置为想要的端口)
3. 在最后的}前添加 include /root/nginx/*conf;
4. cd /nginx
5. touch nginx.conf
6. vi nginx.conf并添加以下内容
# 主端口 8088
# 私有源地址
server {
listen 8089; # 端口
server_name 192.168.18.18; # 本机ip
root /data/source; # 私有源位置
autoindex on; # 自动index
location / {
autoindex_exact_size off ; # 显示文件的大小
autoindex_localtime on; # 显示文件时间
}
}
7.检查nginx配置是否成功
nginx -t
8. 重启nginx
nginx -s reload
搭建私有源
1. 安装pip2pi工具
pip install pip2pi
2. mkdir -p /data/source
3. 进入客户端 C:\Users\用户名称(Administrator)文件夹
4. 创建并打开pip文件夹
5. 创建pip.ini文件
6. 添加以下内容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url= http://192.168.18.18:8089/simple/
[install]
trusted-host=
pypi.tuna.tsinghua.edu.cn
192.168.18.18
注意此处最好添加两个源,防止部分包私有源没有
使用jenkins+gitlab实现push自动生成包,并更新私有源
安装jenkins
1. 下载jenkins切换到该文件夹(https://jenkins.io/zh/download/)
2. 安装jenkins
1. rpm -ivh xxx.rpm
3. jenkins主要目录
1. /usr/lib/jenkins/jenkins.war
2. /etc/sysconfig/jenkins 配置文件
3. /var/log/jenkins/jenkins.log 日志文件
4. /var/lib/jenkins 工作目录
4. 修改端口
vim /etc/sysconfig/jenkins
修改 JENKINS_PORT="18080"
5. 修改插件下载源 # https://www.cnblogs.com/hellxz/p/jenkins_install_plugins_faster.html
vi /var/lib/jenkins/updates/default.json # 编辑配置文件
:1,$s/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g # 替换插件下载url
:1,$s/http:\/\/www.google.com/https:\/\/www.baidu.com/g #替换连接测试url
:wq # 保存退出
6. 修改jenkins权限
1. 修改登录用户
1. vi /etc/sysconfig/jenkins
2. 修改JENKINS_USER="root"
3. wq
2. 修改jenkings相关文件夹用户权限
1. chown -R root:root /var/lib/jenkins
2. chown -R root:root /var/cache/jenkins
3. Chown -R root:root /var/log/jenkins
3. 重启jenkins
1. service jenkins restart
4. 给jenkins对应文件夹的权限
1. chown -R jenkins <path>
7. 启动jenkins
systemctl restart jenkins
8. 打开192.168.18.18:18080
9. 选择安装推荐插件
配置jenkins
1. 安装gitlab插件
1. 选择系统管理
2. 选择插件管理
3. 选择可选插件
4. 搜索gitlab
5. 安装出现的所有正常的插件(不标红)
2. 配置gitlab选项
1. 选择系统管理
2. 选择系统配置
3. 找到gitlab
4. 填写以下几项并保存
1. 填写connection name为任意字符
2. 填写gitlab host url 为gitlab访问地址 http://192.168.18.18:8888
3. 添加Credentials, 选添加jenkins, 类型选择Gitlab API token, 找到以下信息填写到API token项并保存
1. 打开gitlab并进行对应用户
2. 选择用户->设置
3. 左侧Access Token -> Feed token
4. 复制粘贴到jenkins对应项
4.点击小三角形并选择刚才添加的credentials
5. 点击保存
3. 创建一个新任务
2. 选构建一个自由风格的软件项目
3. 进行任务,右侧选择配置, 出现任务配置
4. 源码管理, 选择git
1. 从gitlab复制http://192.168.18.18:8888/algorithm/ikas-simlib.git填写到url
2. credentials添加gitlab的账号和密码
3. 选择分支
5. 构建触发器, 选择Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.18.18:18080/project/ikas-simlib
1. 点击高级
2. Allowed branches按需求填写
3. 记住 Secret token在配置gitlab时需要用到
6.构建环境, 选Delete workspace before build starts
7.构建, 选增加构建步骤->执行shell->填写以下内容
#!/bin/sh -l
eval "cd /var/lib/jenkins/workspace/ikas-simlib"
eval "python setup.py sdist"
eval "mv dist/* /data/source/"
eval "/root/anaconda3/bin/dir2pi /data/source/"
8. 保存
配置gitlab
1. 配置系统设置
1. 点开系统设置
2. 选择setting ->Network
3. 找到Outbound requests并展开
4. 勾上Allow requests to the local network from system hooks也就是允许本机请求
2. 打开对应项目
3. 选择setting -> integrations
4. 将http://192.168.18.18:18080/project/ikas-simlib填写到URL
5. 将jenkins的Secret token填写到Secret Token
6. 选择Push event
7. 点击Add webhook
8. 此时可以通过下方的Test->push event测试是否完成