Devops-持续集成之 jenkins+gitlab 快速部署

2018年9月10日15:09:31 2 2,324 views
摘要

DevOps(英文Development(`开发`)和Operations(`技术运营`)的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

广告也精彩

自动化运维之DevOps

  DevOps(英文Development(开发)和Operations(技术运营)的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
  它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作

简单的来说DevOps是一种文化,是让开发开发、运维、测试能够之间沟通和交流

  自动化运维工具:saltstack、jenkins、等。因为他们的目标一样,为了我们的软件、构建、测试、发布更加的敏捷、频繁、可靠
  如果运维对git不熟,是无法做自动化部署。因为所有的项目都受制于开发

一、Jenkins 介绍

Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有
Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson

Jenkins官网:https://jenkins.io/

二、jenkins 部署

 yum install -y java-1.8.0
 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

Jenkins Web访问地址:$IP:8080

Devops-持续集成之 jenkins+gitlab 快速部署
查看初始秘钥

[root@linux-node1 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
490a2f35a2df49b6b8787ecb27122a3a

然后就直接点一步,补全信息就可以了
Devops-持续集成之 jenkins+gitlab 快速部署

三、 Gitlab介绍

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

四、gitlab 部署

1) Server端部署gitlab

[root@linux-node1 ~]# wget http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm 
[root@linux-node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
#关闭 NetworkManager 和防火墙 
[root@linux-node1 ~]#systemctl stop firewalld.service
systemctl disable firewalld 
systemctl disable NetworkManager
#关闭SELinux并确认处于关闭状态 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
#更新系统并重启
[root@linux-node1 ~]# yum update -y && reboot
[root@linux-node1 /]# yum install curl policycoreutils openssh-server openssh-clients postfix -y
[root@linux-node1 /]# systemctl start postfix
[root@linux-node1 /]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
[root@linux-node1 /]# yum install -y gitlab-ce

2) 在安装一个git客户端

[root@linux-node1 /]#  yum install -y git

3) 配置并启动gitlab-ce

[root@linux-node1 ~]# gitlab-ctl reconfigure
#时间可能比较长,耐心你等待即可!----
###提示:修改完需要使用reconfigure重载配置才会生效

4) gitlab常用命令:

关闭gitlab:[root@linux-node2 ~]# gitlab-ctl stop
启动gitlab:[root@linux-node2 ~]# gitlab-ctl start
重启gitlab:[root@linux-node2 ~]# gitlab-ctl restart

#可以使用gitlab-ctl管理gitlab,例如查看gitlab状态:
[root@linux-node1 /]#  gitlab-ctl status
###提示: 我们要保证80端口不被占用   
[root@linux-node1 /]# lsof -i:80

5) 浏览器验证:

Web:访问:$IP

Devops-持续集成之 jenkins+gitlab 快速部署

提示:启动gitlab需要时间!

Web页面提示我们需要设置一个账号密码(我们要设置最少8位数的一个账号密码)我们设置密码为:q1w2e3r4
默认用户名:root 密码:q1w2e3r4 [刚才设置的]

Docker快速部署

1,gitlab

  1. 下载gitlab镜像
docker pull twang2218/gitlab-ce-zh  #中文版
  1. 运行gitlab实例
data/gitlab 存放目录
sudo docker run -d \
    --hostname gitlab01 \
    --publish 8443:443 --publish 80:80 --publish 2222:22 \
    --name gitlab01 \
    --restart always \
    --volume /data/gitlab/config:/etc/gitlab \
    --volume /data/gitlab/logs:/var/log/gitlab \
    --volume /data/gitlab/data:/var/opt/gitlab \
    twang2218/gitlab-ce-zh

web访问:宿主机IP:80 10.0.17.143
用户密码:root q1w2e3r4

  1. 配置gitlab实例
    3.1 配置邮箱:
docker exec -t -i gitlab vim /etc/gitlab/gitlab.rb

下面以网易163邮箱为例配置邮箱:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxxx@163.com"
gitlab_rails['smtp_password'] = "xxxxpassword"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_openssl_verify_mode'] = "peer"

gitlab_rails['gitlab_email_from'] = "xxxx@163.com"
user["git_user_email"] = "xxxx@163.com"

注意以上的xxxx@163.com代表用户名,即邮箱地址,而xxxxpassword不是邮箱的登陆密码而是网易邮箱的客户端授权密码, 再网易邮箱web页面的设置-POP3/SMTP/IMAP-客户端授权密码查看。

3.2 配置外部访问URL
这个必须配置,否则默认以容器的主机名作为URL,刚开始由于做了端口映射80->8080, 因此设置为

external_url "http://10.0.17.143"

Devops-持续集成之 jenkins+gitlab 快速部署
后来发现external_url只能配置ip或者域名,不能有端口,否则不能启动。
于是只能把端口设置为80->80,然后external_url设置为:

  1. 重启gitlab
docker restart gitlab

2,jenkins

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar 一位WordPress评论者 0

      嗨,这是一条评论。
      要开始审核、编辑及删除评论,请访问仪表盘的“评论”页面。
      评论者头像来自Gravatar

      • avatar admin Admin

        哈哈哈哈