Linux自动化部署项目

Linux系统CentOS7

jdk安装

1.解压jdk-8u121-linux-x64.tar.gz

tar -xzvf jdk-8u121-linux-x64.tar.gz

2.配置java环境变量

[root@vultr bme]# vim /etc/profile						//配置java环境变量
......
#jdk环境变量配置
export JAVA_HOME=/bme/jdk1.8.0_121
export PATH=$PATH:${JAVA_HOME}/bin

[root@vultr bme]# source /etc/profile					//重新载入配置
[root@vultr bme]# java -version

tomcat安装

1.解压apache-tomcat-7.0.75.tar.gz

tar -xzvf apache-tomcat-7.0.75.tar.gz

2.配置tomcat环境变量

[root@vultr bme]# vim /etc/profile					//配置tomcat环境变量
......
#配置tomcat环境变量
export CATALINA_HOME=/bme/apache-tomcat-7.0.75
export PAHT=$PATH:${CATALINA_HOME}/bin:${CATALINA_HOME}/lib

[root@vultr bme]# source /etc/profile					//重新载入配置

3.配置tomcat(根据需要配置)

[root@vultr bme]# vim apache-tomcat-7.0.75/conf/server.xml
......
 <Connector port="9090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>

git安装

查看Linux是否已安装git及安装的git的所在路径

[root@vultr bme]# git --version
git version 1.8.3.1
[root@vultr bme]# whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz

如果希望安装自己希望版本的git,请看如下步骤:

1.解压git-2.9.3.tar.gz

[root@vultr bme]# tar -xzf git-2.9.3.tar.gz 

2.编译和安装git

[root@vultr bme]# yum install libcurl-dev libcurl-devel                 //安装依赖包
[root@vultr bme]# yum install expat-devel                              //安装依赖包
yum install perl-ExtUtils-MakeMaker package							  //安装依赖包
[root@vultr bme]# cd git-2.9.3
[root@vultr git-2.9.3]# make prefix=/usr/local/git all					//在/usr/local/git下编译源码
[root@vultr git-2.9.3]# make prefix=/usr/local/git install				//在/usr/local/git下安装

git安装常见错误参考 https://www.cnblogs.com/grimm/p/5368777.html

3.配置环境变量替换/usr/bin/git

[root@vultr git-2.9.3]# vi /etc/profile					//配置git环境变量
......
#配置git
export PATH=/usr/local/git/libexec/git-core:$PATH			//注意$PATH必须放在后面才可覆盖旧版本
[root@vultr git-2.9.3]# source /etc/profile			//重新载入配置
[root@vultr bme]# git --version
git version 2.9.3

maven安装

1.解压apache-maven-3.5.0-bin.tar

tar -xzvf apache-maven-3.5.0-bin.tar

2.配置maven环境变量

[root@vultr bme]# vim /etc/profile
......
#配置maven环境变量
export MAVEN_HOME=/bme/apache-maven-3.5.0
export PATH=$PATH:${MAVEN_HOME}/bin

[root@vultr bme]# source /etc/profile

3.配置maven仓库(根据需要配置)

[root@vultr bme]# vim apache-maven-3.5.0/conf/settings.xml
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
	-->
  <localRepository>/usr/local/repo</localRepository>

启动和关闭tomcat

1.防火墙简述

Centos7中的防火墙使用firewall替代了之前的iptables。systemctl是Centos7服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体,常用指令如下:

启动防火墙服务:systemctl start firewalld.service
关闭防火墙服务:systemctl stop firewalld.service
重启防火墙服务:systemctl restart firewalld.service
显示防火墙服务的状态:systemctl status firewalld.service
在开机时启用防火墙服务:systemctl enable firewalld.service
在开机时禁用防火墙服务:systemctl disable firewalld.service
查看防火墙服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

针对其他服务直接替换firewalld.service即可

配置防火墙的指令是firewall-cmd,常用指令如下:

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看启动的服务(一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件):firewall-cmd --list-services
查看可以启动的服务:firewall-cmd --get-services

查看所有打开的端口: firewall-cmd --zone=public --list-ports
添加开放端口:firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)
更新防火墙规则: firewall-cmd --reload
查看80端口是否开放:firewall-cmd --zone=public --query-port=80/tcp
删除某个开放端口:firewall-cmd --zone=public --remove-port=80/tcp --permanent

2.开启9090端口

[root@vultr bme]# firewall-cmd --zone=public --add-port=9090/tcp --permanent
[root@vultr bme]# firewall-cmd --reload

