# 说明
本章为devops环境的快速绿色安装教程
涉及的安装介质为:
DevOps_6.5GA_Installer.tar.gz
DevOps_6.5GA_Extension_Installer.tar.gz
# Java环境配置
说明: 安装包中不提供jdk,请安装服务需要对应jdk时,自行下载安装j对应jdk版本
# 1.解压jdk-*_linux-x64_bin.tar.gz文件到目录
以jdk1.8为例
# tar -zxvf jdk-8-linux-x64.tar.gz
# 2.修改/etc/profile文件
# vi /etc/profile
//添加如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_261(您的 JDK 存放路径)
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 3.重新加载/etc/profile配置
# source /etc/profile
# 4.java版本测试
# java -version
//出现如下内容说明验证成功
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
# 5.依赖关系
基于jdk1.8运行的服务如下:
devops6.5
nexus3.16
基于jdk11运行的服务如下:
jenkins2.361
基于jdk17运行的服务如下:
sonarqube9.9
dependencytrack4.7.1
其他说明:
jenkins流水线通常使用jdk1.8进行应用启动等操作,当需要执行相关操作时需要在Configure System>Global properties>Environment variables中配置jdk1.8目录。
# Devops安装手册
说明:安装包中不提供jdk和mysql,为了安装顺利,请自行下载安装jdk1.8和mysql5.7。
# 自动化部署devops步骤
# 1.解压DevOps_6.5GA_Installer.tar.gz
# tar -zxvf DevOps_6.5GA_Installer.tar.gz -C 指定目录
解压后的devops_install目录包含文件如下
为了便于离线环境演示构建部署流程,新建了sampleProjectCode目录,存放了demowar和demojar源码压缩包,可自行解压使用。
# 2.通过conf.ini配置文件更改devops配置
# vi conf.ini
修改devops服务端口和依赖的jdk1.8安装的根目录
修改devops运行环境mysql数据库配置
端口为空时会默认使用8787端口
# 3.进入到安装目录下的1-devops-6.5目录
# cd 1-devops-6.5
1-devops-6.5目录包含文件如下
# 4.执行数据初始化脚本
执行db_init.sh,自动初始化devops数据库
启动前请保证环境中安装了mysql且将mysql配置到了系统环境变量中!
# sh 执行db_init.sh
启动脚本流程如下
从conf.ini获取mysql配置信息
根据配置信息连接mysql服务
当存在对应数据库时,判断数据是否已经初始化过了
判断条件为是否存在sysadmin系统管理员用户
当不存在数据库或数据没有初始化时,执行数据库脚本
mysql数据库sql脚本目录为:
devops根目录下db-scripts/mysql/
包括结构文件,数据文件和结构和数据文件。
初始化完毕后更新devops数据库连接文件
数据库连接文件位置:devops根目录下1-devops-6.5/WEB-INF/_srv/config/user-config.xml文件
---
<configValue key="C3p0-Url">${db.url}</configValue>
<configValue key="C3p0-UserName">${db.userName}</configValue>
<configValue key="C3p0-Password">${db.password}</configValue>
---
可自行更改该文件修改数据库连接配置!
非本机mysql数据库或其他类型数据库初始化时可以自行获取初始化脚本执行,目录位置devops根目录下db-scripts
初始化sql目录如下
可自行初始化数据库后更改devops根目录下1-devops-6.5/WEB-INF/_srv/config/user-config.xml文件以连接对应数据库
00-devops-ddl-all.sql:数据库表结构脚本
01-devops-data-all.sql:数据库数据脚本
devops-all.sql:数据库表结构和数据全量脚本
数据库连接依赖c3p0和mysql5的驱动,可通过下列链接下载。
c3p0-0.9.0.jar
mysql-connector-java-5.1.40.jar
连接其他数据库时请自行下载依赖文件放置devops根目录下/WEB-INF/lib/中
# 5.执行启动脚本
执行startDevOps.sh,自动化启动nexus服务
# sh startDevOps.sh
启动脚本流程如下
获取脚本所在目录
baseHome=$(cd `dirname $0`; pwd)
cd $baseHome
获取安装包根目录
cd ..
confHome=`pwd`
获取端口配置文件
baseConf=$confHome/conf.ini
读取devops启动端口,默认为8787
如果devops安装包根目录存在primetonlicense.xml文件,则自动更新替换license文件
目标license文件位置为devops安装包根目录下WEB-INF/_srv/primetonlicense.xml
可自行修改该文件更新权限文件
获取启动jdk位置
java8home=$(readINI $baseConf jdk jdk8_home)
判断端口是否被占用
启动服务
nohup ${java8home}/bin/java -Xms512m -Xmx4096m -DhttpPort=$devopsPort -DminThreads=50 -DmaxThreads=500 -DLocalHostPort= -jar $baseHome/devops-bootstrap.jar >$baseHome/nohup.out &
启动详情日志查看devops根目录下nohup.out 文件
# 6.Devops服务验证
根据devops所在主机ip:8787访问devops服务
默认用户:sysadmin;
默认密码:000000;
进入主界面则安装成功;
# 7.停止devops
执行stopDevOps.sh,自动化关闭devops服务
# sh stopDevOps.sh
关闭脚本流程如下
判断服务是否已经关闭
未关闭的话执行关闭命令
ps -ef | grep httpPort=$devopsPort | grep -v grep | awk '{print $2}' | xargs kill -9
# readme说明
运维脚本包括:
devops服务启动脚本:startDevOps.sh
devops服务关闭脚本:stopDevOps.sh
devops默认数据库devops初始化脚本:db_init.sh
devops初始化数据库脚本:db-scripts/
数据库初始化脚本
devops运行基于数据库,本安装包不携带mysql安装包,请自行安装并且将mysqlbin目录加入环境变量中!
如果通过mysql数据库启动可配置conf.ini中mysql数据库信息
db_init.sh启动自行读取并初始化数据库,已经初始化过数据将不在更新,会同步更新devops数据库配置文件信息。
数据库连接文件位置:devops根目录下1-devops-6.5/WEB-INF/_srv/config/user-config.xml文件
-------
<configValue key="C3p0-Url">${db.url}</configValue>
<configValue key="C3p0-UserName">${db.userName}</configValue>
<configValue key="C3p0-Password">${db.password}</configValue>
-------
数据初始化sql目录:db-scripts/
非mysql类型数据库初始化脚本可以选择对应数据库类型,选择对应devops-all.sql即可
说明
devops启动依赖jdk1.8,启动时会自动读取读取conf.ini中jdk8_home作为启动所需jdk根目录,请提前配置!!!
将primetonlicense.xml文件置于devops根目录,启动时会自行更新license文件
可以通过修改全局配置文件conf.ini修改服务端口,修改时请保证服务关闭,重新启动服务,新端口生效
devops服务启动脚本内容包括:
从devops根目录获取primetonlicense.xml文件更新授权文件。
从全局配置文件conf.ini读取devops端口,若没有配置则默认端口为8787。
启动devops服务,若端口被占用,则中止启动操作。
启动日志文件nohup.out在devops根目录中。
devops服务关闭脚本内容包括:
从全局配置文件conf.ini读取devops端口,若没有配置则默认端口为8787。
关闭devops服务,若端口没有被占用,则判定已被关闭,中止关闭操作。
通过sh 加脚本名称执行脚本。
默认用户凭证:
- username:sysadmin
- password:000000
# Jenkins安装手册
说明: 安装包中不提供jdk,为了安装顺利,请自行下载安装jdk11和jdk1.8。
# 自动化部署Jenkins步骤
# 1.解压DevOps_6.5GA_Installer.tar.gz
# tar -zxvf DevOps_6.5GA_Installer.tar.gz -C 指定目录
解压后的devops_install目录包含文件如下
# 2.通过conf.ini配置文件更改Jenkins端口
# vi conf.ini
修改Jenkins服务端口和依赖的jdk11和jdk1.8安装的根目录
端口为空时会默认使用8686端口
# 3.执行启动脚本
执行startup.sh,自动化启动jenkins服务
# cd 2-jenkins-2.361
# sh startup.sh
启动脚本流程如下
获取脚本所在目录
baseHome=$(cd `dirname $0`; pwd)
cd $baseHome
获取安装包根目录
cd ..
confHome=`pwd`
获取端口配置文件
baseConf=$confHome/conf.ini
读取jenkins启动端口,默认为8686
从conf.ini中读取配置jdk11_home根目录环境运行jdk
java11home=$(readINI $baseConf jdk jdk11_home)
从conf.ini中读取配置jdk8_home根目录
java8home=$(readINI $baseConf jdk jdk8_home)
读取本机ip
localIp=`hostname -I`
更新工具路径到相对安装目录下
sed -i "s|<string>.*/jdk</string>|<string>$java8home</string>|" $baseHome/work/config.xml
sed -i "s|<string>.*/apache-maven-3.3.9</string>|<string>$baseHome/apache-maven-3.3.9</string>|" $baseHome/work/config.xml
sed -i "s|<string>.*/apache-maven-3.3.9/bin</string>|<string>$baseHome/apache-maven-3.3.9/bin</string>|" $baseHome/work/config.xml
sed -i "s|<string>.*/sonar-scanner-4.0.0.1744-linux</string>|<string>$baseHome/sonar-scanner-4.0.0.1744-linux</string>|" $baseHome/work/config.xml
sed -i "s|<home>.*/sonar-scanner-4.0.0.1744-linux</home>|<home>$baseHome/sonar-scanner-4.0.0.1744-linux</home>|" $baseHome/work/hudson.plugins.sonar.SonarRunnerInstallation.xml
sed -i "s|<jenkinsUrl>.*</jenkinsUrl>|<jenkinsUrl>http://$localIp:$jenkinsPort/</jenkinsUrl>|" $baseHome/work/jenkins.model.JenkinsLocationConfiguration.xml
sed -i "s|<localRepository>.*</localRepository>|<localRepository>$baseHome/maven-data/</localRepository>|" $baseHome/apache-maven-3.3.9/conf/settings.xml
判断端口是否被占用
设置工作目录
# workspace
JENKINS_WORK=${baseHome}/work
设置运行内存
# minMemSize & maxMemSize
minMemSize=2048
maxMemSize=2048
静默启动服务
JAVA_OPTS="${JAVA_OPTS} -Dfile.encoding=utf-8 -Xmx${maxMemSize}m -Xms${minMemSize}m -DJENKINS_HOME=${JENKINS_WORK} -Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true -Dorg.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval.ADMIN_AUTO_APPROVAL_ENABLED=true"
nohup ${java11home}/bin/java ${JAVA_OPTS} -jar ${baseHome}/jenkins.war --httpPort=${jenkinsPort} >$baseHome/nohup.out &
启动详情日志查看jenkins根目录下nohup.out 文件
# 4.jenkins服务验证
根据主机ip:8686访问jenkins服务
默认用户:sysadmin; 默认密码:Sysadmin000;
*进入服务后需要自行修改Jenkins URL
Configure System
Jenkins Location
Jenkins URL
http://jenkins所在主机ip:端口/
# 5.停止jenkins
执行关闭脚本
# sh shutdown.sh
关闭脚本流程如下
判断服务是否已经关闭
未关闭的话执行关闭命令
ps -ef |grep jenkins |grep -v grep |awk '{print $2}' |xargs kill -9
# readme说明
运维脚本包括:
startup.sh:启动脚本
shutdown.sh:关闭脚本
应用默认端口为8686
**每次服务停止后可以通过修改conf.ini中的端口更新服务端口,重新执行startup.sh后生效。一定要保证更改配置时服务已经被停止!**
***
jenkins运行依赖fontconfig等根据,如果启动服务后,登录界面出现如下报错,则定位到jenkins根目录下jenkins-dependency目录,运行yum localinstall fontconfig/*.rpm,离线安装fontconfig依赖
-------------
AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://www.jenkins.io/redirect/troubleshooting/java.awt.headless
------------
根据需要自行"yum localinstall", jenkins-dependency目录中的git和ansible的离线rpm包
***
说明
启动脚本内容包括:
jenkins启动依赖jdk11,启动时会自动读取读取conf.ini中jdk11_home作为启动所需jdk根目录,请提前配置!!!
根据安装路径更新global config
jenkins安装工具包括jdk8,会自动读取读取conf.ini中jdk8_home作为全局jdk8工具根目录,请提前配置!!!
启动jenkins服务。
检测到端口运行中,则中止脚本,自行检查端口。
关闭脚本内容包括:
关闭jenkins服务
检测到端口未被占用时,则认为服务已关闭,则不再重复关闭。
默认用户凭证:
- username:sysadmin
- password:Sysadmin000
# jenkins配置说明
jenkins启动脚本配置
# jenkins根目录下start.sh
port=8080 //启动端口
minMemSize=2048 //最小运行内存
maxMemSize=2048 //最大运行内存
//最新版Jenkins需要在JAVA_OPTS最后增加参数来关闭跨站点访问
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
config.xml配置 其中/opt/idc/apps/jenkins为jenkins所在目录,此处为全局jenkins节点环境变量属性初始配置
# vi /opt/idc/apps/jenkins/work/config.xml
<globalNodeProperties>
<hudson.slaves.EnvironmentVariablesNodeProperty>
<envVars serialization="custom">
<unserializable-parents/>
<tree-map>
<default>
<comparator class="hudson.util.CaseInsensitiveComparator"/>
</default>
<int>8</int>
<string>CLASSPATH</string>
<string>.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib</string>
<string>JAVA_HOME</string>
<string>/opt/idc/apps/jenkins/jdk</string>
<string>JRE_HOME</string>
<string>/opt/idc/apps/jenkins/jdk/jre</string>
<string>MAVEN_3_2_5_HOME</string>
<string>/opt/idc/apps/jenkins/apache-maven-3.2.5</string>
<string>MAVEN_3_3_9_HOME</string>
<string>/opt/idc/apps/jenkins/apache-maven-3.3.9</string>
<string>NODE_HOME</string>
<string>/opt/idc/apps/jenkins/node-v6.10.2-linux-x64/bin</string>
<string>PATH+EXTRA</string>
<string>/opt/idc/apps/jenkins/apache-maven-3.3.9/bin:/opt/idc/apps/jenkins/node-v6.10.2-linux-x64/bin:/opt/idc/apps/jenkins/apache-ant-1.10.1/bin:/opt/idc/apps/jenkins/gradle-4.0.1/bin:/opt/idc/apps/jenkins/apache-jmeter-4.0/bin:/opt/idc/apps/jenkins/openshift-v3.11.0-linux-x64</string>
<string>SONAR_SCANNER_HOME</string>
<string>/opt/idc/apps/jenkins/sonar-scanner-2.8</string>
</tree-map>
</envVars>
</hudson.slaves.EnvironmentVariablesNodeProperty>
</globalNodeProperties>
# 其他
按需要自行安装ansible和git等
# Nexus安装手册
说明: 安装包中不提供jdk,为了安装顺利,请自行下载安装jdk1.8。
# 自动化部署nexus步骤
# 1.解压DevOps_6.5GA_Installer.tar.gz
# tar -zxvf DevOps_6.5GA_Installer.tar.gz -C 指定目录
解压后的devops_install目录包含文件如下
# 2.通过conf.ini配置文件更改nexus端口
# vi conf.ini
修改nexus服务端口和依赖的jdk1.8安装的根目录
端口为空时会默认使用8081端口
# 3.进入到安装目录下的3-nexus-3.16.0目录
# cd 3-nexus-3.16.0
3-nexus-3.16.0目录包含文件如下
# 4.启动脚本
执行startup.sh,自动化启动nexus服务
# sh startup.sh
启动脚本流程如下
获取脚本所在目录
baseHome=$(cd `dirname $0`; pwd)
cd $baseHome
获取安装包根目录
cd ..
confHome=`pwd`
获取端口配置文件
baseConf=$confHome/conf.ini
读取nexus启动端口,默认为8081
更新端口配置文件
nexusCnf=$baseHome/etc/nexus-default.properties
sed -i "s/^application-port=.*/application-port=$nexusPort/" $nexusCnf
更新启动jvm
java8home=$(readINI $baseConf jdk jdk8_home)
更新启动脚本
sed -i "s|# INSTALL4J_JAVA_HOME_OVERRIDE=.*|INSTALL4J_JAVA_HOME_OVERRIDE=$java8home|" $baseHome/bin/nexus
判断端口是否被占用
启动服务
$baseHome/bin/nexus start
启动详情日志查看nexus根目录下/sonatype-work/nexus3/log/nexus.log 文件
# 5.Nexus服务验证
根据nexus所在主机ip:8081访问nexus服务
默认用户:admin;
默认密码:admin123;
# 6.停止nexus
执行shutdown.sh,自动化关闭nexus服务
# sh shutdown.sh
关闭脚本流程如下
判断服务是否已经关闭
未关闭的话执行关闭命令
$baseHome/bin/nexus stop
# readme说明
运维脚本包括:
startup.sh:启动脚本
shutdown.sh:关闭脚本
应用默认端口为8081
每次服务停止后可以通过修改conf.ini中的端口更新服务端口,重新执行startup.sh后生效。一定要保证更改配置时服务已经被停止!
nexus通过安装目录下的jdk1.8启动
说明
启动脚本内容包括:
启动nexus服务。
检测到端口运行中,则中止脚本,自行检查端口。
关闭脚本内容包括:
关闭nexus服务
检测到端口未被占用时,则认为服务已关闭,则不再重复关闭。
默认用户凭证:
- username:admin
- password:admin123
# DependencyTrack安装手册
说明:安装包中不提供jdk,为了安装顺利,请自行下载安装jdk17。
# 自动部署dependencytrack服务步骤:
# 1.解压DevOps_6.5GA_Extension_Installer.tar.gz
# tar -zxvf DevOps_6.5GA_Extension_Installer.tar.gz -C 指定目录
解压后的devops_install_extension目录包含文件如下
# 2.通过conf.ini配置文件更改dependencytrack配置
# vi conf.ini
修改dependencytrack服务端口和依赖的jdk17安装的根目录
修改dependencytrack运行环境pgsql数据库配置,使用安装包中pgsql作为pgsql数据库环境时,请将Ip设为127.0.0.1
dependencytrack服务端口为空时会默认使用18090端口
# 3.pgsql数据库服务环境准备
运行pgsql服务,进入1-pgsql-15.2 目录执行startup.sh脚本 等待服务启动
启动详情日志查看pgsql根目录下nohup.out文件
关闭服务执行shutdown.sh
# cd 1-pgsql-15.2
# sh startup.sh
运维脚本包括:
init.sh::初始化环境脚本
startup.sh:启动脚本
shutdown.sh:关闭脚本
uninstall.sh:卸载脚本
**每次服务停止后可以通过修改conf.ini中的端口更新服务端口,重新执行startup.sh后生效。一定要保证更改配置时服务已经被停止!**
默认账户
用户:postgres
密码:Primeton4pgsql
说明:
初始化脚本内容包括:
根据系统是否存在postgres用户判定项目是否初始化过,存在用户则不再初始化。
从全局配置文件conf.ini获取pgsql端口,没有配置会设置为5432默认端口,Primeton4pgsql默认密码,默认用户为postgres。
创建postgres用户和用户组
注册pgsql服务到全局
启动pgsql服务
*初始化脚本仅执行一次
启动脚本内容包括:
启动pgsql服务,若系统没有创建过postgres用户,则判断项目还未初始化,执行初始化脚本内容。
检测到端口被占用时,会中止启动流程,请检查是否已经启动。
关闭脚本内容包括:
关闭pgsql服务
检测到端口未被占用时,则认为服务已关闭,则不再重复关闭。
*非相关专业人员 请勿执行该脚本!该操作将会导致数据删除!!!*
卸载环境脚本内容包括:
关闭pgsql服务,若已关闭则不再关闭。
卸载pgsql整个目录文件。
删除初始化过程中配置的启动文件,软链接。
删除pgsql用户和用户组。
# 4.初始化dependencytrack数据库和更新数据库连接配置
进入dependencytrack目录 执行db_init.sh
# cd 3-dependencytrack-4.7.1
# sh db_init.sh
数据库初始化脚本内容包括:
获取conf.ini中配置的dependencytrack运行所需的pgsql环境配置
如果pgsqlip为127.0.0.1则判断为本机,创建配置对应数据库
更改dependencytrack根目录下/application.properties配置文件中的数据库连接位置。
# 5.启动dependencytrack服务
执行startup.sh启动服务 启动详情日志查看dependencytrack根目录下nohup.out文件
# cd 3-dependencytrack-4.7.1
# sh startup.sh
启动脚本流程如下
获取脚本所在目录
baseHome=$(cd `dirname $0`; pwd)
cd $baseHome
获取安装包根目录
cd ..
confHome=`pwd`
获取端口配置文件
baseConf=$confHome/conf.ini
读取dependencytrack启动端口,默认为18090
获取启动jdk17位置
java17home=$(readINI $baseConf jdk jdk17_home)
设置配置文件位置
# application.properties
properties_dir=${baseHome}/application.properties
设置内存占用
# memory
#min_mem_size=5G
max_mem_size=16G
# java options
JAVA_OPTS="-Xmx${max_mem_size} -Dalpine.application.properties=${properties_dir}"
判断端口是否被占用
执行启动命令
nohup ${jdk17home}/bin/java -Xmx${max_mem_size} -Dalpine.application.properties=${baseHome}/application.properties -jar ${baseHome}/dependency-track-bundled.jar -port ${dependencytrackPort} >$baseHome/nohup.out &
启动成功后登录ip:18090查看服务
# 6.服务验证
登录DependencyTrack客户端 ip:18090
默认用户凭证: username:admin; password:admin;
初次登录修改账户密码
更新BaseUrl和团队apikey的权限范围
# 7.停止dependencytrack服务
执行shutdown.sh,自动关闭dependencytrack服务
# sh shutdown.sh
关闭脚本流程如下
判断服务是否已经关闭
未关闭的话执行关闭命令
ps -ef | grep dependency-track-bundled | grep -v grep | awk '{print $2}' | xargs kill -9
# readme说明
运维脚本包括:
startup.sh:启动脚本
shutdown.sh:关闭脚本
db_init.sh:数据库初始化脚本
默认用户凭证:
- username:admin
- password:admin
首次登陆时,admin账户需要修改密码。
应用默认端口为18090
**每次服务停止后可以通过修改conf.ini中的端口更新服务端口,重新执行startup.sh后生效。一定要保证更改配置时服务已经被停止!**
启动dependencytrack前请保证在conf.ini中已经为dependencytrack配置了pgsql数据库连接信息
db_init.sh启动自行读取并初始化数据库,如果端口为127.0.0.1则会为本机pgsql服务初始化数据库,非本机pgssql则不会,会同步更新dependencytrack数据库配置文件application.properties信息。
数据库连接文件位置:dependencytrack根目录下application.properties文件
-------
alpine.database.url=jdbc:postgresql://127.0.0.1:5432/dptrack
alpine.database.username=postgres
alpine.database.password=Primeton4pgsql
-------
说明
启动脚本内容包括:
启动pgsql服务。
检测到端口运行中,则中止脚本,自行检查端口。
关闭脚本内容包括:
关闭pgsql服务
检测到端口未被占用时,则认为服务已关闭,则不再重复关闭。
数据库初始化脚本内容包括:
默认读取安装包中的pgsql配置信息更新数据库连接信息,
在本机pgsql创建dtrack数据库
更改dependencytrack根目录下/application.properties配置文件中的数据库连接位置。
pgsql默认ip为当前主机ip,默认端口5432,默认用户postgres,默认密码Primeton4pgsql,默认数据库dtrack。
安装包目录结构:
data:数据存储目录
application.properties:Dependency-Track应用配置文件
dependency-track-bundled.jar:Dependency-Track前后端合并的部署包
java:Dependency-Track依赖的java环境,版本为openjdk-17.0.5
应用默认端口为18090(可配置脚本内容中的port变量以修改应用启动端口)
最低配置:
Java 17 (or higher)
4GB RAM
2 CPU
推荐配置:
Java 17 (or higher)
16GB RAM
4 CPU cores
特别注意!!!
1、Dependency-Track 需在联网环境下才能正常使用,使用前需确保部署机能访问公网,或者通过配置代理的方式访问公网;
2、在初始化启动 Dependency-Track 应用时,需确保数据存储目录存在且为空目录。
application.properties 为 Dependency-Track 应用服务的配置文件。
此配置文件除了可自定义配置数据存储目录、外部数据库源、目录服务(LDAP)和代理之外,还能控制许多性能调整参数。
1、配置外部数据库源(数据库建议用 版本>=9.0 的 PostgreSQL,使用 MySQL 可能会造成 Specified key was too long 的问题):
# alpine.database.mode=external
# alpine.database.url=jdbc:postgresql://localhost:5432/dtrack
# alpine.database.driver=org.postgresql.Driver
# alpine.database.username=******
# alpine.database.password=******
2、配置数据存储目录:
# alpine.data.directory=./apiserver/data
3、配置网络代理:
# alpine.http.proxy.address=proxy.example.com
# alpine.http.proxy.port=8888
# alpine.http.proxy.username=
# alpine.http.proxy.password=
# alpine.no.proxy=localhost,127.0.0.1
首次启动 Dependency Track 时,会发生多项任务,包括:
1、生成默认对象,例如用户,团队和权限。
2、生成用于 JWT 令牌创建和验证的密钥。
3、填充 CWE 和 SPDX 许可证数据。
4、从公网漏洞库下载数据源并初始化受支持的漏洞数据源。
5、初始化数据时可能需要 10 到 30 分钟或更长时间。请不要中断该过程。在关闭系统之前,请等待所有镜像任务的完成。可以通过查看 “nohup.out” 来监视这些任务。
# 环境说明
最低配置:
Java 17 (or higher)
4GB RAM
2 CPU
推荐配置:
Java 17 (or higher)
16GB RAM
4 CPU cores
# SonarQube安装手册
说明:安装包中不提供jdk,为了安装顺利,请自行下载安装jdk17。
# 自动部署sonarqube服务步骤:
# 1.解压DevOps_6.5GA_Extension_Installer.tar.gz
# tar -zxvf DevOps_6.5GA_Extension_Installer.tar.gz -C 指定目录
解压后的devops_install_extension目录包含文件如下
# 2.通过conf.ini配置文件更改sonarqube配置
# vi conf.ini
修改sonarqube服务端口和依赖的jdk17安装的根目录
修改sonarqube运行环境pgsql数据库配置,使用安装包中pgsql作为pgsql数据库环境时,请将Ip设为127.0.0.1
sonarqube服务端口为空时会默认使用9999端口
# 3.pgsql数据库服务环境准备
运行pgsql服务,进入1-pgsql-15.2 目录执行startup.sh脚本 等待服务启动
启动详情日志查看pgsql根目录下nohup.out文件
关闭服务执行shutdown.sh
# cd 1-pgsql-15.2
# sh startup.sh
运维脚本包括:
init.sh::初始化环境脚本
startup.sh:启动脚本
shutdown.sh:关闭脚本
uninstall.sh:卸载脚本
**每次服务停止后可以通过修改conf.ini中的端口更新服务端口,重新执行startup.sh后生效。一定要保证更改配置时服务已经被停止!**
默认账户
用户:postgres
密码:Primeton4pgsql
说明:
初始化脚本内容包括:
根据系统是否存在postgres用户判定项目是否初始化过,存在用户则不再初始化。
从全局配置文件conf.ini获取pgsql端口,没有配置会设置为5432默认端口,Primeton4pgsql默认密码,默认用户为postgres。
创建postgres用户和用户组
注册pgsql服务到全局
启动pgsql服务
*初始化脚本仅执行一次
启动脚本内容包括:
启动pgsql服务,若系统没有创建过postgres用户,则判断项目还未初始化,执行初始化脚本内容。
检测到端口被占用时,会中止启动流程,请检查是否已经启动。
关闭脚本内容包括:
关闭pgsql服务
检测到端口未被占用时,则认为服务已关闭,则不再重复关闭。
*非相关专业人员 请勿执行该脚本!该操作将会导致数据删除!!!*
卸载环境脚本内容包括:
关闭pgsql服务,若已关闭则不再关闭。
卸载pgsql整个目录文件。
删除初始化过程中配置的启动文件,软链接。
删除pgsql用户和用户组。
# 4.初始化sonarqube数据库和更新数据库连接配置
进入sonarqube目录 执行db_init.sh
# cd 2-sonarqube-9.9/
# sh db_init.sh
数据库初始化脚本内容包括:
获取conf.ini中配置的sonarqube运行所需的pgsql环境配置
如果pgsqlip为127.0.0.1则判断为本机,创建配置对应数据库
更新sonarqube根目录下/conf/sonar.properties文件
数据库连接文件位置:sonarqube根目录下/conf/sonar.properties文件
更新内容参考如下
-------
sonar.jdbc.username=postgres
sonar.jdbc.password=Primeton4pgsql
sonar.jdbc.url=jdbc:postgresql://127.0.0.1:5432/sonardb
-------
sonarqube目录文件列表
# 5.启动sonarqube服务
进入sonarqube目录 执行startup.sh
# cd 2-sonarqube-9.9/
# sh startup.sh
启动脚本内容流程说明如下
获取脚本所在目录
baseHome=$(cd `dirname $0`; pwd)
cd $baseHome
获取安装包根目录
cd ..
confHome=`pwd`
获取端口配置文件
baseConf=$confHome/conf.ini
读取sonarqube启动端口,默认为9999
判断sonar用户是否创建
没创建的话创建sonarqube运行用户和组
groupadd sonar
useradd sonar -g sonar
chown -R sonar:sonar /home/sonar && chown -R sonar:sonar $baseHome
更新系统配置
echo sonar soft nofile 65536 >> /etc/security/limits.conf
echo sonar hard nofile 65536 >> /etc/security/limits.conf
echo vm.max_map_count = 262144 >> /etc/sysctl.conf
sysctl -p
更新启动配置
localIp=`hostname -I`
sed -i "s/^sonar.web.host=.*/sonar.web.host=$localIp/" $baseHome/conf/sonar.properties
sed -i "s/^sonar.web.port=.*/sonar.web.port=$sonarqubePort/" $baseHome/conf/sonar.properties
从conf.ini中读取jdk17_home根目录
jdk17home=$(readINI $baseConf jdk jdk17_home)
jdk17JavaPath=$jdk17home/bin/java
sed -i "s!^SONAR_JAVA_PATH=.*!SONAR_JAVA_PATH=$jdk17JavaPath!" $baseHome/bin/linux-x86-64/sonar.sh
判断端口是否占用
执行启动命令
su sonar -c "$baseHome/bin/linux-x86-64/sonar.sh start"
# 6.sonarqube服务验证
根据sonarqube所在主机ip:9999访问nexus服务
默认账户:admin; 默认密码:admin;
# 7.停止sonarqube服务
执行shutdown.sh,自动关闭sonarqube服务
# sh shutdown.sh
关闭脚本流程如下
判断服务是否已经关闭
未关闭的话执行关闭命令
su sonar -c "$baseHome/bin/linux-x86-64/sonar.sh stop"
# readme说明
运维脚本包括:
startup.sh:启动脚本
shutdown.sh:关闭脚本
db_init.sh:数据库初始化脚本
应用默认端口为9999
**每次服务停止后可以通过修改conf.ini中的端口更新服务端口,重新执行startup.sh后生效。一定要保证更改配置时服务已经被停止!**
启动sonarqube前请保证在conf.ini中已经为sonarqube配置了pgsql数据库连接信息
db_init.sh启动自行读取并初始化数据库,如果端口为127.0.0.1则会为本机pgsql服务初始化数据库,非本机pgssql则不会,会同步更新sonarqube数据库配置文件sonar.properties信息。
数据库连接文件位置:sonarqube根目录下/conf/sonar.properties文件
-------
sonar.jdbc.username=postgres
sonar.jdbc.password=Primeton4pgsql
sonar.jdbc.url=jdbc:postgresql://127.0.0.1:5432/sonardb
-------
***
第一次启动sonarqube服务前请先执行db_init.sh为sonarqube创建一个sonardb数据库
若已拥有数据库可不执行db_init.sh,自行修改sonarqube根目录下/conf/sonar.properties配置文件中的数据库连接位置。
***
***
第一次启动的时候新建了sonar用户以及更改了系统配置,卸载时请注意如下改动
echo sonar soft nofile 65536 >> /etc/security/limits.conf
echo sonar hard nofile 65536 >> /etc/security/limits.conf
echo vm.max_map_count = 262144 >> /etc/sysctl.conf
***
说明
启动脚本内容包括:
新建sonar用户并且更新环境信息,已存在则不重复创建。
默认读取安装包中的pgsql配置信息更新数据库连接信息,
pgsql默认ip为当前主机ip,默认端口5432,默认用户postgres,默认密码Primeton4pgsql,默认数据库sonardb。
启动sonar服务。
检测到端口运行中,则中止脚本,自行检查端口。
关闭脚本内容包括:
关闭sonar服务
检测到端口未被占用时,则认为服务已关闭,则不再重复关闭。
数据库初始化脚本内容包括:
在本机pgsql创建sonardb数据库
更改sonarqube根目录下/conf/sonar.properties配置文件中的数据库连接位置。
默认用户凭证:
- username:admin
- password:admin
首次登陆需要更新密码。