C:\Program Files\Java\jdk1.8.0_152\bin
-javaagent:D:\IntelliJ IDEA\IntelliJ IDEA 2019.3.1\bin\jetbrains-agent.jar
选择当前的web项目
配置IDEA,使其能够识别tomcat
hostnamectl set-hostname gitlab && su
#安装依赖包
yum install -y policycoreutils openssh-server openssh-clients.x86_64 postfix
#启动ssh服务并且设置开机启动
systemctl start sshd && systemctl enable sshd
#设置postfix开机自启,并启动
systemctl start postfix && systemctl enable postfix
rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
修改 gitlab 访问地址和端口,默认为80,我们改为82
vim /etc/gitlab/gitlab.rb
23 external_url 'http://192.168.8.20:82' #访问地址设为本机IP地址
1112 nginx['listen_port'] = 82 #监听端口改为82,前面的注释需要取消掉
gitlab-ctl reconfigure
gitlab-ctl restart
http://192.168.8.20:82
访问Gitlab
修改管理员root密码,修改密码后,登录即可
将用户添加到组中
以刚才创建的zhangsan用户登录 ,然后在用户组中创建新的项目
Jenkins需要依赖JDK,所以先安装JDK1.8 ,安装目录为:/usr/lib/jvm
hostnamectl set-hostname jenkins && su
yum install java-1.8.0-openjdk* -y
rpm -ivh jenkins-2.277.4-1.1.noarch.rpm
vim /etc/sysconfig/jenkins
29 JENKINS_USER="root"
56 JENKINS_PORT="8888"
systemctl start jenkins
打开浏览器访问 http://192.168.8.19:8888
#获取Jenkins的密码
cat /var/lib/jenkins/secrets/initialAdminPassword
cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkins- ci.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
安装完以后需重启Jenkins
Chinese #翻译
Role-based Authorization Strategy #管理Jenkins用户权限
Credentials Binding #凭证插件
Git #使用Git工具到Gitlab拉取项目源码
Deploy to container #把项目部署到远程的Tomcat里面
Maven Integration #构建Maven项目
Pipeline #创建Pipeline项目
webhook
Gitlab
Email Extension Template #邮件扩展
SonarQube Scanner #代码审查
在 Jenkins 服务器上安装 Git工具
yum install git -y
git --version
使用 root 用户生成公钥和私钥,在 /root/.ssh/
目录保存了公钥和私钥
ssh-keygen -t rsa
把生成的公钥放在 Gitlab 中
tar zxvf apache-maven-3.6.2-bin.tar.gz
mkdir -p /opt/maven
mv apache-maven-3.6.2/* /opt/maven
vim /etc/profile #配置环境变量,末尾添加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export MAVEN_HOME=/opt/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
source /etc/profile
JDK1.8
/usr/lib/jvm/java-1.8.0-openjdk
maven3.6.2
/opt/maven
JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk
M2_HOME /opt/maven
PATH+EXTRA $M2_HOME/bin
mkdir /root/repo
vim /opt/maven/conf/settings.xml
54 <localRepository>/root/repo</localRepository>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/
<mirrorOf>central</mirrorOf>
</mirror>
可以看到项目打成 war 包了,代表 maven 环境配置成功
yum install java-1.8.0-openjdk* -y
tar -xzf apache-tomcat-8.5.47.tar.gz
mkdir -p /opt/tomcat
mv /root/apache-tomcat-8.5.47/* /opt/tomcat
/opt/tomcat/bin/startup.sh
vim /opt/tomcat/conf/tomcat-users.xml
<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,还需要修改以下配置,默认不许允许远程访问,现在需要注释掉
#开启远程访问
vim /opt/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" />
-->
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh
Jenkins中自动构建项目的类型有很多,常用的有:
自由风格软件项目(FreeStyle Project)Maven项目(Maven Project)
流水线项目(Pipeline Project)
Groovy Pipeline 支持两种语法:
Declarative(声明式)Scripted Pipeline(脚本式)
Pipeline 也有两种创建方法:
直接在 Jenkins 的 Web UI 界面中输入脚本通过创建一个 Jenkinsfile 脚本文件放入项目源码库中
一般推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfile Pipeline 这种方法
pipeline {
agent any
stages {
stage('pull code') {
steps {
echo 'Hello World'
}
}
stage('build project') {
steps {
echo 'Hello World'
}
}
stage('deploy item') {
steps {
echo 'Hello World'
}
}
}
}
生成编译构建的代码
生成部署代码(添加tomcat的凭证)
由于在Jenkins的UI界面编写Pipeline代码不方便脚本维护,并且脚本容易丢失,所以可以把Pipeline脚本放在项目中(一起进行版本控制)
在项目根目录建立Jenkinsfile文件,把脚本内容复制到该文件中
这里要注意的是观察代码是否变颜色,有概率不识别,导致构建失败~
然后对Jenkinsfile文件进行提交代码
到Gitlab仓库上查看是否提交成功
重新配置web_demo_pipeline项目
访问 Tomcat 查看发布结果,下面是前后对比