CICD - Jenkins - Gitlab部署 【一】

代码托管:gitlab、svn

项目管理:jira、禅道、Teambition

运维平台:腾讯蓝鲸、自主研发平台

持续交付:Jenkins、gitlab

DevOps示意图

为什么要推广DevOps


DevOps 强调团队协作、相互协助、持续发展,然而传统的模式是开发人员只顾开发程序,运维只负责基础环境管理和代码部署及监控等,
其并不是为了一个共同的目标而共同实现最终的目的,而DevOps 则实现团队作战,即无论是开发、运维还是测试,都为了最终的代码发布、
持续部署和业务稳定而付出各自的努力,从而实现产品设计、开发、测试和部署的良性循环,实现产品的最终持续交付。

DevOps的优势

速度:应用版本快速的迭代更新,以更好地适应不断变化的市场需求。
快速交付:更快的将应用交付至生产环境。
可靠性:保证应用交付的结果是成功的。
规模:可以在大规模环境下且可靠的交付应用。
增强合作:建立适应DevOps文化模式的团队,开发人员和运维人员协同工作。
安全性:在快速迭代的同时保证应用的质量。

CI/CD

 

Git介绍和命令

Github: 基于git的一个公有代码仓库,GitHub于2008年4月10日正式上线,2018年6月,微软宣布通过75亿美元的股票交易收购GitHub。
Gitlab: 基于git的一个私有代码仓库。

Gitlab 安装
#gitlab安装目录:
/etc/gitlab #配置文件目录
/run/gitlab #运行pid目录
/opt/gitlab #安装目录
/var/opt/gitlab #数据目录
/var/log/gitlab #日志目录

# gitlab-ctl #客户端命令行操作行
# gitlab-ctl stop #停止gitlab
# gitlab-ctl start #启动gitlab
# gitlab-ctl restar #重启gitlab
# gitlab-ctl status #查看组件运行状态
# gitlab-ctl tail nginx #查看某个组件的日志

Git 命令使用
git config --global user.name “name“#设置全局用户名
git config --global user.email xxx@xx.com #设置全局邮箱
git config --global --list #列出用户全局设置
git clone http://172.31.3.101/magedu/app1.git #clone项目到本地
git add index.html ./ #添加指定文件、目录或当前目录下所有数据到暂存区
git commit -m “v1” #提交文件到本地工作区(本地仓库)
git status #查看本地工作区和暂存区的状态
git push #提交代码到服务器
git pull #从gitlab更新代码到本地
git log #查看操作日志
vim .gitignore #定义忽略某些指定文件或者目录不上传至gitlab
git reset --hard HEAD^^  #git版本回滚, HEAD为当前版本,加一个~为上一个,~~为上上一个版本
git reflog # #获取每次提交的ID,可以使用--hard根据提交的ID进行版本回退
git reset --hard 5ae4b06 #回退到指定id的版本

git branch #查看当前所处的分支
git checkout -b develop #创建并切换到一个新分支
git checkout develop #切换分支

实验拓扑

版本

gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

安装GitLab

中文官方:https://gitlab.cn/install/

https://docs.gitlab.com/ee/install/requirements.html

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

#下载gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
[root@K8S-docker Jenkins]# ll
total 648548
-rw-r--r-- 1 root root 664112883 Jun 26 21:37 gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

[root@K8S-docker Jenkins]# rpm -Uvh gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
warning: gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:gitlab-ce-11.11.8-ce.0.el7       ################################# [100%]

gitlab: GitLab now ships with a newer version of PostgreSQL (10.7), but it is not yet
gitlab: enabled by default. To upgrade, RUN THE FOLLOWING COMMAND:

sudo gitlab-ctl pg-upgrade

gitlab: Note: This command does not support Geo instances yet. So we don't
gitlab: recommend running this command on Geo nodes. It will be supported
gitlab: in GitLab 12.0.

gitlab: For more details, please see:
gitlab: https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
gitlab:
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.



     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md


[root@K8S-docker Jenkins]# vim /etc/gitlab/gitlab.rb

[root@K8S-docker Jenkins]# grep '^[a-Z]' /etc/gitlab/gitlab.rb
external_url 'http://192.168.40.130'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "807722920@qq.com"  # 自己的qq邮箱账号
gitlab_rails['smtp_password'] = "ulnroxhkdtjxbdgd"  # 开通smtp时返回的授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "807722920@qq.com"  # 指定发送邮件的邮箱地址
user["git_user_email"] = "807722920@qq.com"   # 指定接收邮件的邮箱地址

[root@K8S-docker Jenkins]# gitlab-ctl reconfigure
Running handlers:
Running handlers complete
Chef Client finished, 3/641 resources updated in 17 seconds
gitlab Reconfigured!

[root@K8S-docker Jenkins]# gitlab-ctl status
run: alertmanager: (pid 32133) 495s; run: log: (pid 31126) 611s
run: gitaly: (pid 31611) 528s; run: log: (pid 30089) 685s
run: gitlab-monitor: (pid 32065) 497s; run: log: (pid 30924) 626s
run: gitlab-workhorse: (pid 31646) 528s; run: log: (pid 30544) 650s
run: logrotate: (pid 30710) 639s; run: log: (pid 30785) 636s
run: nginx: (pid 30592) 645s; run: log: (pid 30659) 642s
down: node-exporter: 1s, normally up, want up; run: log: (pid 30827) 631s
run: postgres-exporter: (pid 32162) 495s; run: log: (pid 31236) 593s
run: postgresql: (pid 30110) 680s; run: log: (pid 30280) 677s
run: prometheus: (pid 32098) 496s; run: log: (pid 31043) 618s
run: redis: (pid 29873) 687s; run: log: (pid 29919) 686s
run: redis-exporter: (pid 32078) 496s; run: log: (pid 30976) 621s
run: sidekiq: (pid 30467) 657s; run: log: (pid 30507) 654s
run: unicorn: (pid 30409) 659s; run: log: (pid 30461) 658s

打开192.168.40.130:80 修改密码:12345678

Sign in 登录用户 root/12345678

组:
项目:

创建用户

创建组

此时zhangxiaoming可以看到自己组了

创建项目Project

 流程

Git命令使用

工作区: clone的代码或者开发自己编写的代码文件所在的目录,通常是代码所在的一个服务的目录名称。

暂存区: 用于存储在工作区中对代码进行修改后的文件所保存的地方,使用git add添加。

本地仓库: 用于提交存储在工作区和暂存区中改过的文件地方,使用git commit 提交。

远程仓库:多个开发共同协作提交代码的仓库,即gitlab服务器。

Gitlab实现分支管理

#常见的分支结构:
单分支模型:只有master分支

生产/开发模型: master分支与develop类型分支

特性/发布模型: master/develop/feature类型分支

开发/发布/分离模型: master/develop/feature/release类型分支

开发/发布/缺陷分离模型:master/develop/feature/release/hotfix类型分支

Gitlab实现分支合并

git pull
git merge origin/develop
git push

 

posted @ 2023-06-27 07:29  しみずよしだ  阅读(29)  评论(0)    收藏  举报