> 文章列表 > gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

文章目录

  • 敏捷持续集成是什么?
  • linux安装jdk和maven
    • 安装jdk
    • 安装maven
  • linux安装nexus3.x
  • nexus私服的使用
  • 编译安装mysql
  • 可能遇到的问题
    • 使用cmake时报错

敏捷持续集成是什么?

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

好处:

  • 节省人力成本
  • 加快软件开发进度
  • 实时交付

整体流程:
成员通过git提交代码–》持续集成引擎来去代码并使用构建工具自动构建–》发布项目

重要组成部分:

  • git
  • gitlab
  • jenkins 持续集成引擎
  • maven 构建工具
  • sonarqube 代码质量管理
  • junit 自动执行单元测试
  • JDK
  • Tomcat

几个war–》微服务架构

linux安装jdk和maven

安装jdk1.8maven3.9.1(当前最新)

安装jdk

下载地址:https://www.oracle.com/java/technologies/downloads/

1、下载后的安装包传输到虚拟机文件夹中
2、解压到/usr/local/目录下:tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/local/
3、修改环境变量:vim /etc/profile,并在最下面填写:

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

4、激活配置:source /etc/profile
5、验证安装成功:java -version
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

安装maven

下载地址:https://maven.apache.org/download.cgi
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
1、下载后的安装包传输到虚拟机文件夹中
2、解压到/usr/local/目录下:tar -zxvf apache-maven-3.9.1-bin.tar.gz -C /usr/local/
3、给解压后的文件改名:mv apache-maven-3.9.1 maven
4、修改环境变量:vim /etc/profile,并在最下面填写:

export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin

5、激活配置:source /etc/profile
6、验证安装成功:mvn -version
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

linux安装nexus3.x

下载地址:https://help.sonatype.com/repomanager3/product-information/download

1、上传到服务器:/root/test/
2、解压:tar -zxvf nexus-3.50.0-01-unix.tar.gz -C /usr/local/
3、修改配置文件
修改对应的端口,确保这个端口是空闲的:vim /usr/local/nexus-3.50.0-01/etc/nexus-default.properties
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

修改防火墙:vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
开放8081端口:firewall-cmd --permanent --add-port=80/tcp --permanent
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

4、进入目录/usr/local/nexus-3.50.0-01/bin,启动nexus:./nexus start
5、访问域名+端口,验证启动成功:
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

6、默认登录名:admin,根据提示查看文件获取密码:/usr/local/sonatype-work/nexus3/admin.password,修改自定义密码
7、配置开机自启动

  • /etc/init.d目录下创建服务脚本nexus:
