一、搭建gitlab
1.1 主机信息
gitlab-server:192.168.17.130 4 核4G( 内存太小的话web端卡顿)
1.2 环境搭建
[ root@gitlab ~]
[ root@gitlab yum.repos.d]
[ gitlab-ce]
name = Gitlab CE Repository
baseurl = https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
gpgcheck = 0
enabled = 1
EOF
[ root@gitlab yum.repos.d]
[ root@gitlab yum.repos.d]
1.3 安装gitlab-ce
1 .通过清华源安装gitlab
[ root@gitlab yum.repos.d]
1.4 配置gitlab服务
1 .修改配置文件
[ root@gitlab ~]
external_url 'http://192.168.17.130'
gitlab_rails[ 'time_zone' ] = 'Asia/Shanghai'
git_data_dirs( {
"default" = > {
"path" = > "/data/git/git-data"
}
} )
gitlab_rails[ 'gitlab_shell_ssh_port' ] = 22
2 .smtp配置
gitlab_rails[ 'smtp_enable' ] = true
gitlab_rails[ 'smtp_address' ] = "smtp.163.com"
gitlab_rails[ 'smtp_port' ] = 465
gitlab_rails[ 'smtp_user_name' ] = "123@163.com"
gitlab_rails[ 'smtp_password' ] = "pop授权的密码"
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[ 'smtp_openssl_verify_mode' ] = 'peer'
gitlab_rails[ 'gitlab_email_from' ] = '123@163.com'
gitlab_rails[ 'gitlab_email_display_name' ] = 'Admin'
gitlab_rails[ 'gitlab_email_from' ] = "123@163.com"
user[ "git_user_email" ] = "123@163.com"
3 .gitlab备份配置
gitlab_rails[ 'manage_backup_path' ] = true
gitlab_rails[ 'backup_path' ] = "/data/gitlab-backups"
gitlab_rails[ 'backup_gitaly_backup_path' ] = "/opt/gitlab/embedded/bin/gitaly-backup"
gitlab_rails[ 'backup_archive_permissions' ] = 0644
gitlab_rails[ 'backup_keep_time' ] = 604800
4 .创建文件中需要的目录
[ root@gitlab ~]
[ root@gitlab ~]
1.5 启动gitlab
1 、应用配置文件
[ root@gitlab ~]
gitlab_rails[ 'smtp_tls' ] 和 gitlab_rails[ 'smtp_enable_starttls_auto' ] 是互斥的配置项,只能设置其中一个为 false。SMTP 提供商通常使用端口 465 进行 TLS 加密,而使用端口 587 进行 STARTTLS 加密。
解决:
选择smtp其中这俩的某一个配置注释掉即可!!
gitlab_rails[ 'smtp_tls' ] 为 false 是可行的,并且你仍然可以发送邮件。
2 、拉起gitlab服务
[ root@gitlab ~]
1.6 登录gitlab
1 、登录信息
[ root@gitlab gitlab-workhorse]
user:root
密码:默认生成的
2 、默认gitlab内置了nginx.可以查看nginx的登录日志( 后面可以自己进行反向代理)
[ root@gitlab gitlab-workhorse]
3 、配置中文
二、搭建Jenkins
1.1 主机信息
jenkins:192.168.222.128 4 核4G
https://www.jenkins.io/doc/book/installing/linux/
小型团队的推荐硬件配置:
4 GB+ of RAM
50 GB+ of drive space
50 GB+ 驱动器空间
1.2 环境搭建
https://www.jenkins.io/doc/book/installing/linux/
1.3 安装Jenkins
1 、通过华为云的ftp获取Jenkins的rpm包
[ root@jenkins ~]
2 、通过rpm包安装Jenkins
[ root@jenkins ~]
3 、安装jdk
[ root@jenkins ~]
[ root@jenkins ~]
[ root@jenkins ~]
openjdk version "1.8.0_372"
4 、修改Jenkins配置
[ root@jenkins ~]
建议一开始就配置成root用户启动。否则后面配置私钥访问其他东西会比较麻烦
1 、修改Jenkins的启动用户为root
[ root@jenkins ~]
JENKINS_USER = "root"
[ root@jenkins ~]
User = root
Group = root
[ root@jenkins ~]
[ root@jenkins ~]
[ root@jenkins ~]
root 2593 1 59 20 :16 ? 00:00:18 /usr/bin/java -Djava.awt.headless = true -jar /usr/share/java/jenkins.war --webroot = %C/jenkins/war --httpPort = 8080
1.4 启动Jenkins
[ root@jenkins ~]
[ root@jenkins ~]
jenkins 1921 1 64 23 :45 ? 00:00:39 /usr/bin/java -Djava.awt.headless = true -jar /usr/share/java/jenkins.war --webroot = %C/jenkins/war --httpPort = 8080
或者
[ root@jenkins ~]
Created symlink from /etc/systemd/system/multi-user.target.wants/jenkins.service to /usr/lib/systemd/system/jenkins.service.
[ root@jenkins ~]
[ root@jenkins ~]
tcp6 0 0 :::8080 :::* LISTEN 2070 /java
[ root@jenkins ~]
0e3ddfc3804f449abdd43de81accf47e
1.5 配置Jenkinsweb端
1 .安装必要的插件
Deploy to container ---支持自动化代码部署到tomcat等web容器
Git Plugin: 允许Jenkins与Git版本控制系统进行集成,以便从代码库中拉取源代码( 默认安装)
Maven Integration :jenkins利用Maven编译,打包所需插件
Publish Over SSH Plugin: 该插件允许通过SSH协议将文件或目录复制到远程服务器
SSH Agent Plugin: 如果需要在构建过程中使用SSH密钥进行身份验证,可以安装此插件。它允许您在Jenkins构建环境中注入SSH密钥,
安装过程:
三、搭建配置nginx
1.1 搭建nginx服务器
gitlab-server:192.168.17.130 4 核4G
[ root@gitlab-server ~]
[ root@gitlab-server nginx]
1.2 配置nginx服务器
1 、配置nginx文件
[ root@gitlab-server nginx]
[ root@gitlab-server nginx]
user root;
worker_processes 4 ;
worker_rlimit_nofile 65535 ;
error_log /data/log/nginx/error.log;
pid /var/run/nginx.pid;
env TZ = Asia/Shanghai;
events {
use epoll;
worker_connections 1024 ;
}
http {
include http.conf;
include proxy_webhp;
}
2 、配置HTTP.conf文件
[ root@gitlab-server nginx]
include mime.types;
default_type application/octet-stream;
charset utf-8;
server_tokens off;
underscores_in_headers on;
limit_req_zone $binary_remote_addr zone = one:10m rate = 1r/s;
limit_req_zone $binary_remote_addr zone = three:10m rate = 3r/s;
limit_req_zone $binary_remote_addr zone = five:10m rate = 5r/s;
limit_req_zone $binary_remote_addr zone = ten:10m rate = 10r/s;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"' ;
access_log /data/log/nginx/access.log main;
error_log /data/log/nginx/error.log;
server_names_hash_bucket_size 128 ;
client_header_buffer_size 2k;
large_client_header_buffers 4 4k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60 ;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0 ;
gzip_comp_level 2 ;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss;
gzip_vary on;
proxy_connect_timeout 10 ;
proxy_read_timeout 60 ;
proxy_send_timeout 10 ;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path /data/www/proxy_temp_dir;
proxy_cache_path /data/www/proxy_cache_dir levels = 1 :2 keys_zone = cache_one:50m inactive = 1d max_size = 2g;
proxy_next_upstream error timeout http_500 http_502 http_504;
3 、配置proxy_webhp
[ root@gitlab-server nginx]
[ root@gitlab-server nginx]
server {
listen 80 ;
listen [ ::] :80;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
4 、启动nginx[ root@gitlab-server nginx]
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5 、解决报错
Jul 07 02:19:27 gitlab-server nginx[ 6448 ] : nginx: [ emerg] bind( ) to 0.0 .0.0:80 failed ( 98 : Address already in use)
1.3 自定义webhp
1 、上传自己写好的html项目
[ root@gitlab-server ~]
2 、上传文件
[ root@gitlab-server ~]
webhp/
├── HCIP.jpg
├── index.html
├── static
│ ├── bootstrap.bundle.js
│ ├── bootstrap.bundle.min.js
│ ├── bootstrap.min.css
│ ├── jquery.slim.js
│ └── jquery.slim.min.js
├── \ 345 \ 255 \ 246 \ 344 \ 271 \ 240css.html
├── \ 345 \ 255 \ 246 \ 344 \ 271 \ 240html.html
├── \ 345 \ 255 \ 246 \ 344 \ 271 \ 240 \ 350 \ 241 \ 250 \ 346 \ 240 \ 274 \ 345 \ 222 \ 214 \ 350 \ 241 \ 250 \ 345 \ 215 \ 225 .html
└── \ 346 \ 250 \ 241 \ 346 \ 235 \ 277css.css
3 、配置nginx
[ root@gitlab-server nginx]
[ root@gitlab-server nginx]
[ root@gitlab-server nginx]
server {
listen 8000 ;
listen [ ::] :8000;
server_name _;
root /root/webhp/;
index index.html;
access_log /data/log/nginx/www_access.log;
error_log /data/log/nginx/www_error.log;
location / {
try_files $uri $uri / /index.html;
}
location = /HCIP.jpg {
}
}
四、webhp项目接入gitlab
目的:
通过gitlab管理webhp.更新代码的同时更新nginx.上线新的前端代码!!!
1.1 安装git服务
git-server:192.168.17.130 4 核4G
1 、安装git服务
[ root@gitlab-server ~]
[ root@gitlab-server ~]
git version 1.8 .3.1
准备:
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
2 、设置上传代码的用户和email
[ root@gitlab-server ~]
[ root@gitlab-server ~]
[ root@gitlab-server ~]
user.email = xxq_ops@gmail.com
user.name = 运维神经科主任
3 、上传项目代码
[ root@gitlab-server ~]
webhp/
├── HCIP.jpg
├── index.html
├── static
│ ├── bootstrap.bundle.js
│ ├── bootstrap.bundle.min.js
│ ├── bootstrap.min.css
│ ├── jquery.slim.js
│ └── jquery.slim.min.js
├── \ 345 \ 255 \ 246 \ 344 \ 271 \ 240css.html
├── \ 345 \ 255 \ 246 \ 344 \ 271 \ 240html.html
├── \ 345 \ 255 \ 246 \ 344 \ 271 \ 240 \ 350 \ 241 \ 250 \ 346 \ 240 \ 274 \ 345 \ 222 \ 214 \ 350 \ 241 \ 250 \ 345 \ 215 \ 225 .html
└── \ 346 \ 250 \ 241 \ 346 \ 235 \ 277css.css
1 directory, 11 files
1.2 gitlab创建项目
1 、gitlab创建了个群组
2 、在对应的群组下新建项目
3 、本地克隆并推送本地webhp项目至gitlab中
[ root@gitlab-server ~]
[ root@gitlab-server webhp]
Initialized empty Git repository in /root/webhp/.git/
[ root@gitlab-server webhp]
[ root@gitlab-server webhp]
origin http://192.168.222.133/devops/webhp.git ( fetch)
origin http://192.168.222.133/devops/webhp.git ( push)
[ root@gitlab-server webhp]
[ root@gitlab-server webhp]
[ master ( root-commit) e7c371b] 提交v1代码
11 files changed, 16156 insertions( +)
create mode 100755 HCIP.jpg
create mode 100755 index.html
create mode 100755 static/bootstrap.bundle.js
create mode 100755 static/bootstrap.bundle.min.js
create mode 100755 static/bootstrap.min.css
create mode 100755 static/jquery.slim.js
create mode 100755 static/jquery.slim.min.js
create mode 100755 "\345 \255 \246 \344 \271 \240 css.html"
create mode 100755 "\345 \255 \246 \344 \271 \240 html.html"
create mode 100755 "\345 \255 \246 \344 \271 \240 \350 \241 \250 \346 \240 \274 \345 \222 \214 \350 \241 \250 \345 \215 \225 .html"
create mode 100755 "\346 \250 \241 \346 \235 \277 css.css"
[ root@gitlab-server webhp]
Username for 'http://192.168.222.133' : xuexiaoqiang
Password for 'http://xuexiaoqiang@192.168.222.133' :
Counting objects: 14 , done.
Delta compression using up to 4 threads.
Compressing objects: 100 % ( 14 /14) , done.
Writing objects: 100 % ( 14 /14) , 351.81 KiB | 0 bytes/s, done.
Total 14 ( delta 0 ) , reused 0 ( delta 0 )
remote:
remote: To create a merge request for master, visit:
remote: http://192.168.222.133/devops/webhp/-/merge_requests/new?merge_request%5Bsource_branch%5D= master
remote:
To http://192.168.222.133/devops/webhp.git
* [ new branch] master -> master
3 、分支管理
4 、
[ root@gitlab-server ~]
[ root@gitlab-server ~]
Cloning into 'webhp' .. .
Username for 'http://192.168.222.133' : xuexiaoqiang
Password for 'http://xuexiaoqiang@192.168.222.133' :
remote: Enumerating objects: 19 , done.
remote: Counting objects: 100 % ( 19 /19) , done.
remote: Compressing objects: 100 % ( 18 /18) , done.
remote: Total 19 ( delta 1 ) , reused 0 ( delta 0 ) , pack-reused 0
Unpacking objects: 100 % ( 19 /19) , done.
[ root@gitlab-server ~]
1 .sh anaconda-ks.cfg webhp
[ root@gitlab-server ~]
[ root@gitlab-server webhp]
* main
1.3 验证gitlab和nginx的联动
1 、修改新的index索引代码并提交
2 、git服务器更新代码查看前端页面是否更新
[ root@gitlab-server webhp]
nothing to commit, working directory clean
[ root@gitlab-server webhp]
* main
[ root@gitlab-server webhp]
Username for 'http://192.168.222.133' : xuexiaoqiang
Password for 'http://xuexiaoqiang@192.168.222.133' :
remote: Enumerating objects: 5 , done.
remote: Counting objects: 100 % ( 5 /5) , done.
remote: Compressing objects: 100 % ( 3 /3) , done.
remote: Total 3 ( delta 2 ) , reused 0 ( delta 0 ) , pack-reused 0
Unpacking objects: 100 % ( 3 /3) , done.
From http://192.168.222.133/devops/webhp
* branch main -> FETCH_HEAD
Updating f8dddbb.. ac6973c
Fast-forward
index.html | 3 ++-
1 file changed, 2 insertions( +) , 1 deletion( -)
[ root@gitlab-server webhp]