持续集成Gitlab+Jenkins - 学习笔记

一.Gitlab相关


1.Gitlab的介绍:

    GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
    GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

2.Gitlab的安装:

1.安装依赖包
# yum install curl policycoreutils openssh-server openssh-clients postfix
# systemctl start postfix

2.安装gitlab-ce
# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh |bash
# yum install -y gitlab-ce
建议使用清华大学的源来安装
# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
# yum makecache
# yum install gitlab-ce

3.配置并启动gitlab-ce
# gitlab-ctl reconfigure

3.Gitlab的域名配置:

vim /etc/gitlab/gitlab.rb

external_url 'http://172.168.1.211'

gitlab-ctl reconfigure #修改完成后要重新配置下

4、配置发送邮件功能:

取消注释并修改:
vim /etc/gitlab/gitlab.rb

 gitlab_rails['gitlab_email_enabled'] = true
 gitlab_rails['gitlab_email_from'] = 'notification@hewomi.com'
 gitlab_rails['gitlab_email_display_name'] = 'YunDing-Gitlab'
 gitlab_rails['gitlab_email_reply_to'] = 'wangmj@hewomi.com'


 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
 gitlab_rails['smtp_port'] = 465
 gitlab_rails['smtp_user_name'] = "notification@hewomi.com"
 gitlab_rails['smtp_password'] = "******"
 gitlab_rails['smtp_domain'] = "smtp.qq.com"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['smtp_tls'] = true

5.配置LDAP登陆:

vim /etc/gitlab/gitlab.rb

gitlab_rails['ldap_enabled'] = true

###! **remember to close this block with 'EOS' below**
 gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
   main: # 'main' is the GitLab 'provider ID' of this LDAP server
     label: 'LDAP'
     host: '172.16.20.1'
     port: 389
     uid: 'uid'
     bind_dn: 'cn=admin,dc=yunding,dc=com'
     password: '****'
     encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
     verify_certificates: true
     ca_cert: ''
     ssl_version: ''
     active_directory: true
     allow_username_or_email_login: false
     block_auto_created_users: false
     base: 'dc=yunding,dc=com'
     user_filter: ''
     attributes:
       username: ['uid', 'userid', 'sAMAccountName']
       email:    ['mail', 'email', 'userPrincipalName']
       name:       'cn'
       first_name: 'givenName'
       last_name:  'sn'
 EOS

二.DEVOPS相关


git的权限划分:阮一峰博客:http://www.ruanyifeng.com/blog/2012/07/git.html

1. 持续集成、持续交付、持续部署简介:

持续集成是指在软件开发过程中,频繁地将代码集成到主干上,然后进行自动化测试。
持续交付
持续交付是指在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中.
持续部署
在持续交付的基础上,把部署到生产环境的过程自动化。如果你对比上图持续部署就可以发现持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

2.安装Jenkins:

参考网址:https://www.unixhot.com/article/55

1.安装jdk1.8
2.配置jenkins的源
# cd /etc/yum.repos.d/
# wget http://pkg.jenkins.io/redhat/jenkins.repo
# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
# yum install -y jenkins
# systemctl start jenkins

3.访问Jenkins:

在浏览器输入http://192.168.56.11:8080来访问jenkins。

为了安全考虑,首先需要解锁Jenkins,
请在/var/lib/jenkins/secrets/initialAdminPassword中查看文件。

这里写图片描述

选择默认即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装。

这里写图片描述

4.安装gitlab插件:

  1. 在jenkins插件管理里面安装常用插件:
    GitLab Plugin ,Gitlab Hook Plugin(gitlab钩子),Parameterized Trigger plugin (构建关联),
    Build Pipeline Plugin(流水线查看),Build Authorization Token Root Plugin(权限认证)。

  2. 安装完成后在gitlab里面添加deploy keys(部署key),

 在gitlab的项目下, 点击右侧配置菜单 -> Deploy Keys, 用刚才创建的 id_rsa_tho.pub 的内容, 创建一个key, 名称为 Readonly Key for Jenkins, 如果有多个项目都需要这个私钥, 则在每个项目的deploy keys下enable这个key即可. 

然后再jenkins里面添加配置私钥。

5.持续代码质量管理-Sonar安装

参考网址:https://www.unixhot.com/article/56

Sonar的相关下载和文档可以在下面的链接中找到:http://www.sonarqube.org/downloads/
需要注意最新版的Sonar需要至少JDK 1.8及以上版本。

# yum install -y java-1.8.0
# cd /usr/local/src
# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.6.zip
# unzip sonarqube-5.6.6.zip
# mv sonarqube-5.6.6 /usr/local/
# ln -s /usr/local/sonarqube-5.6.6/ /usr/local/sonarqube

准备Sonar数据库

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar@pw';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar@pw';
mysql> FLUSH PRIVILEGES;

编写配置文件,修改数据库配置
vim sonar.properties

sonar.jdbc.username=sonar
sonar.jdbc.password=sonae@pw
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

# /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start 启动服务

6.Sonar的使用:

http://IP:9000 #访问地址,默认账号密码都是admin

首次使用进入Update Center界面安装chinese 中文插件(还可以按照Python和css插件)

7.安装代码扫描器sonar-scanner:

# wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
# mv sonar-scanner-3.0.3.778-linux /usr/local/
# ln -s /usr/local/sonar-scanner-3.0.3.778-linux /usr/local/sonar-scanner
修改配置文件
# cd /usr/local/sonar-scanner
# vim conf/sonar-scanner.properties
sonar.host.url=http://localhost:9000

8.使用官方代码进行扫描测试:

# wget https://github.com/SonarSource/sonar-examples/archive/4.5.tar.gz
# cd sonar-examples-4.5/projects/languages/python/python-sonar-runner
# /usr/local/sonar-scanner/bin/sonar-scanner   
#在代码目录直接运行后,就可以在网站主页看到结果了

注意代码目录要有“sonar-project.properties”配置文件,下面是样板:

# Required metadata
sonar.projectKey=org.sonarqube:python-simple-sonar-scanner
sonar.projectName=Python :: Simple Project : SonarQube Scanner
sonar.projectVersion=1.0

# Comma-separated paths to directories with sources (required)
sonar.sources=src

# Language
sonar.language=py

# Encoding of the source files
sonar.sourceEncoding=UTF-8

9.将sonar集成到jenkins中:

  1. 先在jenkins中安装“SonarQube Scanner for Jenkins” 插件。
  2. 在jenkeins系统设置.
    这里写图片描述

3.token生成方式:

登录sonar后右上角点击用户名称,选择我的账号,进入个人账号设置
选择安全页,在Generate Tokens中输入一个名称,如:test,然后点击Generate,生成一个token
这里写图片描述

  1. 在jenkins项目构建中添加sonar相关配置:
    这里写图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值