前言
最近不是很忙,于是乎自己搭建了一套环境,这里记录一下搭建过程。
准备工作
- 服务器,本人使用的是阿里的,没有专用服务使用虚拟机,安装linux系统也是一样的。
- 各类程序包
简单来说,服务器的使用,不管是阿里云还是腾讯云,等等,其实大同小异,我们只需要了解使用其中一种即可。接下来就一步一步记录对阿里云的简单使用。(这里小编也是第一次使用云服务,所有记录尽量详细)
1. 阿里云的申请
登录官网查看云服务器购买列表,购买时选择地区、操作系统镜像(对于我们开发来说一般都是linux)等,还有一些购买数盘等,对于初使者来说,没必要。
购买页:(红框为大致我们需要选择部分)
2. 云控制台
云控制台根据不同类型的服务各有不太相同,但是刚接触我们大致使用的功能的都是类似的。
当我们点击服务名,即可进入当实例的详情页面,详情页面中包括实例的详情、对服务器的内存,cpu的监控模块,云盘使用情况,安全组等模块,如下图:
使用远程工具shell连接该服务,建议首先修改密码:
修改完密码我们就可以拿着密码用户为root通过shell连接该实例进行其它操作。
参考文章:Linux学习1-Xshell连接阿里云ECS服务器
特别注意:
当我们在云服务器上部署项目,等其它应用时,比如mysql,我们搭建完mysql需要在安全组中开放我们的外部访问的端口号:
二、安装JDK
安装JDK的方式有多种,这里小编使用的是yum安装方便无需配置,安装即可使用,但是不是所有应用都可以使用这种简单方式。
安装过程:
1. 检查是否已安装JDK及卸载
//以下命令二选一,中括号选一即可
yum list installed | grep [java][jdk]
rpm -qa | grep [java][jdk][gcj]
执行无任何jdk信息出现,即可继续安装,反正这需要先卸载原有jdk
卸载JAVA环境:
yum -y remove java-1.6.0-openjdk* //表时卸载所有openjdk相关文件输入
yum -y remove tzdata-java.noarch //卸载tzdata-java
2. 安装jdk
查看JDK软件包列表
yum search java | grep -i --color jdk
安装
#或者如下命令,安装jdk1.8.0的所有文件
yum install -y java-1.8.0-openjdk*
查看JDK是否安装成功
java -version
#该命令应出现安装好的jdk的版本信息
%22%20aria-hidden%3D%22true%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-33%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2E%22%20x%3D%22500%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(779%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E9%85%8D%3C%2Ftext%3E%0A%3Cg%20transform%3D%22translate(932%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E7%BD%AE%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(1865%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E7%8E%AF%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(2798%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E5%A2%83%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(3731%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E5%8F%98%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(4664%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E9%87%8F%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=3.%20%E9%85%8D%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%0A&id=OQH33)
JDK默认安装路径/usr/lib/jvm
进入linux的系统配置文件中/etc/profile文件添加如下命令
# set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64//根据自己安装的jdk版本
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
保存关闭profile文件,执行如下命令生效,查看jdk配置
source /etc/profile #生效命令,刷新全局配置文件
#查看jdk安装目录
echo $JAVA_HOME
echo $PATH
echo $CLASSPATH
四 、 mysql安装
同上,为了方便快捷的安装mysql,使用的是yum安装mysql5.7
安装过程:
1. 配置YUM源
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm #下载mysql源安装包
2. 安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
3. 检查mysql源是否安装成功
yum repolist enabled | grep “mysql.-community.“
安装成功:4. 安装MySQL
yum install mysql-community-server
- 启动MySQL服务
systemctl start mysqld
修改mysql配置文件
修改mysql配置文件,关闭密码策略(为了设置简单的密码,测试使用,生产切不可用)
#如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
validate_password = off
#添加字符集
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
登录mysql,修改root密码
mysql -uroot -p #第一次登录使用默认密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; #修改密码
systemctl restart mysqld #重新启动mysql服务使配置生效
7. 添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
# %代表所有ip
flush privileges; #刷新生效
至此mysql就安装完成了,也可以使用远程工具进行连接。
参考文章:CentOS7 64位下MySQL5.7安装与配置(YUM)
完全卸载过程
rpm -qa |grep -i mysql #查看mysql安装了哪些东西
yum remove mysql-community-common-5.7.20-1.el7.x86_64 #卸载查询出的服务
find / -name mysql #查找mysql相关目录
rm -rf #删除所有目录
rm -rf /etc/my.cnf #删除/etc/my.cnf
rm -rf /var/log/mysqld.log
#删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)
五、 maven 环境搭建
安装过程
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
查找maven安装路径
1)查找包路径
rpm -qa|grep apache-maven
2)根据包路径查找安装目录
rpm -ql apache-maven-3.5.2-1.el7.noarch
在搜索结果中就有maven的安装目录。
配置文件路径
/etc/maven/settings.xml
六、搭建nexus3环境仓库
1. 官网下载对象的压缩包:下载地址:http://www.sonatype.org/nexus/go
2. 通过shell上传到服务器
3. 解压命令,解压
tar -zxvf
4. 调整jvm参数
cd /nexus/bin/
vim nexus.vmoptions
#根据服务器适当调整jvm参数
保存
启动nexus(在bin目录下):
./nexus start
配置nexus私服,导入阿里云
1. 登录nexus的可视化web页面,默认端口号8081
- Nexus默认的端口是8081,可以在etc/nexus-default.properties配置中修改。
- Nexus默认的用户名密码是admin/admin123
- 当遇到奇怪问题时,重启nexus,重启后web界面要1分钟左右后才能访问。
Nexus的工作目录是sonatype-work(路径一般在nexus同级目录下),日志文件也在这里。
在阿里云控制台放开8081端口
访问:http://8.***.101.174:8081/
出现上面的页面即代表安装成功,
2 . 配置 nexus
先看一下大概的目录结构:
资源库也就是这么三种
参考文章:Nexus搭建Maven私服全攻略一:认识Nexus与索引
2 . 1 创建 Blob Strores
在创建 repository之前,还是需要先设定一个指定的文件存储目录(用来存放jar包),便于统一管理。在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。
2 . 2 创建 Proxy Repository 代理仓库
配置 Proxy Repository代理仓库。创建页面出来之后,页面上有三个框是必填的:
注意:可以多建几个proxy repository,以便于可以加入更多的远程maven仓库到我们的 group 仓库中。唯一一点,就是看加入的proxy资源库使用的是国内的还是国外的远程仓库。加入group资源库的顺序应是:
hosted仓库 > 国内proxy仓库 > 国外proxy仓库。
这里推荐几个远程仓库:
- jboss的maven中央仓库地址:http://repository.jboss.com/maven2/
- 阿里云的maven中央仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
- apache的maven中央仓库地址:http://repo.maven.apache.org/maven2/
2 . 3 创建 hosted repository 宿主仓库
- Hosted有三种方式:Releases、Snapshot、Mixed
- Releases: 一般是已经发布的Jar包
- Snapshot: 未发布的版本
- Mixed:混合的
2 . 4 创建 group repository 仓库组
3.2部署上传Jar:配置distributionManagement
配置 distributionManagement 节点,执行 deploy 命令时,会将jar发布到指定地址。
注意:配置20180929-SNAPSHOT时,如果后面添加了SNAPSHOT,则会自动发布到指定的snapshots仓库,否则发布到releases仓库。
项目的pom.xml:
<project>
...
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>
settings.xml:
<settings>
...
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
...
</settings>
两个文件的 id 需要保持一致!
参考文章:Nexus搭建Maven私服全攻略二:安装和配置Nexus3
七、安装tomcat
tomcat的安装相对简单:
从tomcat官网下tomcat的压缩包
安装
解压文件
tar -zxvf 压缩文件名.tar.gz
修改8080端口为80端口
假设tomcat所在目录为/usr/local/apache-tomcat/
1、打开tomcat配置文件
#vi /usr/local/apache-tomcat/conf/server.xml
2、打开Tomcat配置文件之后按 /8080 快速检索
3、修改端口,按 i 进行,将8080 修改为 80
4、按:wq 保存并退出
5、 重启tomcat
#/var/apache-tomcat/bin/shutdown.sh
#/var/apache-tomcat/bin/startup.sh
八、搭建jenkins自动化持续部署
下载
Jenkins官网下载安装包,https://jenkins.io/download/(根据个人事迹需求下载对应Linux/Windows系统的安装包版本,本文下载的是Jenkins.war包)
启动jenkins项目
执行终端命令将启动Jenkins
- jenkins—基本配置
- 通过启动服务的主机IP+端口号可以打开,这段时间可能会比较慢,Jenkins在不断的加载资源文件
- 加载完成后需要去指定的目录下获取解锁秘钥
- 获取解锁秘钥
- 选择入门安装的方式,Jenkins会自动下载需要的安装包及插件
- 加载完成后需要设置自己的管理员账号/密码
- 进入Jenkins主页
- jenkins—系统配置
- maven插件
发现没有maven项目的选项
- maven插件
安装maven插件
搜索关键字:Maven Integration
- 配置maven,git,jdk
git需要额外安装,直接yum install git就可以了,参考:官网。不喜欢yum的可以用其他方法。
maven不需要额外安装。
- git SSH公钥配置
安装插件:
Maven Integration plugin
Publish Over SSH系统管理->系统设置 ssh server 配置:
如果用的是统一的key或者密码,则配置一次就可以了。
如果每个服务器密码都不一样,需要点击高级按钮,把
复选框 Use password authentication, or use a different key 勾选上就行了。- 创建maven项目
- 新建选择新建一个maven项目,如果没有安装Maven Integration plugin插件,则不会出现该item。
- 源码管理工具
配置为git - 执行shell脚本
- 新建选择新建一个maven项目,如果没有安装Maven Integration plugin插件,则不会出现该item。
#!/bin/sh
# kill tomcat pid
# 这句尤为重要
export BUILD_ID=tomcat_build_id
# 1.关闭tomcat
pidlist=`ps -ef|grep tomcat|grep -v "tomcat_jenkins"|grep -v "grep"|awk '{print $2}'`
function stop(){
if [ "$pidlist" == "" ]; then
echo "----tomcat已经关闭----"
else
echo "tomcat进程号:$pidlist"
kill -9 $pidlist
echo "KILL $pidlist."
fi
}
stop
pidlist2=`ps -ef|grep tomcat|grep -v "tomcat_jenkins"|grep -v "grep"|awk '{print $2}'`
if [ "$pidlist2" == "" ]; then
echo "----关闭tomcat成功----"
else
echo "----关闭tomcat失败----"
fi
# 2.移除原来tomcat中webapps中的项目文件夹
rm -rf /usr/share/tomcat/webapps/ROOT*
# 3.复制jenkins生成的war包到tomcat中webapps中
cp -r /var/lib/jenkins/workspace/maven/target/stream-0.0.1-SNAPSHOT.war /usr/share/tomcat/webapps
sleep 5s
# 4.修改war包的名称
mv /usr/share/tomcat/webapps/stream-0.0.1-SNAPSHOT.war /usr/share/tomcat/webapps/test.war
# 5.启动tomcat
cd /usr/share/tomcat/bin
./startup.sh
d. 打包构建项目
e. 保证构建项目,查看控制台输出信息
- 配置jenkins钩子程序,持续化部署项目
- jenkins中的配置—配置token值
b. gitHub账户中配置
- jenkins中的配置—配置token值