#!/bin/bash
#chkconfig:2345 20 90
#description:nexus
#processname:nexus
export NEXUS_HOME=/usr/local/nexus-3.50.0-01
case $1 instart) su root $NEXUS_HOME/bin/nexus start;;stop) su root $NEXUS_HOME/bin/nexus stop;;status) su root $NEXUS_HOME/bin/nexus status;;restart) su root $NEXUS_HOME/bin/nexus restart;;dump ) su root $NEXUS_HOME/bin/nexus dump ;;console ) su root $NEXUS_HOME/bin/nexus console ;;*) echo "require console | start | stop | restart | status | dump " ;;
esac
  • 给nexus脚本设置可执行权限:chmod +x /etc/init.d/nexus
  • 添加nexus服务:`chkconfig --add nexus
  • 添加开机自启动:chkconfig nexus on

可以使用此类方式快捷使用服务:service nexus status

nexus私服的使用

仓库类型
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

proxy:代理仓库,用于代理远程仓库
group:仓库组,通常包含了多个代理仓库和宿主仓库,在项目中只要引入仓库组就可以下载到代理仓库和宿主仓库中的包
hosted:宿主仓库,内部项目、付费jar​ releases 发布内部release版本的仓库​ snapshots 发布内部snapshots版本的仓库​ third 自建第三方jar

1、配置仓库代理:http://maven.aliyun.com/nexus/content/groups/public/
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

2、使用本地maven配置验证nexus配置是否成功:

  • 修改maven目录下的conf/setting.xml
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\\SoftWare\\install\\IDEA2020\\apache-maven-3.6.1\\repository</localRepository><pluginGroups/><proxies/><servers><server><id>zyten-releases</id><username>admin</username><password>root</password></server><server><id>zyten-snapshots</id><username>admin</username><password>root</password></server></servers><mirrors/><profiles><profile><id>zyten</id><activation><activeByDefault>false</activeByDefault></activation><!-- 私有库地址--><repositories><repository><id>zyten</id><url>http://10.24.200.10:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><!--插件库地址--><pluginRepositories><pluginRepository><id>zyten</id><url>http://10.24.200.10:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile></profiles><activeProfiles><activeProfile>zyten</activeProfile></activeProfiles>
</settings>
  • 测试是否nexus搭建成功:
    新增:
    gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
    nexus私服验证成功:
    gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysqlgitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

3、本地项目打包发到远程nexus私服:pom添加本地没有的依赖,看nexus会不会代理​ mvn deploy看是否成功推送至nexus

  • pom配置:id值要和setting.xml中对应
<distributionManagement><repository><id>zyten-releases</id><name>Ruizhi Release Repository</name><url>http://10.24.200.10:8081/repository/maven-releases/</url></repository><snapshotRepository><id>zyten-snapshots</id><name>Ruizhi Snapshot Repository</name><url>http://10.24.200.10:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>
  • mvn cleanmvn deploy
    gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
  • 验证成功:
    gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

编译安装mysql

下载地址:https://mirrors.sohu.com/mysql/MySQL-5.7/
下载到root/test/目录下:
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
1、解压:tar -zxvf mysql-5.7.37.tar.gz
2、安装相应的依赖:yum install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake wget
3、下载boost:

mkdir /usr/local/boost
cd /usr/local/boostwget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz --no-check-certificate

4、添加用户并创建相应目录存放数据:

useradd mysql
cd /home/mysql/
mkdir data logs temp​
chown -R mysql:mysql data logs temp

5、进入mysql的解压目录:cd /root/test/mysql-5.7.37/,并执行cmake:

cmake \\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \\
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \\
-DDEFAULT_CHARSET=utf8 \\
-DDEFAULT_COLLATION=utf8_general_ci \\
-DWITH_MYISAM_STORAGE_ENGINE=1 \\
-DWITH_INNOBASE_STORAGE_ENGINE=1 \\
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \\
-DWITH_MEMORY_STORAGE_ENGINE=1 \\
-DWITH_READLINE=1 \\
-DENABLED_LOCAL_INFILE=1 \\
-DMYSQL_DATADIR=/home/mysql/data \\
-DMYSQL_USER=mysql \\
-DMYSQL_TCP_PORT=3306 \\
-DWITH_BOOST=/usr/local/boost

6、使用make进行编译​,使用make install进行安装
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

7、修改mysql安装目录权限:chown -R mysql:mysql /usr/local/mysql
8、配置权限vi /etc/profile,添加mysql目录export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH,配置生效source /etc/profile
9、初始化mysql:mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data,产生密码[kkgTgwx-+4st]
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

10、删除/etc下的my.cnf:rm /etc/my.cnf
11、复制服务启动脚本:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
12、启动 MySQL 服务:service mysql start
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

13、设置mysql服务开机自启动:chkconfig mysql on
14、登陆mysql并设置可远程登陆:mysql -u root -p
粘贴初始化时产生的临时密码[kkgTgwx-+4st]
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'zyten' WITH GRANT OPTION;
此时不让改,提示要先设置下密码​:SET PASSWORD = PASSWORD('zyten');​
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;​
flush privileges;​
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

exit;
​ 重新登陆,使用刚刚设置的密码​mysql -u root -p登陆完成之后,即可设置允许远程登陆​:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'zyten' WITH GRANT OPTION;
gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

15、进入文件vim /etc/sysconfig/iptables,加入-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT,重启防火墙服务service iptables restart开启防火墙端口
16、使用连接工具测试远程连接,验证成功:gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

可能遇到的问题

使用cmake时报错

cmake编译会有缓存,每次编译前要清下缓存:rm CMakeCache.txt