systemctl disable --now firewalld
setenforce 0
yum install -y curl policycoreutils-python openssh-server perl postfix
systemctl enable --now sshd postfix
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.8-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-12.4.8-ce.0.el7.x86_64.rpm
vim /etc/gitlab/gitlab.rb
# 修改以下配置
external_url 'http://:82'
nginx['listen_port'] = 82
gitlab-ctl reconfigure
gitlab-ctl restart
http://:82
设置root密码(如:root@123)devops_group
(私有)web_demo
(私有)zhangsan
,设置密码 zhangsan@123
git config --global user.name "zhangsan"
git config --global user.email "[email protected]"
git clone http://<GitLab_IP>:82/devops_group/web_demo.git
# 上传代码后提交
git add .
git commit -m "init web_demo"
git push -u origin master
tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/
vim /etc/profile
# 添加环境变量
export JAVA_HOME=/usr/local/jdk-17.0.9
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
yum install jenkins -y
vim /usr/lib/systemd/system/jenkins.service
# 修改以下参数
User=root
Group=root
Environment="JAVA_HOME=/usr/local/jdk-17.0.9"
Environment="JENKINS_PORT=8080"
systemctl daemon-reload
systemctl start jenkins
systemctl enable jenkins
sed -i 's#https://updates.jenkins.io/#https://mirrors.tuna.tsinghua.edu.cn/jenkins/#g' /var/lib/jenkins/hudson.model.UpdateCenter.xml
systemctl restart jenkins
Localization: Chinese
, Git
, Deploy to container
http://:8080
解锁并创建管理员账户tar -zxvf apache-maven-3.6.2-bin.tar.gz -C /usr/local/
mv apache-maven-3.6.2 /usr/local/maven
vim /etc/profile
# 添加环境变量
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile
mkdir /usr/local/maven/repo
vim /usr/local/maven/conf/settings.xml
# 修改本地仓库路径和阿里云镜像
<localRepository>/usr/local/maven/repo</localRepository>
<mirror>
<id>alimaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
/usr/local/jdk-17.0.9
/usr/local/maven
JAVA_HOME=/usr/local/jdk1.8.0_391
MAVEN_HOME=/usr/local/maven
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /usr/local/
vim /etc/profile
# 添加环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_391
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
tar -zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
vim /usr/local/tomcat/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" /> -->
http://:82/devops_group/web_demo.git
mvn clean package
target/*.war
http://:8080
tomcat/tomcat
http://:8080/web_demo
确认应用已部署GitLab 502错误
gitlab-ctl tail
Jenkins构建失败
Tomcat部署失败
manager-script
角色已添加Pipeline
和 Pipeline Stage View
插件。Pipeline
和 Pipeline Stage View
。node {
def mvnHome
stage('拉取代码') {
echo '拉取代码'
}
stage('编译构建') {
echo '编译构建'
}
stage('项目部署') {
echo '项目部署'
}
}
说明:
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '拉取代码'
}
}
stage('编译构建') {
steps {
echo '编译构建'
}
}
stage('项目部署') {
steps {
echo '项目部署'
}
}
}
}
说明:
any
表示任意可用节点)。stage
)。checkout: Check out from version control
。sh: Shell Script
,输入 mvn clean package
。deploy: Deploy war/ear to a container
,配置 WAR 文件路径和 Tomcat 地址。pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']],
userRemoteConfigs: [[url: '[email protected]:devops_group/web_demo.git',
credentialsId: 'gitlab-auth-ssh']])
}
}
stage('编译构建') {
steps {
sh 'mvn clean package'
}
}
stage('项目部署') {
steps {
deploy adapters: [tomcat9(credentialsId: 'tomcat-auth', path: '', url: 'http://192.168.80.12:8080')],
war: 'target/*.war'
}
}
}
}
http://192.168.80.11:8080/project/web_demo_pipeline
)。cd /root/web_demo
vim src/main/webapp/index.jsp
git add .
git commit -m "更新代码"
git push -u origin master
通过 Pipeline 流水线 和 Git Hook 自动触发构建,可以实现从代码提交到自动化构建部署的完整流程:
后续可扩展: