部署devops

实验环境

主机

服务

备注

192.168.1.1

Git、GitLab、Maven

内存4G,可联网

192.168.1.4

Git、Jenkins、Maven

内存4G,可联网

192.168.1.6

Nexus、Maven

内存3G,可联网

实验目的

当在GitLab上使用mvn生成Java项目代码后,通过Git上传到GitLab的项目仓库中,Jenkins会通过构建触发器,触发对GitLab项目进行打包,最后将jar包上传到Nexus

搭建环境

搭建GitLab/Maven

192.168.1.1

准备Java环境

tar zxf jdk-8u201-linux-x64.tar.gz 
mv jdk1.8.0_201/ /usr/local/java 
vim /etc/profile # 文件末尾添加
export JAVA_HOME=/usr/local/java 
export JRE_HOME=/usr/local/java/jre 
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib 
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 
rm -rf /usr/bin/java 
source /etc/profile 
java -version # 验证

安装Maven

tar zxf apache-maven-3.6.0-bin.tar.gz 
mv apache-maven-3.6.0 /usr/local/maven
echo "export PATH=$PATH:/usr/local/maven/bin" >> /etc/profile
source /etc/profile
mvn -v  # 验证

安装GitLab

# 安装git
yum -y install git
# 安装GitLab
rpm -ivh gitlab-ce-12.3.0-ce.0.el7.x86_64.rpm

配置GItLab启动

# 修改配置文件中访问GitLab页面的url
vim /etc/gitlab/gitlab.rb 
# 修改
external_url 'http://192.168.1.1'

# 编译配置GitLab并启动
gitlab-ctl reconfigure   # 第一次需要很长时间
gitlab-ctl start  # 启动gitlab
firewall-cmd --add-port=80/tcp  # 放行80端口供web设置管理

登录GitLab的web管理界面设置

访问http://192.168.1.1

第一次访问需要设置管理用户密码,默认管理用户root,密码最少8位

使用管理用户登录

搭建Jenkins/Maven

192.168.1.4

准备Java环境

tar zxf jdk-8u201-linux-x64.tar.gz 
mv jdk1.8.0_201/ /usr/local/java
vim /etc/profile
# 文件末尾添加
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

rm -rf /usr/bin/java
source /etc/profile
java -version # 验证

 安装Maven

tar zxf apache-maven-3.6.0-bin.tar.gz 
mv apache-maven-3.6.0 /usr/local/maven
echo "export PATH=$PATH:/usr/local/maven/bin" >> /etc/profile
source /etc/profile
mvn -v  # 验证

 安装Jenkins

# 安装git
yum -y install git
# 安装Jenkins
rpm -ivh jenkins-2.204.3-1.1.noarch.rpm
# 启动Jenkins
systemctl start jenkins
# 放行jenkins端口
firewall-cmd --add-port=8080/tcp

进入web页面安装Jenkins基本插件

访问http://192.168.1.4:8080

在1.4命令行查看解锁Jenkins密码

输入密码后,如果出现此界面

安装推荐插件

等待安装完成(很长很长时间)

安装加速神奇,Jenkins默认使用google来搜索插件的下载,而且插件也在国外网站,这里将updates目录中的default.json内的url换为百度(搜索引擎)和清华(下载插件地址),前提必须出现过以上界面才会有updates目录

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

 然后需要重启Jenkins

systemctl restart jenkins

此时web页面会显示断开,重新连接登录恢复下载即可

中间需要重新输入解锁Jenkins密码

安装完成后,创建管理用户

配置全局工具

进入全局配置管理

配置环境中的maven,设置系统文件,将路径填写为安装maven后的配置文件路径

配置Java环境,路径同样是安装过Java的环境,版本为1.8

配置Git环境,路径写为Git命令所在路径,命令行执行which git

配置maven安装目录,如果本机没有也可以选择自动安装

搭建Nexus(Maven私服)

192.168.1.6

tar zxf jdk-8u201-linux-x64.tar.gz 
mv jdk1.8.0_201/ /usr/local/java
vim /etc/profile
# 文件末尾添加
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

rm -rf /usr/bin/java
source /etc/profile
java -version # 验证

 安装Maven

tar zxf apache-maven-3.6.0-bin.tar.gz 
mv apache-maven-3.6.0 /usr/local/maven
echo "export PATH=$PATH:/usr/local/maven/bin" >> /etc/profile
source /etc/profile
mvn -v  # 验证

 安装Nexus

mkdir /usr/local/nexus
tar zxf nexus-3.14.0-04-unix.tar.gz -C /usr/local/nexus/

 启动Nexus

启动较慢,耐心等待

/usr/local/nexus/nexus-3.14.0-04/bin/nexus  start
firewall-cmd --add-port=8081/tcp
netstat -anpt | grep 8081

 配置Nexus的仓库

管理用户登录,管理账户admin,默认密码admin123

 

添加代理仓库