3.启动tomcat

  • 方式一: 直接启动./startup.sh,当客户端连接断开tomcat停止运行。
  • 方式二: 作为服务启动 nohup ./startup.sh &
  • 方式三: 控制台动态输出方式启动./catalina.sh run动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务,当客户端连接断开tomcat停止运行。
[root@vultr bme]# cd apache-tomcat-7.0.75/bin
[root@vultr bin]# nohup ./startup.sh > /var/tomcat.log 2>&1 &

4.关闭tomcat

使用方式二启动的tomcat需要获取进程ID,并杀死

[root@vultr bin]# ps -ef|grep tomcat
root      6876     1  1 13:18 pts/0    00:00:04 /bme/jdk1.8.0_121/bin/java -Djava.util.logging.config.file=/bme/apache-tomcat-7.0.75/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/bme/apache-tomcat-7.0.75/endorsed -classpath /bme/apache-tomcat-7.0.75/bin/bootstrap.jar:/bme/apache-tomcat-7.0.75/bin/tomcat-juli.jar -Dcatalina.base=/bme/apache-tomcat-7.0.75 -Dcatalina.home=/bme/apache-tomcat-7.0.75 -Djava.io.tmpdir=/bme/apache-tomcat-7.0.75/temp org.apache.catalina.startup.Bootstrap start
root      6907  6002  0 13:23 pts/0    00:00:00 grep --color=auto tomcat
[1]+  Done                    nohup ./startup.sh > /var/tomcat.log 2>&1

[root@vultr bin]# kill 6876

当进程结束不了时,kill -9 PID可强制结束。

自动化部署工具jenkins

1.jenkins安装

下载jenkins.war放置到Tomcat 解压目录/webapps 目录下,配置jenkins登陆账号和密码

[root@vultr conf]# vi tomcat-users.xml 
.......
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="tomcat_user" password="123456"
                roles="manager-gui,manager-script,manager-jmx,manager-status"/>

或直接使用Linux命令安装jenkins

[root@vultr bin]# sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
[root@vultr bin]# sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
[root@vultr bin]# sudo yum install jenkins

2.启动jenkins项目

[root@vultr bin]# nohup ./startup.sh > /var/tomcat.log 2>&1 &

其他相关命令

启动脚本文件:
[root@vultr bin]# /etc/init.d/jenkins
[root@vultr bin]# systemctl daemon-reload
[root@vultr bin]# sudo service jenkins start/stop/restart
[root@vultr bin]# sudo chkconfig jenkins on
配置文件
[root@vultr bin]# vim /etc/sysconfig/jenkins
日志文件
[root@vultr bin]# tail -f /var/log/jenkins/jenkins.log
管理员密码
[root@vultr bin]# cat /var/lib/jenkins/secrets/initialAdminPassword

启动成功后,访问 http://45.77.103.100 :9090/jenkins
Linux自动化部署项目_第1张图片

根据提示获取密码cat /root/.jenkins/secrets/initialAdminPassword登陆即可。

git连接远程仓库

生成ssh连接的rsa密钥

ssh-keygen -t rsa -C "[email protected]"

在用户主目录下找到.ssh目录,里面的id_rsa是私钥,id_rsa.pub是公钥,将公钥加入到远程的SSH KEY中。git远程仓库https连接没有证书,则全局配置https验证设置为false:

git config --global http.sslVerify false

添加远程库

git remote add origin https://github.com/YuChangTao/springboot.git

jenkins系统设置

Linux自动化部署项目_第2张图片

jenkins全局工具配置

Linux自动化部署项目_第3张图片

构建项目

点击【新任务】——>填写项目名称并选择项目类型后示例配置如下:

Linux自动化部署项目_第4张图片
Linux自动化部署项目_第5张图片

参考脚本如下:

#!/bin/bash

echo 'project 生产环境  build start'
echo 'PATH='$PATH
#进入项目路径
cd /var/lib/jenkins/workspace/project
#maven打包
mvn clean package

#根据端口(9091)获取进程PID
pid=$(netstat -nlp | grep :9091 | awk '{print $7}' | awk -F"/" '{ print $1 }')
echo '9091端口pid=' $pid

#杀掉对应的进程
if [ -n "$pid" ]
then
   kill -9 $pid
fi

#后台运行project.jar
BUILD_ID=dontkillMe nohup java -jar /var/lib/jenkins/workspace/project/target/project.jar &
echo 'project 生产环境启动 success'

注意事项:maven仓库和jenkins的workspace可能会因为权限问题而导致启动失败,可以通过chmod -R 777 目录将目录及其子目录设置为777权限。

希望每次提交代码自动构建项目可以通过添加钩子程序解决,请自行百度。

你可能感兴趣的:(Linux)