gitlab+jenkins+ansible集成持续发布

1.Gitlab安装

gitlab 10.0.1安装使用

内存最少2G否则系统安装完会502报错

安装

如想使用Postfix来发送邮件,在安装期间请选择’Internet Site’. 您也可以用sendmai或者 配置SMTP服务 并 使用SMTP发送邮件.

在 Centos 6 系统上, 下面的命令将在系统防火墙里面开放HTTP和SSH端口.

sudo yum install curl openssh-server openssh-clients postfix cronie policycoreutils-python git -y

sudo service postfix start

sudo chkconfig postfix on

sudo lokkit -s http -s ssh

添加GitLab仓库,并安装到服务器上(相对慢)

curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash

sudo yum install gitlab-ce

直接下载rpm包

安装包地址

centos 6xx

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

centos7xx

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

汉化地址

https://gitlab.com/xhang

rpm -ivh gitlab-ce-10.0.1-ce.0.el6.x86_64.rpm

gitlab-ctlreconfigure

gitlab本身采用80端口,如安装前服务器有启用80,安装完访问会报错。需更改gitlab的默认端口。

修改vim /etc/gitlab/gitlab.rb:

external_url 'http://localhost:90'

unicorn本身采用8080端口,如果你那里没有8080使用,可以后边不用修改了。如安装前服务器有启用8080,安装完访问会报错。需更改unicorn的默认端口:

修改 /etc/gitlab/gitlab.rb:

unicorn['listen'] = '127.0.0.1'

unicorn['port'] = 3000

gitlab中文汉化

git clone https://gitlab.com/xhang/gitlab.git(下载有时候超级慢)下载相应的汉化程序

git diff v10.0.1 v10.0.1-zh > ../10.0.1-zh.diff

若以前下载的gitlab程序可以执行git pull更新到最新在执行

git diff v10.0.1 v10.0.1-zh > ../10.0.1-zh.diff

yum install patch

sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../10.0.1-zh.diff

sudo gitlab-ctl start

sudo gitlab-ctl reconfigure

如果汉化中出现问题,请重新安装 GitLab(注意备份数据)。

2.Ansible安装

ansible

yum install epel-release -y

yum install ansible -y

创建公私钥

ssh-keygen -t rsa

导出公钥到指定控制端

ssh-copy-id -i [email protected]

编辑指定控制端,服务

vi/etc/ansible/hosts

Ansible内置了一些关于连接主机的变量,设置以下变量控制ansible与远程主机:

hosts文件内部支持的一些特定指令(inventory参数):

ansible_ssh_host:指定主机别名对应的真实IP,如:

ansible_ssh_host=183.60.41.251,随后连接该主机无须指定完整IP,只需指定251就行

ansible_ssh_port:指定连接到这个主机的ssh端口,默认22

ansible_ssh_user:连接到该主机的ssh用户

ansible_ssh_pass:连接到该主机的ssh密码(连-k选项都省了),安全考虑还是建议使用私钥或在命令行指定-k选项输入

ansible_sudo_pass:sudo密码

ansible_sudo_exe(v1.8+的新特性):sudo命令路径

ansible_connection:连接类型,可以是local、ssh或paramiko,ansible1.2之前默认为paramiko

ansible_ssh_private_key_file:私钥文件路径

ansible_shell_type:目标系统的shell类型,默认为sh,如果设置csh/fish,那么命令需要遵循它们语法

ansible_python_interpreter:python解释器路径,默认是/usr/bin/python,但是如要要连*BSD系统的话,就需要该指令修改python路径

ansible_*_interpreter:这里的"*"可以是ruby或perl或其他语言的解释器,作用和ansible_python_interpreter类似

配置例子

3.Jenkins安装

Tomcat把jenkins.war放进Tomcat web目录 执行http://192.168.253.154:8080

Jenkins安装插件Ansible pluginGit pluginGitLab PluginGitlab Hook PluginBuild Authorization Token Root Plugin 。

4.配置

配置jenkins链接gitlab服务的账号 此处用证书

新建一个自由风格的test项目

填写gitlab项目托管地址

生成随机token:openssl rand -hex 12

构建执行脚本

或远程执行脚本结合ansible

ansible 192.168.253.154 -m shell -a "sh /var/xxx.sh"

配置gitlab

钩子地址

http://jenkins服务器地址:8080/buildByToken/build?job=项目名&token=token值

测试显示值201为正确

Jenkins生成出构建信息

原文地址:http://blog.51cto.com/increase/2091140

时间: 2024-10-05 23:25:07

