# 将 SELinux 设置为宽容模式
sudo setenforce Permissive
sudo vim /etc/selinux/config
SELINUX=permissive
# 关闭系统防火墙服务
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
# 安装 OpenJDK 软件包
sudo yum -y install java-11-openjdk-devel
# 安装 PostgreSQL 10 服务
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql10-server
# 自定义 PostgreSQL 10 服务数据目录
sudo mkdir -p /opt/var/lib/pgsql/10/data/
sudo mkdir /opt/var/lib/pgsql/10/backups/
sudo chown -R postgres:postgres /opt/var/lib/pgsql/
sudo chmod -R g-rx,o-rx /opt/var/lib/pgsql/
# 该命令会调用 Vim 创建名为 "override.conf" 的空文件,不需要输入任何内容,直接退出即可。
sudo systemctl edit postgresql-10.service
sudo cp /usr/lib/systemd/system/postgresql-10.service /etc/systemd/system/postgresql-10.service.d/override.conf
# 该命令会调用 Vim 编辑 "/etc/systemd/system/postgresql-10.service.d/override.conf" 文件。
sudo systemctl edit postgresql-10.service
# 请将 "Environment=PGDATA=/var/lib/pgsql/10/data/" 修改为 "Environment=PGDATA=/opt/var/lib/pgsql/10/data/"
# 并在 "ExecStart=/usr/pgsql-10/bin/postmaster -D ${PGDATA}" 行的上面添加一行,内容为 "ExecStart="
sudo su - postgres -c '/usr/pgsql-10/bin/initdb -A md5 -D /opt/var/lib/pgsql/10/data -W'
# 此处会提示为 "postgres" 角色设置新的超级用户口令。建议设置一个安全的口令,并记住它,因为后面还会用到。
# 修改 PostgreSQL 10 服务配置文件的 "max_connections" 参数的值
sudo vim /opt/var/lib/pgsql/10/data/postgresql.conf
max_connections = 512
sudo systemctl enable postgresql-10.service
sudo systemctl start postgresql-10.service
psql -U postgres
# 创建名为 "dtrack" 的角色,并为其设置一个安全的密码。
# 创建属于 "dtrack" 角色的同名数据库。
CREATE ROLE dtrack LOGIN PASSWORD '********';
CREATE DATABASE dtrack OWNER dtrack;
# 退出 psql
\q
# 创建并转到 Dependency-Track 安装目录
sudo mkdir /opt/dependency-track/
cd /opt/dependency-track/
# 下载 Dependency-Track 和 PostgreSQL JDBC 驱动程序
sudo wget https://github.com/DependencyTrack/dependency-track/releases/download/4.4.2/dependency-track-bundled.jar
sudo wget https://jdbc.postgresql.org/download/postgresql-42.3.3.jar
# 上传 "application.properties" 默认配置文件。
# 可以提前下载并解压缩 dependency-track-bundled.jar 文件,然后在 "WEB-INF/classes/" 目录下找到该 "application.properties" 文件。
sudo rz application.properties
# 编辑 "application.properties" 配置文件,修改以下配置项目,注意 "alpine.database.password" 配置项的值要填你自己设置的值。
sudo vim application.properties
alpine.data.directory=/opt/dependency-track/data
alpine.database.mode=external
alpine.database.url=jdbc:postgresql://localhost:5432/dtrack
alpine.database.driver=org.postgresql.Driver
alpine.database.driver.path=/opt/dependency-track/postgresql-42.3.3.jar
alpine.database.username=dtrack
alpine.database.password=********
alpine.database.pool.max.size=128
alpine.database.pool.min.idle=16
# 创建临时文件存储目录
sudo mkdir tmp
# 前台调试启动
# sudo java -Xmx16G -Djava.io.tmpdir=/opt/dependency-track/tmp -Dalpine.application.properties=application.properties -jar dependency-track-bundled.jar -context / -host 0.0.0.0 -port 8090
# 后台启动
sudo -b -E java -Xmx16G -Djava.io.tmpdir=/opt/dependency-track/tmp -Dalpine.application.properties=application.properties -jar dependency-track-bundled.jar -context / -host 0.0.0.0 -port 8090 > /dev/null 2>&1
# 默认系统管理员凭据
# admin/admin
# 配置 License Policy
# 访问 http://{hostname}:8090/policy
# 点击 Create Policy 按钮
####################################
# Name: Copyleft
####################################
# 点击 Create 按钮
# 点击新创建的 [INFO] Copyleft
####################################
# Violation State: Warn
####################################
# 点击 Conditions 右侧的 + 按钮
####################################
# [License group] [is] [Copyleft]
# 生成 API Key
# 访问 http://{hostname}:8090/admin
# 依次点击 Access Management --> Teams --> Administrators
# 点击 API Keys 右侧的 + 按钮
# 配置 Webhook
# 访问 http://{hostname}:8090/admin
# 依次点击 Notifications --> Alerts --> Create Alert
####################################################
# Name: Alert
# Scope: Portfolio
# Notification level: Informational
# Publisher: Outbound Webhook
####################################################
# 点击 Create 按钮
# 点击新创建的 Alert
####################################################
# Destination: http://{hostname}:9910/dtrack
# Group: BOM_PROCESSED
####################################################
# 显示进程信息
ps aux | grep 'dependency-track' | grep -v 'grep'
# 显示 PID
ps aux | grep 'dependency-track' | grep -v 'grep' | awk '{print $2}'
# 终止进程
sudo kill -SIGTERM $(ps aux | grep 'dependency-track' | grep -v 'grep' | awk 'NR==1 {print $2}')
# 清空应用审核日志
sudo su - -c 'cat /dev/null > /root/.dependency-track/dependency-track-audit.log'
# 清空应用日志
sudo su - -c 'cat /dev/null > /root/.dependency-track/dependency-track.log'
# 清空嵌入式 Jetty 服务器日志
sudo su - -c 'cat /dev/null > /root/.dependency-track/server.log'
# https://docs.dependencytrack.org/
# Hardware Requirements: 8 Core CPU, 16GB RAM, SSD