1.GIT基础    GIT是一个分布式版本管理系统,速度快,适合大规模,跨地区多人协同开.SVN是一个集中式版本管理系统. (1)GIT生态 GIT分布式版本管理系统 Gitlab git私库解决方案 Github git公有库解决方案  (2)Git安装 Centos: yum install -y git Ubuntu: apt-get install git Windows安装git bash Linux编译安装 注意不要使用git 1.8以下版本,推荐使用2.7版本 ①编译安装git[…
命令行测试 [root@linux-node1 ~]# mkdir testing [root@linux-node1 ~]# [root@linux-node1 ~]# cd testing/ [root@linux-node1 testing]# [root@linux-node1 testing]# git init Initialized empty Git repository in /root/testing/.git/ [root@linux-node1 testing]# " &…
一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 maven是属于Apache的开源项目 maven主要服务于java平台的构建.依赖管理.项目管理. 二.手动安装MAVEN ()下载maven [root@linux-node2 ~]# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3…
思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-->Credentials-->System-->Global credentials(unrestricted)-->Add Credentials 1.Kind选择Gitlab API token 2.其中API token填写gitlab中有库权限的账号 3.ID填写用户账号 gi…
一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载jdk8,放到/usr/local/src/目录下 [root@linux-node3 ~]# tar -zxvf jdk-8u151-linux-x64.tar.gz [root@linux-node3 ~]# .0_151 /usr/local/jdk1.…
目录 一.环境说明和准备 1.环境说明 2.服务器准备工作 二.发布脚本编写 1.自动化部署流程设计 2.自动化部署脚本编写 三.发布测试 1.开发机和github添加ssh信任 2.克隆项目到开发机进行开发测试 3.修改index.html文件 4.提交代码 5.发布代码 6.测试访问 7.回滚测试 一.环境说明和准备 1.环境说明 主机名 IP地址 角色 系统 deploy-server 192.168.56.12 发布 Centos 7.4 web 192.168.56.13 web服务器…
1.创建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拉取代码库 ()生成ssh-key [root@linux-node1 ~]…
gitlab的备份和恢复 (1)创建备份目录,并授权 [root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-node1 ~]# chown -R git.git /data/ [root@linux-node1 ~]# ll /data/ -d drwxr-xr-x git git Dec : /data/ (2)修改gitlab配置 [root@linux-node1 ~]# vim /etc/gitlab/gitlab…
一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. (2)没有持续集成 项目做模块集成的时候,发现很多借口都不通==>浪费大量时间 需要手动去编译打包最新的代码==>构建过程不透明…
使用git+jenkins实现持续集成 Step1:构建一个自由风格的php-deploy Step2:Gernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿 Step3:源码管理:这里使用git插件,也可以使用svn插件 将git路径存在这里还需要权限认证,否则会出现error .jenkins服务器上生成SSH-Key [root@linux-node2 ~]# yum install -y git [root@linux-node2 ~]# ssh-keygen Genera…
1.安装依赖及gitlab [root@linux-node1 ~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix [root@linux-node1 ~]# systemctl start postfix 2.安装gitlab 由于国内网络偏慢,这里使用清华大学的镜像源进行安装gitlab-ce [root@linux-node1 ~]# cat /etc/yum.repos.d/gitl…
一.Jenkins的远程管理 Jenkins的远程管理方式包含: Shell ssh SSH Plugin ansible.saltstack (1)Shell ssh在项目构建时,jenkins使用了Execute Shell直接对远程主机操作,同步了代码到主机192.168.56.11上,并且可以增加对远程机器进行操作.例如执行某个脚本:ssh root@192.168.53.11 "/bin/sh /data/scripts/****.sh "如图: (2)SSH plugin除…
一.Jenkins按角色授权 当一个公司的开发分为多个组别,或者是多个项目等等.用于公司内部测试,让开发人员自行构建测试,此时不可能让所有的开发都在公用一个构建,这样变得很混乱,为了解决这一问题,jenkins也提供了角色授权的机制.每个开发有着对应的账号和权限,可以自行新建,构建,测试,发布等.角色授权需要安装的插件:Role-based Authorization Strategy (1)系统配置系统管理-->Configure Global Security-->访问控制-->授权…
1.什么是Nexus? 在前面进行maven项目的构建中,可以看到在构建的过程中需要安装maven的依赖插件,如图: 而在maven的默认配置中是在官网的中央仓库和第三方的maven仓库进行下载,速度偏慢.这里提供阿里云的maven插件库(http://maven.aliyun.com/nexus/#view-repositories),可以在/data/apache-maven-3.5.2/conf/settings.xml 配置文件中进行修改. 在日常的开发构建中,我们也可以自己搭建一个私有…
Gitlab+Jenkins基础篇 Gitlab+Jenkins学习之路(一)之Git基础 Gitlab+Jenkins学习之路(二)之gitlab部署 Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理 Gitlab+Jenkins学习之路(四)之gitlab备份和恢复 Gitlab+Jenkins学习之路(五)之git merge和git rebase的区别 Gitlab+Jenkins学习之路(六)之Jenkins部署.升级和备份 Gitlab+Jenkin…
今天的第二更,被我拖到了傍晚,嘿嘿,二进制这方面让本就数学不好的我很头疼,所以研究了一段时间 在学习之前我们先了解几个问题: 32位是几个字节? 01011100对于十进制是多少? 00001111向左位移两位结果是多少?有什么规律? 以补码形式表示的8位二进制数11111111,十进制为多少? 二进制和十进制有什么区别? 在学习前肯定会对问题里的一些属于感到蒙蔽,不要急,按照我写的一步一步往下看,再回头看这些问题,就会迎刃而解 为什么要用二进制? 可能有些人不了解我们放着好好地十进制不用为什么…
一.部署gitlab gitlab部署我采用的是docker的方式,这种方式的优势是方便:之前部署过非docker的gitlab,需要配置安装许多东西,太麻烦,还是docker部署方便,从官网pull下来,直接已启就ok了: 官方gitlab容器链接:https://docs.gitlab.com/omnibus/docker/README.html 1.export GITLAB_HOME=/usr/local/gitlab 先配置临时环境变量,这步可省略,但是第二步要写绝对路径: 2.doc…
1. 什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?原子操作是指一个不受其他操作影响的操作任务单元.原子操作是在多线程环境下避免数据不一致必须的手段. int++并不是一个原子操作,所以当一个线程读取它的值并加1时,另外一个线程有可能会读到之前的值,这就会引发错误. 为了解决这个问题,必须保证增加操作是原子的,在JDK1.5之前我们可以使用同步技术来做到这一点.到JDK1.5,java.util.concurrent.atomic包提供…
Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进程.线程可以被称为轻量级进程.线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源. 2. 多线程编程的好处是什么?在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入空闲状态.多个线程共享堆内存(heap mem…
处理了二进制的整数运算,下面我们来进行令人绝望的浮点数运算 我们先来看一下float事列程序: #include<"stdio.sh"> int main() { float sun=0; for(int i=0;i<100;i++) { sun+=0.1; } printf("%f",sun); return 0; } 这是一个比较简单的C语言循环,可能有没接触过C语言的同学,不要紧,这个程序的大致意思是让这个sum值循环100次,每次加0.1,…
▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ 安装Git 因为我是用的Windows,所以就介绍一下在Windows上怎样安装,Linux.Mac的请移步 廖雪峰的官方网站-Git教程 或者 CODE帮助文档-Progit中文版 下载Git的客户端可以点击 Git for Windows ,由于网速感人,所以我提供了一个百度云的链接,点击下载…
▓▓▓▓▓▓ 大致介绍 我们写好文件后添加到版本库,但是这样还没有做完,我们还需要将它同步到GitHub的远程仓库上,这里就以我们刚开始的drag项目为例,我们在Git学习之路(2)-安装GIt和创建版本库 中将drag项目克隆到了本地文件中,假设进过修改后,我们现在要将修改后的文件同步到远程仓库中 如果对前面的知识有疑问,请移步小白学Git ▓▓▓▓▓▓ 同步到远程仓库 我们要想将文件添加到远程首先要确定 Git Shell 和 有界面的客户端中登录的是不是自己的GitHub账号,应为同步到远…
▓▓▓▓▓▓ 大致介绍 几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的.就比如我在没有学习Git之前,想实现我的一个小想法,但是又害怕影响已完成的工作,只有ctrl+c.ctrl+v,但是在Git中,甚是方便了许多. 这篇博客主要讲以下几部分: ◆ 创建分支 ◆ 合并分支 ◆ 删除分支 ▓▓▓▓▓▓ 创建分支 在之前的学习中,都只有一个分支即 master分支 这是Git中主分支的默认名…
Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.gitlab设置1.进入项目-->设置 以上两个步骤设置完成就可以了.如果不能触发可能是gitlab hook插件没安装,安装下即可.…
目录 一.今天想干啥? 二.今天干点啥? 三.今天怎么干? 3.1.常规打法 3.2.不走寻常路 四.开干吧! 4.1.工具链部署 4.2.网络配置 4.3.验证工具链部署结果 4.3.1.GitLab 4.3.2.Jenkins 4.3.3.Harbor 4.4.流水线配置 4.5.验证流水线配置结果 五.总结 一.今天想干啥? 今天我们来聊聊如何快速落地"GitLab + Jenkins + Harbor 工具链". 请注意这里的关键词:快速(有多快呢?我希望这个时间是5分钟.)…
jenkins:运维持续集成工具,靠着丰富的插件挑大梁. gitlab:git代码管理仓库web版,功能强大且丰富. 本文是记录自己工作中从搭建到使用~ 前提是会点git~可以去廖老师的网站学习:www.liaoxuefeng.com 1.环境准备 服务器一台:CentOS7 内存:8G CPU:2核以上 基础优化~不说了,主要是关防火墙和selinux 2.gitlab搭建 2.1源: cat >>/etc/yum.repos.d/gitlab-ce.repo<<EOF[gitl…
持续集成 gitlab+jenkins(pipeline)实现代码自动上线 环境准备:Centos7.6版本ip:192.168.0.13 主机名:gitip:192.168.0.23 主机名:jenkinsip:192.168.0.15 主机名:web01关闭防火墙关闭selinux分发公钥使两两主机间可以免密码连通  192.168.0.13主机上 1.安装gitlab #安装gitlab要先安装如下依赖包 [root@git git_data]# yum install -y curl p…
通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上得来终觉浅,绝知此事要躬行"),本文从实践角度介绍如何结合我们常用的Gitlab与Jenkins,通过K8s来实现项目的自动化部署,示例将包括基于SpringBoot的服务端项目与基于Vue.js的Web项目. 本文涉及到的工具与技术包括: Gitlab -- 常用的源代码管理系统 Jenkins,…
你系统学习Git了吗? 学习圣思园张龙老师的Git课程. 使用Mac编程的好处,不是因为Mac长得好看 Git内容学习准备 如果你还没有用Git,就不要写代码了. GitHub仓库的使用. 新员工入职的时候,会让他先用一周的时间去学习Git. Mac(优雅的开发环境,Terminal) 不要使用GUI入门Git.要使用命令行. 官网:http://www.git-scm.com/ 安装Git 使用Xcode自带的Git环境. 去官网自行下载安装. Terminal的增强. bash 每一个Lin…
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   server:一般redis服务器信息,包含以下域:         redis_version:redis服务器版本号         redis_git_sha1:Git SHA1         redis_git_dirty:Git dirty flag         os:redis服务器…