安装Java
《Linux安装java》
安装Maven
把Maven上传到Linux服务器/data/目录下进行解压
cd /data/ && tar -zxvf apache-maven-3.9.3-bin.tar.gz
配置环境变量
vim /etc/profile
找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL在下面追加
# maven
export MAVEN_HOME=/data/apache-maven-3.9.3
export PATH=$MAVEN_HOME/bin:$PATH
保存后使环境变量生效并校验是否maven是否安装成功
source /etc/profile && mvn -version
修改默认依赖仓库位置
mkdir -p /data/apache-maven-3.9.3/repository && vim /data/apache-maven-3.9.3/conf/settings.xml
找到localRepository>/path/to/local/repo</localRepository,在注释外面追加
<localRepository>/data/apache-maven-3.9.3/repository/</localRepository>
配置镜像,找到mirrors标签,在里面追加如下内容
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<!-- spring-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/spring</url>
</mirror>
<!-- spring-plugin-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>
<!-- google-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/google</url>
</mirror>
<!-- grails-core-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/grails-core</url>
</mirror>
<!-- apache snapshots-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</mirror>
安装GitLab
《GitLab官网下载》
我的系统是Centos7 因此下载el/7版本的,7就是操作系统的版本号
选择对应的安装方式,我是离线环境,因此选择离线安装(下载速度慢,可以使用第三方下载工具,如:迅雷等)
离线安装
gitlab依赖的python库,policycoreutils-python is needed by gitlab-ce-16.0.7-ce.0.el7.x86_64
,找台能联网的虚拟机下载对应的policycoreutils-python rpm 包
yum install policycoreutils-python --downloadonly --downloaddir=/data/gitlab_rpm/
把这些rpm包复制到内网/data/gitlab_rpm/文件夹下进行离线安装
最好离线机器也放到同一个文件夹下存放rpm包,进行安装
cd /data/gitlab_rpm/ && rpm -ivh *.rpm --force --nodeps
离线安装gitlab
cd /data/ && rpm -ivh gitlab-ce-16.0.7-ce.0.el7.x86_64.rpm
看到如下图标就表示安装成功了
修改ip和端口号
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.111:8800'
重新加载gitlab配置文件(过程可能有点长)
gitlab-ctl reconfigure
查看gitlab初始密码
cat /etc/gitlab/initial_root_password
开放防火墙进入gitlab控制台修改初始密码
systemctl stop firewalld && systemctl disable firewalld
修改Gitlab初始密码
修改Gitlab语言为中文
然后滑到最下面进行Save changes保存
修改Gitlab存储位置
创建gitlab数据存储目录并停止gitlab
mkdir -p /data/gitlab/data/ && gitlab-ctl stop
移动gitlab安装目录到/data目录下
cp -R /var/opt/gitlab /data
修改数据存放目录
vim /etc/gitlab/gitlab.rb
不要按I输入,查找变量
/git_data_dirs(
修改path为/data/gitlab/git-data
# 因为默认的git_data_dirs是被注释掉了,我们直接在他下面追加如下内容即可。
git_data_dirs({
"default" => {
"path" => "/data/gitlab/git-data"
}
})
给我们创建的文件777权限
chmod -R 777 /data/gitlab/git-data/repositories
使配置文件生效并重启gitlab
gitlab-ctl reconfigure && gitlab-ctl restart
安装Git
《Git压缩包tar.gz下载》
git相关依赖【还是老办法,先下载到虚拟机,再打包放到离线环境安装】
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker --downloadonly --downloaddir=/data/git_rpm/
安装git需要的依赖
cd /data/git_rpm/ && rpm -ivh *.rpm --force --nodeps
上传到linux服务器的usr/loacl/目录下解压
tar -zxvf /usr/local/v2.39.0.tar.gz -C /usr/local/
离线安装git
cd /usr/local/git-2.39.0/
make prefix=/usr/local/git-2.39 all
make prefix=/usr/local/git-2.39 install
配置环境变量
vim /etc/profile
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL追加内容
# git
export GIT_HOME=/usr/local/git-2.39
export PATH=$GIT_HOME/bin:$PATH
保存,使配置文件生效并查看git是否安装成功
source /etc/profile && git -v
安装Jenkins
《Jenkins中文官网》
通过网页搜索找到我们需要的Jenkins版本
下载对应的war包(下载慢可以复制下载链接用第三方下载工具加速下载,如:迅雷等。)
jdk17可能会缺少字体依赖【还是老办法】
yum install fontconfig --downloadonly --downloaddir=/data/java/
cd /data/java/ && rpm -ivh *.rpm --force --nodeps
fc-cache --force
部署
创建jenkins存放文件夹,并进入该文件夹,上传war包到这个目录下
mkdir -p /data/jenkins/ && cd /data/jenkins/
上传完war包以后启动jenkins,确保已经安装好java和配置好环境变量
nohup java -jar jenkins.war --httpPort=8811 >nohup.out 2>&1 &
查看jenkins是否启动成功(可能要等个30-60秒)
cat nohup.out
查看初始密码
root是当前登录用户的文件夹,如果你的登录用户是其它则替换成对应的登录用户进行查看.
cat /root/.jenkins/secrets/initialAdminPassword
初始账号:admin(如果有的话)
初始密码:f4c5d63605124461aeffb8180b639908(就是上面通过命令查看的密码)
安装插件(建议使用它的推荐安装)
必装:Maven Integration plugin、Publish Over SSH
先在虚拟机安装好插件,到时候复制/root/.jenkins/plugins/下的jpi文件粘贴到离线环境/root/.jenkins/plugins/
root是用户的文件夹地址,如果你不是用root用户,则改成你安装jenkins的登录用户
配置全局变量
这个是Jenkins使用的Maven
编译项目的JDK
拉去项目的Git
部署项目的Maven
系统配置
java环境变量
Git环境变量
继续新增
拉到最底下的 Publish over SSH配置部署服务器,就是运行项目的服务器
构建一个maven项目
去Gitlab拷贝代码地址
回到jenkins粘贴复制的地址
解决 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. 错误
查看Gitlab的主分支名称,有的是master有的是main
最后保存。
报错就看控制台输出的错误信息去百度
部署服务器手动启动jar包(防火墙记得开放相应端口,避免无法访问)
[root@node2 /]# cd /docker_data/jenkins/home/workspace/first/target/
[root@node2 target]# java -jar gitlabdemo-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.6)
2022-12-14 08:12:22.723 INFO 41645 --- [ main] com.fu.gitlabdemo.GitlabdemoApplication : Starting GitlabdemoApplication v0.0.1-SNAPSHOT using Java 1.8.0_341 on node2 with PID 41645 (/docker_data/jenkins/home/workspace/first/target/gitlabdemo-0.0.1-SNAPSHOT.jar started by root in /docker_data/jenkins/home/workspace/first/target)
2022-12-14 08:12:22.726 INFO 41645 --- [ main] com.fu.gitlabdemo.GitlabdemoApplication : No active profile set, falling back to 1 default profile: "default"
2022-12-14 08:12:23.926 INFO 41645 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9090 (http)
2022-12-14 08:12:23.951 INFO 41645 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2022-12-14 08:12:23.951 INFO 41645 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.69]
2022-12-14 08:12:24.239 INFO 41645 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2022-12-14 08:12:24.239 INFO 41645 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1448 ms
2022-12-14 08:12:24.772 INFO 41645 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''
2022-12-14 08:12:24.786 INFO 41645 --- [ main] com.fu.gitlabdemo.GitlabdemoApplication : Started GitlabdemoApplication in 2.517 seconds (JVM running for 2.991)
springboot测试代码
启动类
@RestController
@SpringBootApplication
public class GitlabdemoApplication {
public static void main(String[] args) {
SpringApplication.run(GitlabdemoApplication.class, args);
}
@GetMapping("hello")
public String hello(){
return "hello world!";
}
}
yml配置server.port: 9090
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
浏览器访问192.168.56.12:9090/hello
下一篇
《jenkins自动化发布到服务器并自动运行》