地址为aliyun的仓库地址,最下方创建即可

http://maven.aliyun.com/nexus/content/groups/public/

 

为新添加的aliyun仓库设置查找列表,后期使用jar包时就是依次使用各个仓库下载

配置Jenkins和GitLab中Maven使用Nexus私服下载jar包

在Nexus的web界面中仓库私服地址

192.168.1.4服务器上配置

vim /usr/local/maven/conf/settings.xml 
# 添加私服仓库地址
# 添加到<mirrors></mirrors>之间:
    <mirror>
        <id>nexus conf</id>
        <name>nexusconf</name>
        # 这里的地址为Nexus的地址及端口号
        <url>http://192.168.1.6:8081/repository/maven-public/</url>
        <mirrorOf>*</mirrorOf>   # 拦截所有jar包下载到私服
    </mirror>

 在192.168.1.1服务器上配置

vim /usr/local/maven/conf/settings.xml 
# 添加到<mirrors></mirrors>之间:
    <mirror>
        <id>nexus conf</id>
        <name>nexusconf</name>
        <url>http://192.168.1.6:8081/repository/maven-public/</url>
        <mirrorOf>*</mirrorOf>
    </mirror>

 准备项目

192.168.1.4(Jenkins)

安装插件

GitLab/GitLab Hook插件安装

 

Maven/Maven integration插件安装

192.168.1.1(GitLab)

新建项目仓库

这里直接使用管理用户来创建

创建名为kgcapp的项目仓库

在GitLab中添加本机的公钥值

 

在GitLab(1.1)本地的命令行中生成密钥对

