# 依赖安装

***

### 常用工具安装

```bash
yum install vim gcc gcc-c++ glibc glibc-devel pcre git \
pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools \
telnet lsof tcpdump wget  -y
```

### 基础安装环境准备

```bash
# 准备安装目录 替换实际安装路径
mkdir -p /app/{mars,jupiter,saturn}
mkdir /app/mars/{server,client}
# 准备supervisor日志路径
mkdir -p /data/log/supervisor/{mars,jupiter,saturn}
# 准备项目日志路径
mkdir -p /data/log/{mars,jupiter,saturn}
# 准备前端页面目录
mkdir -p /var/www/fe
```

### supervisor 安装

```bash
yum install epel-release
yum install -y supervisor
systemctl enable supervisord
systemctl start supervisord
```

#### mars supervisor配置

```bash
vim /etc/supervisord.d/mars.ini
 
# 配置如下：
 
[program:mars]
 # 替换实际工作路径
directory=/app/mars/server
 
command=/app/mars/server/mars start -c config.yml
 
autostart=true
 
autorestart=true
 
user=root
 
numprocs=1
 
redirect_stderr=true
 
stdout_logfile=/data/log/supervisor/mars/mars.log
 
startretries=10

mars客户端 supervisor配置
vim /etc/supervisord.d/mars.ini
 
# 配置如下：
 
[program:mars]
 # 替换实际工作路径
directory=/app/mars/client
 
command=/app/mars/client/mars-client start -c config.yml
 
autostart=true
 
autorestart=true
 
user=root
 
numprocs=1
 
redirect_stderr=true
 
stdout_logfile=/data/log/supervisor/mars/mars-client.log
 
startretries=10
```

#### jupiter supervisor配置

```bash
vim /etc/supervisord.d/jupiter.ini
 
#配置如下:
 
[program:jupiter]
# 替换实际工作路径
directory=/app/jupiter
 
command=/app/jupiter/jupiter start -c config.yml
 
autostart=true
 
autorestart=true
 
user=root
 
numprocs=1
 
redirect_stderr=true
 
stdout_logfile=/data/log/supervisor/jupiter/jupiter.log
 
startretries=10
```

#### Saturn supervisor配置

```bash
vim /etc/supervisord.d/jupiter.ini
 
#配置如下:
 
[program:saturn]
# 替换实际工作路径
directory=/app/saturn
 
command=/app/saturn/saturn start -c config.yml
 
autostart=true
 
autorestart=true
 
user=root
 
numprocs=1
 
redirect_stderr=true
 
stdout_logfile=/data/log/supervisor/saturn/saturn.log
 
startretries=10
```

### Ngin安装配置 如果使用现有nginx 忽略nginx安装

```bash
#查看80端口占用情况
netstat -tunlp | grep 80 
yum install nginx
systemctl enable nginx
systemctl start nginx

# nginx安装好后修改默认配置
vim /etc/nginx/nginx.conf 
# 注释掉默认server段
#    server {
#        listen       80;
#        listen       [::]:80;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#        location = /404.html {
#        }
 
#        error_page 500 502 503 504 /50x.html;
#        location = /50x.html {
#        }
#    }
#创建gops代理配置
vim /etc/nginx/conf.d/gops.conf
 
# gops.conf配置如下
 
upstream mars{
       server 127.0.0.1:9001;
}
upstream jupiter{
       server 127.0.0.1:9002;
}
upstream saturn{
       server 127.0.0.1:9003;
}
 
server {
  listen  80 default;
  # 修改域名或ip
  server_name 127.0.0.1 ;
 
  location ^~ /mars/ {
        proxy_pass http://mars/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
  location ^~ /jupiter/ {
        proxy_pass http://jupiter/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
    location ^~ /saturn/ {
        proxy_pass http://saturn/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
 
 
  location / {
    root  /var/www/fe;
    index  index.html;
    try_files $uri $uri/ /index.html;
  }
 
}
```

### Docker 安装配置

```bash
# docker 17.06+ 版本以上
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce-18.09.9-3.el7

# docker-compose 1.18.0+ 版本以上
curl -SL https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-linux-x86_64 -o /usr/bin/docker-compose
chmod u+x /usr/bin/docker-compose

# vim /etc/docker/daemon.json
# 添加harbor地址 注意如果harbor非80端口，在insecure-registers列表中添加  ip:端口号
{
  "registry-mirrors": ["https://pqbap4ya.mirror.aliyuncs.com"],
  "insecure-registries": ["127.0.0.1/8","harborIp:81"],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    }
}
systemctl restart docker
```

### Harbor安装配置 已经有harbor服务忽略此安装配置

```bash
# 下载harbor安装包
curl -SL https://github.com/goharbor/harbor/releases/download/v2.6.0/harbor-offline-installer-v2.6.0.tgz

# 解压后修改harbor.yml配置如下：
hostname: 172.25.2.174
http:
# 修改对应端口号，不要与本机端口冲突
  port: 80
# harbor默认用户admin的密码
harbor_admin_password: Harbor12345
database:
  password: root123
  max_idle_conns: 100
  max_open_conns: 900
# harbor数据挂载路径
data_volume: /root/harbor/shared
trivy:
  ignore_unfixed: false
  skip_update: false
  offline_scan: false
  insecure: false
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /root/harbor/log
_version: 2.6.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy
upload_purging:
  enabled: true
  age: 168h
  interval: 24h
  dryrun: false
cache:
  enabled: false
  expire_hours: 24

# 开始安装
./install.sh
# 查看harbor容器启动情况
docker-compose ps 
```

![harbor状态](/files/bblpYY38segFMK1fXJXM) ![harbor Dashboard](/files/dyKSvny7Z3TIpllHSGBW)

```bash
# harbor安装成功后，登录harbor
docker login ip:端口号
# 生成base64镜像仓库认证秘钥 应用mars安装后配置到配置文件中用于cicd拉取镜像
cat ~/.docker/config.json | base64 -w 0
ewoJImF1dGhzIjogewoJCSIxNzIuMjUuMi4xNzQiOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDkuOSAobGludXgpIgoJfQp9
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ztth.gitbook.io/gops/install/wu-li-ji-bu-shu/depend.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
