Git安装及gitlab 环境配置

1.1 安装

# 安装
[root@instance-gvpb80ao ~]# yum install git -y

# 测试
[root@instance-gvpb80ao ~]# git --version
git version 1.8.3.1

# 基本配置
git config --global user.name "Your Name"  #用户名
git config --global user.email "email@example.com"  #邮箱

# 查看信息
[root@instance-gvpb80ao ~]# git config -l
user.email=you@example.com
user.name=Your Name

 

1.2 仓库

对应的就是一个目录,这个目录中的所有文件被git管理起来。以后会将一个项目的根目录,作为仓库。仓库中的每个文件的改动 都由git跟踪。

1.2.1 新建仓库

 

[root@instance-gvpb80ao ~]# mkdir test
[root@instance-gvpb80ao ~]# cd test/
[root@instance-gvpb80ao test]# git init
初始化空的 Git 版本库于 /root/test/.git/
[root@instance-gvpb80ao test]# ll -a
总用量 12
drwxr-xr-x  3 root root 4096 12月 21 16:12 .
dr-xr-x---. 8 root root 4096 12月 21 16:12 ..
drwxr-xr-x  7 root root 4096 12月 21 16:12 .git

 

1.2.2、 链接远程仓库

git remote add origin git@github.com:yourName/repositoryname.git

git remote add origin https://github.com/yourName/repositoryname.git

git remote -v  查看远程连接
git remote rm origin  删除远程连接

1.2.3、 从远程仓库获取

# 当本地没有代码仓库时
git clone https://github.com/yourName/repositoryname.git

# 当本地已经有了代码仓库,现在需要同步远程仓库内容
git pull origin master

1.2.4 将本地文件推送到远程

git status          查看工作目录的状态

git add <file>        将文件添加到暂存区

git commit -m "commnet"   提交更改,添加备注信息(此时将暂存区的信息提交到本地仓库)

git push origin master    将本地仓库的文件push到远程仓库(若 push 不成功,可加 -f 进行强推操作)

1.2.5、 提交与修改

# 添加文件到仓库
git add

1.2.6、 查看状态

git status

 

1.2.7、 查看文件变化

格式:git diff

# 查看某个文件
[root@instance-gvpb80ao test]# git diff index.php
diff --git a/index.php b/index.php
index 12dbfc1..20bf84b 100644
--- a/index.php
+++ b/index.php
@@ -1,3 +1,3 @@
 <?php
 
-echo "Oldboy"
+echo "Oldboy";

# 查看
[root@instance-gvpb80ao test]# git diff
diff --git a/demo.php b/demo.php
index b3d9bbc..03750a5 100644
--- a/demo.php
+++ b/demo.php
@@ -1 +1,2 @@
 <?php
+echo "Index"
diff --git a/index.php b/index.php
index 12dbfc1..20bf84b 100644
--- a/index.php

+++ b/index.php

@@ -1,3 +1,3 @@

 <?php

 

-echo "Oldboy"

+echo "Oldboy";

1.2.8、 分支

# 查看分支
[root@instance-gvpb80ao test]# git branch 
* master

# 查看远程分支
[root@instance-gvpb80ao test]# git branch  -a
* master

# 创建分支
[root@instance-gvpb80ao test]# git branch  -a
* master
  test

# 切换分支
[root@instance-gvpb80ao test]# git checkout test
M       demo.php
M       index.php
切换到分支 'test'
[root@instance-gvpb80ao test]# git branch  -a
  master
* test

# 打标签
[root@instance-gvpb80ao test]# git tag -a v1.1.5-stable -m "做了很多事" 
[root@instance-gvpb80ao test]# git tag
v1.1.5-stable

# 查看标签内容
[root@instance-gvpb80ao test]# git show v1.1.5-stable
tag v1.1.5-stable
Tagger: Your Name <you@example.com>
Date:   Mon Dec 21 16:41:12 2020 +0800

做了很多事

 

commit 3fb292cfade47c2c6f58ceb23d0dfd3cb14217d1

Author: Your Name <you@example.com>

Date:   Mon Dec 21 16:30:46 2020 +0800

 

    init

 

diff --git a/demo.php b/demo.php

new file mode 100644

index 0000000..b3d9bbc

--- /dev/null

+++ b/demo.php

@@ -0,0 +1 @@

+<?php

diff --git a/index.php b/index.php

index e69de29..12dbfc1 100644

