• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

简介

官网http://www.pgoops.com :号

https://gitee.com/pgoops gitee :

https://github.com/yanshicheng/pgoops github :

准备工作

准备工作如果已经安装好了环境可以越过。

编译安装 Python3.10

项目基于python 3.10,确保大蟒和点正确配置

下载软件包

root @ cloud-001: ~ # wget https://www.python.org/ftp/python/3.10.3/Python-3.10.3.tar.xz-无支票-证书

解压软件包

root @ cloud-001: ~ # tar xf Python-3。10 .3 .焦油。学制

root @ cloud-001: ~ # CD Python-3。10 .3/

编译安装

root @ cloud-001: ~/Python-3。10 .3 # apt-get install zlib 1g-dev libbz 2-dev libssl-dev libncurses 5-dev libsqlite 3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat 1-dev liblzma-dev libffi-dev libc 6-dev liblzma-dev

root @ cloud-001: ~/Python-3。10 .3 #。/configure-prefix=/usr/local/python 3.10-enable-shared-enable-optimizations-with-SSL

root @ cloud-001: ~/Python-3。10 .3 #制造-j 8

root @ cloud-001: ~/Python-3。10 .3 #制作安装

root @ cloud-001: ~/Python-3。10 .3 # echo '/usr/local/Python 3.10/lib/'/etc/LD。所以。主配置文件

root @ cloud-001: ~/Python-3。10 .3 # ldconfig

设置环境变量

root @ cloud-001: ~/Python-3。10 .3 #卡特彼勒/etc/profile。d/Python 3.10。sh EOF

导出python路径=/usr/local/python 3.10

导出路径=${PYTHONPATH}/bin:${PATH}

文件结束

root @ cloud-001: ~/Python-3。10 .3 #源/etc/配置文件

# 检查

root@cloud-001:~# pip3 -V

pip 22.0.4来自/usr/local/python 3.10/lib/python 3.10/site-packages/pip(python 3.10)

root@cloud-001:~# python3 -V

Python 3.10.3

# pip全局加速

root@cloud-001:~# pip3配置集全球。索引-URL https://pypi.tuna.tsinghua.edu.cn/simple

安装 NodeJs

基于二进制格式安装部署

下载及解压

root @ cloud-001: ~ # wget https://nodejs。org/dist/v 16。15 .0/节点v 16。15 .0-Linux-x64。焦油。xz-无支票证书

root @ cloud-001: ~ # tar xf node-v 16。15 .0-Linux-x64。焦油。xz-C/usr/local/

root @ cloud-001: ~ # ln-s/usr/local/node-v 16。15 .0-Linux-x64//usr/local/node

设置环境变量

-bash"># 设置全局变量 cat > /etc/profile.d/nodejs.sh <<EOF export NODEPATH=/usr/local/node export PATH=${NODEPATH}/bin:${PATH} EOF # 加载全局变量 root@cloud-001:~/Python-3.10.3# source /etc/profile # 检查 root@cloud-001:~# node -v v16.15.0 root@cloud-001:~# npm -v 8.5.5 # 全局变量 root@cloud-001:~# npm config set registry https://registry.npm.taobao.org

安装 mariadb

root@cloud-001:~# sudo apt install mariadb-server
# 初始化回车输入密码。一路Y
root@cloud-001:~# sudo mysql_secure_installation
# 禁用 bind-address 
root@cloud-001:~# vi /etc/mysql/mariadb.conf.d/50-server.cnf
#bind-address            = 127.0.0.1
root@cloud-001:~# systemctl restart mariadb.service 
root@cloud-001:~# systemctl enable mariadb@.service 
root@cloud-001:~#  mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 35
Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1-log Ubuntu 20.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 设置密码
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

安装 redis

root@cloud-001:~# sudo apt-get install redis-server -y
# 添加密码
root@cloud-001:~# vim /etc/redis/redis.conf 
requirepass 123456
# 开启自动启动
root@cloud-001:~# systemctl enable redis-server.service --now
root@cloud-001:~# systemctl status redis-server.service 

安装 nginx

root@cloud-001:~# apt install nginx
root@cloud-001:~# systemctl enable nginx --now
root@cloud-001:~# systemctl status nginx

项目部署 - 后端

项目地址(github):

项目地址(gitee):

部署虚拟环境

确保是 python3.10+ 环境

# 安装虚拟环境管理工具
root@cloud-001:~# pip3 install poetry
root@cloud-001:~# poetry config virtualenvs.in-project true
# 安装ansible ,任何安装方法都可,全局可用即可。
root@cloud-001:~# pip3 install ansible

克隆项目

root@cloud-001:~# mkdir /data/ops
root@cloud-001:~# cd /data/ops
root@cloud-001:/data/ops# git clone https://gitee.com/pgoops/pgoops.git
Cloning into 'pgoops'...
remote: Enumerating objects: 5751, done.
remote: Counting objects: 100% (5751/5751), done.
remote: Compressing objects: 100% (3762/3762), done.
remote: Total 5751 (delta 1812), reused 5746 (delta 1810), pack-reused 0
Receiving objects: 100% (5751/5751), 3.45 MiB | 938.00 KiB/s, done.
Resolving deltas: 100% (1812/1812), done.

安装依赖包

root@cloud-001:/data/ops# cd pgoops/
root@cloud-001:/data/ops/pgoops# poetry install 
Updating dependencies
Resolving dependencies... (124.2s)
Writing lock file
....

创建数据库

