Jenkins+Ansible+Gitlab自动化部署三剑客-gitlab本地搭建

实际操作

准备linux初始环境

关闭防火墙

systemctl stop firewalld

开机自己关闭

systemctl disable firewalld

设置安全配置 为关闭

vim /etc/sysconfig/selinux

重启虚拟机

reboot

查看安全策略是否关闭

getenforce

安装gitlab依赖软件

yum install curl policycoreutils openssh-server openssh-clients postfix

下载gitlab yum仓库源

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

启动postfix邮件服务

systemctl start postfix

systemctl enable postfix

安装gitlab

yum -y install gitlab-ce

需要等一段时间

手动配置ssl证书

mkdir -p /etc/gitlab/ssl

openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048

cd /etc/gitlab/ssl

openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"

进如ssl安装向导

cn

bj

bj

空格

空格

gitlab.example.com

[email protected]

447728

空格

安装完成,创建好了ssl密钥和证书

在ssl目录下ll

可以看到ssl密钥和证书

利用ssl密钥和证书创建签署证书

openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"

利用openssl签署pem 证书

openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

更改ssl下的所有证书权限

chmod 600 *

配置证书到gitlab配置文件中

vim /etc/gitlab/gitlab.rb

搜寻并更改注释并为true

更改对应的路径

gitlab-ctl reconfigure 初始化gitlab相关服务配置

找到gitlab下的ningx反向代理工具

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

搜索 /server_name 并添加

rewrite ^(.*)$ https://$host$1 permanent;

gitlab-ctl restart 重启gitlab使服务生效

windows本机host

10.110.16.20 gitlab.example.com #这里对应的是虚拟的ip

更改管理员密码 密码需要8位

管理员登录 账号:root 密码:447728wang

创建新项目

建好第一个gitlab项目

复制 地址

克隆到本地

git config --global --list 查看当前用户(global)配置

git config --system --list 查看系统config

禁用ssl认证

git config --global http.sslVerify false

下载项目到本地

git -c http.sslVerify=false clone https://gitlab.example.com/root/test-scond.git

认证失败

解决方案:

git config --system --unset credential.helper

之后再进行git操作时,弹出用户名密码窗口,输入即可

本地修改项目上传,需要设置

git config --global user.name "litifeng"

git config --global user.email "[email protected]"

git -c http.sslVerify=false push origin master

上传成功

gitlab应用

点击实例查看实例使用信息

cpu个数/内存使用情况/硬盘使用情况

日志

application.log存放的是gitlab的相关操作

production.log记录访问记录

健康状况

创建权限管理系统

创建项目成员

创建

成功

创建管理员

同上

绑定项目

进入项目

创建开发者

添加

同样,配置项目领导权限

给账号重新设置密码

修改完 进行相关职员的代码拉取

删除之前拉取的代码

创建新分支,并同步到远程仓库

登录dev(相对应的开发者)账号,创建合并申请,

提交给lead之后,到lead账号里,合并

完全卸载删除gitlab

1、停止gitlab

gitlab-ctl stop

2、卸载gitlab(注意这里写的是gitlab-ce)

rpm -e gitlab-ce

3、查看gitlab进程

ps aux | grep gitlab

4、杀掉第一个进程(就是带有好多.............的进程)

kill -9 18777

杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程

5、删除所有包含gitlab文件

find / -name gitlab | xargs rm -rf

原文地址:https://www.cnblogs.com/sky-ai/p/12585183.html

时间: 2024-08-01 11:29:06

Jenkins+Ansible+Gitlab自动化部署三剑客-gitlab本地搭建的相关文章

Jenkins+Ansible+Gitlab自动化部署三剑客

最近一直在学习Ansible的一些playbook的写法, 所以一直没有怎么更新, 想到目前大家对诸如saltstack, docker, Ansible等自动化部署相关的工具很感兴趣, 但又苦于没有可学习的中文实例, 这里我就把我这几个月所接触到目前国外比较流行的部署经验给大家分享一下. 首先给大家介绍的是Ansible, 恩, 重要的问题说三遍, 不是Saltstack, Ansible作为一个python写的自动化部署工具, 确实较之前我所接触的Chef, saltstack, puppe

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

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

Ansible简介 Ansible是一个开源部署工具 开发语言:python 特点:SSH协议通讯,全平台,无需编译,模块化部署管理 作用:推送Playbook进行远程节点快速部署 Ansible与Chef,Saltstack的区别 Chef Ruby语言编写,C/S架构,配置需要Git依赖,Recipe脚本编写规范,需要编程经验 Saltstack Python语言编写,C/S架构,模块化配置管理,YAML脚本编写规范,适合大规模集群部署 Ansible Python语言编写,无Client,

Jenkins+Ansible+Gitlab自动化部署三剑客(五)--Jenkins 参数集成

Jenkins 参数集成 1.新建项目 2.添加选项 #!/bin/sh echo "Current deploy environment is $deploy_env" echo "The build is $version" echo "The paasword is $pass" if $bool then echo "Request is approved" else echo "Request is rej

Linux-GitLab+Jenkins持续集成+自动化部署

GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译.发布.自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. (2)没有持续集成 项目做模块集成的时候,发现很多接口都不通==>浪费大量时间 需

自动化部署之gitlab权限管理--issue管理

创建Group,User,Project 创建一个组,组名为java Group path http://192.168.56.11/java Visibility Level:    #为权限级别,一般使用Private Private Internal Public 创建一个PM的用户作为项目管理者并加入到java组内 创建一个项目: 创建dev1和dev2的用户作为开发者,并加入到项目中 2.测试dev1,dev2拉取代码库 (1)生成ssh-key [[email protected] 

CentOS 6.5环境使用ansible剧本自动化部署Corosync + pacemaker环境及corosync常用配置详解

环境说明: 192.168.8.39 node2.chinasoft.com 192.168.8.42 node4.chinasoft.com 192.168.8.40 ansible管理服务器 192.168.8.77 VIP 192.168.8.20 nfs服务器 1.双机互信需要设置好,hosts文件需要解析好,时间要同步,配置好yum源 双击互信及Hosts文件配置,参考:http://blog.csdn.net/reblue520/article/details/51213030 最好

jenkins + pipeline构建自动化部署

一.引言 Jenkins 2.x的精髓是Pipeline as Code,那为什么要用Pipeline呢?jenkins1.0也能实现自动化构建,但Pipeline能够将以前project中的配置信息以steps的方式放在一个脚本里,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程,形成流水式发布,构建步骤视图化.简单来说,Pipeline适用的场景更广泛,能胜任更复杂的发布流程.举个例子,job构建工作在master节点,自动化测试脚本在slave节点,这时候je

详解Ansible(Roles)自动化部署配置LAMP架构

Roles简介Ansible为了层次化.结构化地组织Playbook,使用了角色(roles).Roles能够根据层次型结构自动装载变量文件.task以及handlers等.简单来讲,roles就是通过分别将变量.文件.任务.模块及处理器放置于单独的目录中,并可以便捷地include它们,roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中.? 创建Roles 创建roles时一般需要以下步骤:首先创建以roles命名的目录.然后在roles目标下分别创建以个角色名称命令