[root@gitlab ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:N1WUQ0i1zfZ9Z5dA68c8aSzrn3EnCmkT8fSw0cisF98 root@gitlab
The key's randomart image is:
+---[RSA 2048]----+
|           ..*=. |
|           oo+++ |
|          . Xoo.+|
|           *.B=o=|
|        S = +ooXE|
|         . =  =.=|
|          =  ...o|
|         . o.. .=|
|            ...o |
+----[SHA256]-----+
[root@gitlab ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuGX4w7NPm8FQ7OBJM7yJszkY1g7leMyfRiYieCJeGhXn
Klzch1b0eqGCfTBulRyUnNwEAC+CQDHoifnjMS4yyrV7oyUi0ezET6h1KZlvsGqnqrncyswFcfNrjxU8tNt
XLtA8Vto9dhii3XU8JdEK42SGLOgsBAJvWsMFJphA4p0aRSG12ACxl+PxrYlKbOezEie5DtMkCKAEXlaUC2
dgsYYsP8eIJcn4ZOnU9gAjqPhkiYDqiAUoL3A9AuBXCY78/rdd1nPDqJh4aBCMUouE/CyGrkBCbX0Qapxwr
e/i9IdubdmXaH/j5m9CKVUuNeKKaJ6sflt6BPDwPAWHlQWPJ root@gitlab

 将公钥值复制到GitLab中

192.168.1.4(Jenkins)

配置邮箱

在最下方找到Jenkins URL的地方,填写自己的邮箱

找到扩展邮箱,smtp为qq的服务器,如果是163则将qq改为163,高级中的密码是邮箱的授权码

邮件通知中的设置和扩展邮箱类似,然后保存

再次进入系统设置中,在最下方找到测试邮件,填写一个邮箱,点击“test configuratioin”即可测试,如果报错,检查以上设置,有可能会因为保存不成功

新建任务并配置

新建任务名为kgcapp

与GitLab中的名称对应,在生产环境中不易被混淆

对kgcapp任务进行配置

描述信息

源码管理

复制GitLab项目的SSH地址

为了访问GitLab添加凭证(红色报错正常,添加正确的凭证就好了

创建凭证,其中的key是GitLab在本地生成的私钥,可以通过私钥与GitLab上的公钥来连接Jenkins和GitLab 

红色报错消失了

构建触发器

选择当gitlab上有新的代码更新时,进行构建

然后进入高级选项

生成一串token值,用来对GitLab中的项目代码进行操作,所以这个值要放到GitLab中,用于验证允许Jenkins来拿取代码,稍后会做

Build

当拿取到代码后,使用mvn clean deploy进行构建代码

Post Steps

构建命令结束后,继续执行一部分shell命令

构建后操作

 

设置收件人邮箱地址,且发送邮件时,携带log文件

设置邮件触发器,当构建成功/失败/不稳定时,都通知收件人和管理员

192.168.1.1(GitLab)

192.168.1.1中设置Jenkins中的token值,用来触发Jenkins构建

GitLab默认情况下不允许通过本地网络触发构建,以下这步是为了设置允许本地网络构建,如果不设置允许会在添加token时报错

设置允许之后,就可以设置GitLab项目与Jenkins的构建触发器连接了

进入项目中选择设置

图中的URL是在Jenkins中的项目路径,这个路径在构建触发器的那里可以看到,复制即可,token则是刚才在Jenkins的管理界面中生成的token值,也是同样的位置,然后点击下方add webhook

add成功后显示下图

生成测试代码

192.168.1.1(GitLab)

生成Java项目,以上这步虽然采用了私库中的阿里云maven库,但还是在生产项目时卡了半天,不知道原因,就等就对了

mvn archetype:generate -DgroupId=cn.kgc.kgcapp -DartifactId=kgcapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
archetype:指定操作类型,generate是产生项目的意思,老版本为create
-DarchetypeArtifactId:表示创建项目框架
maven-archetype-quickstart:代表java项目
maven-archetype-webapp:代表web项目
-DinteractiveMode=false:不采用交互模式,不需要人为操作

 

执行成功后会在当前目录生成名为kgcapp的一个目录,进入目录,生成一个测试的Java项目

cd /root/kgcapp

ls

pom.xml  src  # 可以看到这两个文件即可

修改pom.xml,可以使上传到Nexus(1.6)私服中

cd /root/kgcapp
vim pom.xml
# 倒数第一行上面添加以下,意思为添加本项目的上传仓库位置
  <distributionManagement>
    <snapshotRepository>
      <id>nexus</id>
      # 快照存储库,按照Maven的目录结构,这个库用于存放开发时的不稳定版
      <name>Snapshot Repository</name>
      <url>http://192.168.1.1:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
    <repository>
      <id>nexus</id>
      # 发布存储库,这个库用于稳定后的版本
      <name>Releases Repository</name>
      <url>http://192.168.1.1:8081/repository/maven-releases/</url>
    </repository>
  </distributionManagement>

 192.168.1.4(Jenkins)

编辑Maven配置文件,加入允许Nexus上传的认证验证信息

必须是在Jenkins中来添加认证,因为在执行构建mvn clean deploy 时,是用的Jenkins本地的maven配置文件,所以需要在Jenkins中配置Nexus的认证

 

vim /usr/local/maven/conf/settings.xml 
    <server>
      <id>nexus</id>   # 这里的id和pom文件中的一致
      <username>admin</username>   # 用户密码是Nexus仓库可以登录的,这里会使用管理用户
      <password>admin123</password>
    </server>

192.168.1.1(GitLab)

现在将Java项目上传到GitLab中

 

cd /root/kgcapp
git init
git add .
git config --global user.email "mupeifeiyi@gmail.com"
git config --global user.name "feiyi"
git commit -m "kgcapp"
git remote add origin git@192.168.1.1:root/kgcapp.git
git push -u origin master

 验证

192.168.1.1(GitLab)

在GitLab的web页面中,进入kgcapp项目,可以看到本机上传到仓库的src目录和pom.xml文件

 

192.168.1.4(Jenkins)

Jenkins的web页面中的项目会自动开始运行,直到打包上传到私服中,进入项目查看终端输出

192.168.1.6(Nexus)

查看私服的两个仓库maven-snapshots和maven-releases

因为自己的配置,知道是上传到了maven-releases仓库中

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要安装和部署DevOps,您可以按照以下步骤进行操作: 1. 首先,确保您的系统满足DevOps的要求。这可能包括操作系统、硬件、软件和网络方面的要求。例如,您可能需要安装适当的操作系统,如Linux或Windows Server,并确保系统具备足够的内存、存储和计算能力。 2. 接下来,您需要选择适合您需求的DevOps工具集。常见的DevOps工具包括版本控制工具(如Git)、持续集成/持续交付工具(如Jenkins、Travis CI、GitLab CI/CD等)、配置管理工具(如Ansible、Puppet、Chef等)、容器化工具(如Docker、Kubernetes等)以及日志和监控工具等。根据您的项目需求和团队偏好,选择合适的工具集。 3. 安装和配置选定的DevOps工具。您可以根据每个工具的官方文档或社区资源来了解如何在您的系统上安装和配置这些工具。通常,您需要下载所需的软件包,并按照指南进行安装和配置。 4. 集成您的项目和代码到DevOps工具中。这可能涉及将您的代码存储库与版本控制工具集成,设置持续集成/持续交付流水线,配置自动化构建和部署等。您可以根据选定的工具和项目需求来设置适当的集成和自动化流程。 5. 测试和优化您的DevOps流程。确保您的持续集成/持续交付流水线正常工作,并能够在每个代码提交或版本发布时自动执行测试、构建和部署等任务。根据需要进行调整和优化,以提高流程效率和代码质量。 6. 建立监控和日志系统。为了及时发现和解决问题,您需要设置适当的监控和日志系统,以便实时跟踪应用程序和基础设施的状态。您可以使用各种监控工具和日志分析工具来帮助您收集和分析关键指标和日志数据。 以上是安装部署DevOps的一般步骤,具体的操作可能因您的项目需求和技术栈而有所不同。建议您参考各个工具的文档和教程,并与团队成员一起进行讨论和决策,以确保成功实施DevOps流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值