gitlab+jenkins+ansible集成持续发布的相关文章

Jenkins+Ansible+Gitlab自动化部署三剑客(八)--Jenkins ansible集成

Jenkins Ansible集成 准备工作 参考https://www.cnblogs.com/bk770466199/p/12259007.html完成以下准备工作 需要在jenkins服务器上,配置ansible2.5+python 3.6虚拟环境 配置jenkins.example.com主机到test.example.com主机的ssh免秘钥认证 配置ansible,创建testservers文件 1.新建项目 2.添加shell #!/bin/sh set +x source /ho

基于Gitlab+Jenkins的代码自动化发布

这里所讲的自动化发布是指代码从提交到仓库,到发布到目标服务器的整个过程. 主要涉及到两个工具Gitlab,Jenkins,要完成自动化还需要rsync,qqbot,log,ant.shell脚本,python等. Gitlab:我们主要用它来做代码的仓库 Jenkins:用来执行任务的持续集成,构建等.一.大体的自动化思路: 开发人员push代码到gitlab,触发webhook,调用jenkins job. jenkins job 执行拉取代码,编译,调用loadblance,下架部分服务器更

gitlab+jenkins+maven+docker持续集成(六)——.Jenkins获取git tags代码进行持续集成

GitFlow的工作流 如上图所示,在开发工作中,不同的代码分支对应着项目或产品的不同形态,围绕特定形态的人力投入也不相同.随着时间的推进, 我们在 开发分支 中合并产品的功能实现,产品的功能逐步完善. 当产品功能完善到一定阶段,可以交付给测试团队进行内部测试时,产品代码可以合并到 测试分支(注意,上图未体现测试分支,实际中是否需要测试分支需要具体而定),编译打包测试. 经过若干迭代测试,功能稳定成熟,产品可以发布,此时,代码合并到主干(master)分支,用于发布(TAG标记). 所以这里用T

gitlab+jenkins+maven+docker持续集成(十一)——sonarqube及sonarscanner代码审查

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质 量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd.checkstyle. findbugs.Jenkins.通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程 进行代码质量管理. 同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar. 此外,Sonar 的插件还可以对

gitlab+jenkins 自动化部署 持续集成

环境: 1.centos7.6 2.jdk1.8.0_141 3.4G 30G 4core 4.关闭防火墙和selinux 一.安装jenkins 1. 下载jenkins https://pkg.jenkins.io/redhat/  jenkins-2.208-1.1.noarch.rpm 2.安装jdk和jenkins rpm包 rpm -ivh jdk-8u141-linux-x64.rpm rpm -ivh jenkins-2.208-1.1.noarch.rpm 3.启动服务及设置开

gitlab+jenkins+maven+docker持续集成(三)——自动构建

具体原理图,如下,构建项目配置,这里略过,我们直接配置gitlab的自动构建 通过webhook可以实现自动构建,当然jenkins的强大之处在于插件,我们先安装插件 Jenkins-->插件管理 Gitlab Hook Plugin GitLab Plugin 安装后,就可以开始 了 在项目--配置--构建触发器 选择, Build when a change is pushed to GitLab 这样我们就得到了URL和一串Secret token 然后在gitlab配置webhook ,

GitLab+Jenkins结合构建持续集成(CI)环境

持续集成概述 持续集成概述:持续集成(continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的代码部署集成到主干,并进行自动化测试. 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境. 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化. 版本控制系统概述 什么是版本控制系统 版本控制系统(Version Control System): 是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 版本控制系统不仅

gitlab+jenkins+maven+docker持续集成(十)——参数化构建过程之多环境tag构建

同一个项目,要构建到不同的环境,而且对应的分支或tag也不相同,这里就要用到jenkins的参数化构建过程 中的Git Parameter和Choice Parameter, 先看下效果 实现过程 构建过程:Git Parameter -->Name: branch_selector -->Parameter Type :Tag  (这里我选择tag) 构建过程:Choice Parameter 源码管理 这样就可以实现效果,其中我们设置的参数,都可以以变量形式传到我们需要运行的脚本里. 补充

gitlab+jenkins+maven+docker持续集成(一)——Jenkins安装配置

jenkins安装与配置 下载jenkins最新版本 http://mirrors.jenkins.io/war/ 配置jdk环境,建议1.8以上 安装tomcat, 建议8以上 将下载后的jenkinsh上传到tomcat/webapps下,先配置完以下三步再启动 1.设置JENKINS_HOME环境参数 打开tomcat的bin目录,编辑catalina.sh文件.在# OS specific support.  $var _must_ be set to either true or fa