# 创建数据库
CREATE DATABASE  pgoops DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 创建用户
create user 'pgoops'@'%' identified by '123456';
# 授权
grant all privileges on pgoops.* to pgoops@'%' identified by '123456';
# 刷新权限
flush privileges;
# 操作记录
root@cloud-001:~# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 124
Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1-log Ubuntu 20.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE  pgoops DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Query OK, 1 row affected (0.002 sec)
MariaDB [(none)]> create user 'pgoops'@'%' identified by '123456';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> grant all privileges on pgoops.* to pgoops@'%' identified by '123456';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> exit
Bye

创建&修改配置文件

项目中提供了一个标准配置文件模板,按照实际情况进行修改即可。

修改 Mysql 链接地址,redis 链接地址,以及 运行模式。

需改拷贝模板生成配置文件,路径: .../pgoops/config/pgoops.ini

root@cloud-001:/data/ops/pgoops# cp config/pgoops.ini.temp config/pgoops.ini
root@cloud-001:/data/ops/pgoops# vim config/pgoops.ini
[DEFAULT]
mode = prod
debug = false
[db.mysql.prod]
host = 127.0.0.1
port = 3306
name = pgoops
user = pgoops
password = 123456
options = {"charset": "utf8mb4"}
[db.redis.prod]
host = 127.0.0.1
port = 6379
password = 123456

初始化 & 运行后端

切记在项目目录下进行操作。

# 按照提示执行此脚本 服务即可起来
root@cloud-001:/data/ops/pgoops# ./inti_pgoops.sh 
root@cloud-001:/data/ops/pgoops# ss -lnt
State                   Recv-Q                  Send-Q                                                    Local Address:Port                                      Peer Address:Port                  Process                  
......                            
LISTEN                  0                       4096                                                          127.0.0.1:953                                            0.0.0.0:*                                              
LISTEN                  0                       50                                                              0.0.0.0:8000                                           0.0.0.0:*                                              
LISTEN                  0                       300                                                             0.0.0.0:3306                                           0.0.0.0:*                                              
LISTEN                  0                       511                                                           127.0.0.1:6379                                           0.0.0.0:*                                              ......

交互式修改用户密码

在项目根目录执行.venv/bin/python3 manage.py shell 进入shell环境

也可以在WEB界面中通过超级管理员账号进行登陆。

# 引入 用户模型
from django.contrib.auth import get_user_model
# 查找用户 如果修改 pgoops 则替换 (name='super')
super_ops = get_user_model().objects.filter(name='super').first()
# 测试引入是否成功,打印即成功
super_ops.name
'super'
# 修改密码
super_ops.set_password('123456')
# 保存
super_ops.save()

项目部署 - 前端

项目地址(github):

项目地址(gitee):

克隆前端项目

root@cloud-001:/data/ops# git clone https://gitee.com/pgoops/pgoops_web.git
Cloning into 'pgoops_web'...
remote: Enumerating objects: 431, done.
remote: Counting objects: 100% (431/431), done.
remote: Compressing objects: 100% (352/352), done.
remote: Total 431 (delta 43), reused 431 (delta 43), pack-reused 0
Receiving objects: 100% (431/431), 1.22 MiB | 611.00 KiB/s, done.
Resolving deltas: 100% (43/43), done.

项目依赖安装及打包

root@cloud-001:/data/ops# cd pgoops_web/
# 安装依赖包
root@cloud-001:/data/ops/pgoops_web# npm i
(⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂) ⠙ idealTree:pgoops_web: sill idealTree buildDeps
# 打包项目
root@cloud-001:/data/ops/pgoops_web# npm run build
> pgoops_web_www.pgoops.com@1.0.0 build
> vue-cli-service build
⠏  Building for production...

Nginx 虚拟主机配置

文件中的路径及地址根据实际情况修改。

root@cloud-001:/usr/local/nginx/conf.d# cat www.pgoops.conf 
server {
    listen       80;
    server_name  0.0.0.0 www.pgoops.com;
    
    error_log /var/log/nginx/www_pgoops_error.log  info; 
    access_log  /var/log/nginx/www_pgoops_access.log;
  #  underscores_in_headers on;
    location /api {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        if ($request_method = OPTIONS ) {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods "GET,POST,PUT,PATCH,OPTIONS,DELETE";
            add_header Access-Control-Allow-Headers "Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,If-None-Match,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With";
            add_header Access-Control-Allow-Credentials "true";
        }
    }
    location /admin {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /static/ {
        alias /data/ops/pgoops/static/;
    }
    location /media/ {
        alias /data/ops/pgoops/upload/;
    }
    location / {
        root /data/ops/pgoops_web/dist;
        index index.html index.htm;
        try_files $uri $uri/ /index.html =404;
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods "GET,POST,PUT,PATCH,OPTIONS,DELETE";
        add_header Access-Control-Allow-Headers "Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,If-None-Match,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With";
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root html;
    }
}

访问测试

确保服务运行正常

root@cloud-001:~# systemctl is-active pgoops-celery-server.service 
active
root@cloud-001:~# systemctl is-active pgoops-celery-beat.service 
active
root@cloud-001:~# systemctl is-active pgoops-server.service 
active
root@cloud-001:~# systemctl is-active nginx
active
>>>> 前端     地址: http://ip_addr/"
>>>> 管理     地址: http://ip_addr/admin/"
>>>> 超级管理员用户: pgoops      密码: 123456"
>>>> 普通管理员用户: super       密码: 123456"
>>>> 普通     用户: edit        密码: 123456"
>>>> 官网     地址: http://www.pgoops.com"
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now