--- a/index.php

+++ b/index.php

@@ -0,0 +1,3 @@

+<?php

+

+echo "Oldboy"

 

# 按照分支拉取代码

git clone -b [分支名称] [git链接]

 

# 按照标签拉取代码

git clone [git链接]

git tag [tag_name]

2 gitlab 安装

2.2 安装相关依赖

yum -y install policycoreutils openssh-server openssh-clients postfix

2.3、 关闭防火墙

[root@instance-gvpb80ao test]# systemctl disable firewalld

# 关闭selinux


sed -i 's#enforcing#disabled#g' /etc/sysconfig/selinux


# 临时关闭


setenforce 0

 

2.4、 下载gitlab包,并且安装

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm

2.5 修改gitlab配置

# 安装gitlab
yum install gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm

2.6 重载配置及启动gitlab

# 配置文件
# 修改配置文件
[root@sean ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.12.82'
nginx['listen_port'] = 80
# 刷新配置(默认启动)
gitlab-ctl reconfigure
# 启动
gitlab-ctl start

2.7.1 、添加组、创建用户、创建项目

2.7.1 创建组

2.7.3、 将用户绑定用户组

2.7.4、 添加用户有5种角色

1. Guest:可以创建issue、发表评论,不能读写版本库

2. Reporter:可以克隆代码,不能提交,QAPM 可以赋予这个权限

3. Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限

4. Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个 权限

5. Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组 长可以赋予这个权限

2.7.5、 创建项目

3、Jenkins持续集成工具

1.Jenkins安装

1.1、 安装java

yum install java-1.8.0-openjdk* -y

1.2 安装

启动Jenkin# 官方推荐
# 下载镜像源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 安装认证Key
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

# 安装JenKins
yum install jenkins

# 第二种方式
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.1-1.1.noarch.rpm

yum install jenkins-2.249.1-1.1.noarch.rpm

# 启动
systemctl start jenkins

1.3 获取初始密码

cat /var/lib/jenkins/secrets/initialAdminPassword

2.Jenkins插件管理

# 切换至配置文件目录
cd /var/lib/jenkins/updates

# 换源
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

最后,插件管理点击高级,把站点升级改为国内插件下载地址:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

3. Jenkins用户权限

我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限

3.1 开启权限全局安装配置

3.2 创建角色

Global roles(全局角色):管理员等高级用户可以创建基于全局的角色

Item roles(项目角色): 针对某个或者某些项目的角色

Node roles(节点角色):节点相关的权限

Base: 设置成所有的用户都有查看的权限

Alvin: 设置以alvin开头的项目有超管权限

Oldboy:设置以oldboy开头的项目有超管权限

3.3 创建用户

3.4 分配角色

4、 Jenkins 凭证管理

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件。

1. Username with password:用户名和密码

2. SSH Username with private key: 使用SSH用户和密钥

3. Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径 设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。

4. Secret text:需要保存的一个加密的文本串,如钉钉机器人或Githubapi token Certificate:通过上传证书文件的方式

5. X.509:证书,一般使用第三方云服务时使用。

6. Certificatedocker私有仓库密码存储类型。

4.1 配置密码登录

4.2、 配置私钥登录

5、 Jenkins构建变量

Jenkins变量也被称为参数化构建。

四、 Jenkins构建maven

Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。

1. 配置maven环境

 

[root@instance-gvpb80ao opt]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
--2020-12-21 20:34:21--  https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 124.239.159.250, 124.239.227.238, 124.239.234.224, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|124.239.159.250|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9506321 (9.1M) [application/octet-stream]
正在保存至: “apache-maven-3.6.3-bin.tar.gz”

100%[======================================================================================================================>] 9,506,321   2.40MB/s 用时 3.8s   

2020-12-21 20:34:26 (2.40 MB/s) - 已保存 “apache-maven-3.6.3-bin.tar.gz” [9506321/9506321])

[root@instance-gvpb80ao opt]# ll | grep mav

-rw-r--r--   1 root root 9506321 7月   3 12:01 apache-maven-3.6.3-bin.tar.gz

[root@instance-gvpb80ao opt]# java -version

openjdk version "1.8.0_272"

OpenJDK Runtime Environment (build 1.8.0_272-b10)

OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)

 

# 移动到/usr/local

[root@instance-gvpb80ao opt]# mv apache-maven-3.6.3 /usr/local/

[root@instance-gvpb80ao opt]# cd /usr/local/apache-maven-3.6.3/

[root@instance-gvpb80ao apache-maven-3.6.3]# pwd

/usr/local/apache-maven-3.6.3

 

# 添加环境变量

[root@instance-gvpb80ao apache-maven-3.6.3]# vim /etc/profile

export MAVEN_HOME=/usr/local/apache-maven-3.6.3

export PATH=$MAVEN_HOME/bin:$PATH

 

[root@instance-gvpb80ao apache-maven-3.6.3]# source /etc/profile

 

[root@instance-gvpb80ao apache-maven-3.6.3]# mvn -version

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)

Maven home: /usr/local/apache-maven-3.6.3

Java version: 1.8.0_272, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64/jre

Default locale: zh_CN, platform encoding: UTF-8

OS name: "linux", version: "3.10.0-1127.13.1.el7.x86_64", arch: "amd64", family: "unix"

 

2. 配置maven

 

2.1 安装maven插件

2.2 创建java代码仓库

2.3、 创建maven仓库

使用jenkins用户在/data/software目录下新建一个repository文件夹,用来作为maven的仓库

 

[root@instance-gvpb80ao ~]# mkdir -pv /data/software/repository
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/software"
mkdir: 已创建目录 "/data/software/repository"
[root@instance-gvpb80ao ~]# chown jenkins.jenkins /data/software/repository/

 

使用root账户修改Mavensettings.xml文件(指定仓库目录和阿里云镜像)

 

# 修改/usr/local/apache-maven-3.6.3/conf/setting.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <!--本地仓库-->          

  <localRepository>/data/software/repository</localRepository>

  

  <mirrors>

    <!--阿里云镜像-->

    <mirror>

      <id>aliyun-maven</id>

      <mirrorOf>central</mirrorOf>

      <name>aliyun maven mirror</name>

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

    </mirror>

  </mirrors>

    ...

    ...

</settings>

 

2.4、 测试构建

2.5、 配置Tomcat

[root@instance-gvpb80ao opt]# wget https://ftp.wayne.edu/apache/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz
[root@instance-gvpb80ao opt]# tar xf apache-tomcat-9.0.41.tar.gz 
[root@instance-gvpb80ao opt]# mv apache-tomcat-9.0.41 /usr/local/
# 注:下方38080端口是我修改的,默认8080端口

后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置, 添加用户及权限

[root@instance-gvpb80ao apache-tomcat-9.0.41]# vim /usr/local/apache-tomcat-9.0.41/conf/tomcat-users.xml 

用户和密码都是:tomcat

    <role rolename="tomcat"/>
    <role rolename="role1"/>
    <role rolename="manager-script"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>

为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

 

[root@instance-gvpb80ao META-INF]# vim /usr/local/apache-tomcat-9.0.41/webapps/manager/META-INF/context.xml 

<!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

 

重新启动tomcat

 

[root@instance-gvpb80ao apache-tomcat-9.0.41]# ./bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/apache-tomcat-9.0.41
Using CATALINA_HOME:   /usr/local/apache-tomcat-9.0.41
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.41/temp

Using JRE_HOME:        /usr/lib/jvm/jre-1.8.0-openjdk

Using CLASSPATH:       /usr/local/apache-tomcat-9.0.41/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.41/bin/tomcat-juli.jar

Using CATALINA_OPTS:   

[root@instance-gvpb80ao apache-tomcat-9.0.41]# ./bin/startup.sh

Using CATALINA_BASE:   /usr/local/apache-tomcat-9.0.41

Using CATALINA_HOME:   /usr/local/apache-tomcat-9.0.41

Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.41/temp

Using JRE_HOME:        /usr/lib/jvm/jre-1.8.0-openjdk

Using CLASSPATH:       /usr/local/apache-tomcat-9.0.41/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.41/bin/tomcat-juli.jar

Using CATALINA_OPTS:   

Tomcat started.

 

3、 构建maven项目

Jenkins中自动构建项目的类型有很多,常用的有以下三种:

1. 自由风格软件项目(FreeStyle Project)

2. Maven项目(Maven Project)

3. 流水线项目(Pipeline Project)

 

每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在 实际开发中可以根据自己的需求和习惯来选择。

 3.1 创建项目

3.2、 测试编译

3.3 部署

安装一个插件

 

posted @ 2022-08-17 17:38  Οo白麒麟оΟ  阅读(2336)  评论(0编辑  收藏  举报