chore: 删除无用的部署和维护脚本
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
import paramiko
|
||||
import os
|
||||
import time
|
||||
|
||||
host = "64.90.11.73"
|
||||
port = 22
|
||||
username = "root"
|
||||
password = "qemzCSBQ8251"
|
||||
local_zip = "chat-deploy.zip"
|
||||
remote_zip = "/root/chat-deploy.zip"
|
||||
|
||||
print(f"Connecting to {host}...")
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
try:
|
||||
ssh.connect(host, port, username, password, look_for_keys=False, allow_agent=False)
|
||||
|
||||
print("Uploading zip file...")
|
||||
sftp = ssh.open_sftp()
|
||||
sftp.put(local_zip, remote_zip)
|
||||
sftp.close()
|
||||
|
||||
commands = """
|
||||
mkdir -p /root/chat-deploy
|
||||
unzip -o /root/chat-deploy.zip -d /root/chat-deploy
|
||||
cd /root/chat-deploy
|
||||
docker build -t chat-server:latest .
|
||||
docker stop chat-server || true
|
||||
docker rm chat-server || true
|
||||
docker run -d --name chat-server -p 38080:8080 chat-server:latest
|
||||
"""
|
||||
|
||||
print("Executing deployment commands on server...")
|
||||
stdin, stdout, stderr = ssh.exec_command(commands)
|
||||
|
||||
# 实时打印输出
|
||||
for line in iter(stdout.readline, ""):
|
||||
print(line, end="")
|
||||
|
||||
for line in iter(stderr.readline, ""):
|
||||
print("ERROR:", line, end="")
|
||||
|
||||
print("Deployment script execution completed.")
|
||||
finally:
|
||||
ssh.close()
|
||||
@@ -1,46 +0,0 @@
|
||||
import paramiko
|
||||
import os
|
||||
import tarfile
|
||||
|
||||
HOST = '64.90.11.73'
|
||||
USER = 'root'
|
||||
PASSWORD = 'qemzCSBQ8251'
|
||||
REMOTE_DIR = '/root/chat-web'
|
||||
|
||||
print("正在连接到服务器...")
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
ssh.connect(HOST, username=USER, password=PASSWORD, look_for_keys=False, allow_agent=False)
|
||||
|
||||
print("正在清理并创建远程目录...")
|
||||
ssh.exec_command(f'mkdir -p {REMOTE_DIR}/dist')
|
||||
ssh.exec_command(f'rm -rf {REMOTE_DIR}/dist/*')
|
||||
|
||||
print("正在打包本地 dist 文件夹...")
|
||||
with tarfile.open("dist.tar.gz", "w:gz") as tar:
|
||||
tar.add("chat-web/dist", arcname="dist")
|
||||
tar.add("chat-web/nginx.conf", arcname="nginx.conf")
|
||||
|
||||
sftp = ssh.open_sftp()
|
||||
print("正在上传文件...")
|
||||
sftp.put("dist.tar.gz", f"{REMOTE_DIR}/dist.tar.gz")
|
||||
sftp.close()
|
||||
|
||||
print("正在远程解压...")
|
||||
ssh.exec_command(f'cd {REMOTE_DIR} && tar -xzf dist.tar.gz && cp -r dist/nginx.conf .')
|
||||
|
||||
print("正在启动 Nginx 容器...")
|
||||
cmd = (
|
||||
f'docker stop chat-web-nginx; '
|
||||
f'docker rm chat-web-nginx; '
|
||||
f'docker run -d --name chat-web-nginx -p 38080:80 '
|
||||
f'-v {REMOTE_DIR}/dist/dist:/usr/share/nginx/html '
|
||||
f'-v {REMOTE_DIR}/nginx.conf:/etc/nginx/conf.d/default.conf nginx'
|
||||
)
|
||||
stdin, stdout, stderr = ssh.exec_command(cmd)
|
||||
print("启动结果:", stdout.read().decode())
|
||||
print("错误输出:", stderr.read().decode())
|
||||
|
||||
ssh.close()
|
||||
os.remove("dist.tar.gz")
|
||||
print("前端部署完成!可以访问 http://64.90.11.73:38080")
|
||||
@@ -1,7 +0,0 @@
|
||||
import paramiko
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
ssh.connect('64.90.11.73', username='root', password='qemzCSBQ8251', look_for_keys=False, allow_agent=False)
|
||||
stdin, stdout, stderr = ssh.exec_command('docker ps')
|
||||
print(stdout.read().decode())
|
||||
ssh.close()
|
||||
@@ -1,32 +0,0 @@
|
||||
import paramiko
|
||||
|
||||
host = "64.90.11.73"
|
||||
port = 22
|
||||
username = "root"
|
||||
password = "qemzCSBQ8251"
|
||||
|
||||
print("Connecting to server...")
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
try:
|
||||
ssh.connect(host, port, username, password, look_for_keys=False, allow_agent=False)
|
||||
|
||||
commands = """
|
||||
mkdir -p /root/gitea
|
||||
docker stop gitea || true
|
||||
docker rm gitea || true
|
||||
docker run -d --name=gitea -p 3010:3000 -p 222:22 -v /root/gitea:/data gitea/gitea:latest
|
||||
"""
|
||||
|
||||
print("Deploying Gitea via Docker...")
|
||||
stdin, stdout, stderr = ssh.exec_command(commands)
|
||||
|
||||
for line in iter(stdout.readline, ""):
|
||||
print(line, end="")
|
||||
|
||||
for line in iter(stderr.readline, ""):
|
||||
print("ERROR:", line, end="")
|
||||
|
||||
print("Gitea deployed successfully.")
|
||||
finally:
|
||||
ssh.close()
|
||||
@@ -1,33 +0,0 @@
|
||||
import paramiko
|
||||
|
||||
host = "64.90.11.73"
|
||||
port = 22
|
||||
username = "root"
|
||||
password = "qemzCSBQ8251"
|
||||
|
||||
print("Connecting to server...")
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
try:
|
||||
ssh.connect(host, port, username, password, look_for_keys=False, allow_agent=False)
|
||||
|
||||
commands = """
|
||||
mkdir -p /root/jenkins
|
||||
docker stop jenkins || true
|
||||
docker rm jenkins || true
|
||||
# 以 root 权限运行,挂载 docker 守护进程和二进制文件,使 Jenkins 可以进行 Docker 操作
|
||||
docker run -d --name=jenkins -p 8081:8080 -p 50000:50000 -u root -v /root/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker jenkins/jenkins:lts
|
||||
"""
|
||||
|
||||
print("Deploying Jenkins via Docker...")
|
||||
stdin, stdout, stderr = ssh.exec_command(commands)
|
||||
|
||||
for line in iter(stdout.readline, ""):
|
||||
print(line, end="")
|
||||
|
||||
for line in iter(stderr.readline, ""):
|
||||
print("ERROR:", line, end="")
|
||||
|
||||
print("Jenkins deployed successfully.")
|
||||
finally:
|
||||
ssh.close()
|
||||
@@ -1,7 +0,0 @@
|
||||
import paramiko
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
ssh.connect("64.90.11.73", 22, "root", "qemzCSBQ8251", look_for_keys=False, allow_agent=False)
|
||||
stdin, stdout, stderr = ssh.exec_command("docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword")
|
||||
print("PASS:" + stdout.read().decode())
|
||||
ssh.close()
|
||||
@@ -1,19 +0,0 @@
|
||||
import urllib.request
|
||||
import base64
|
||||
import json
|
||||
|
||||
auth = base64.b64encode(b"admin:adminpassword").decode("ascii")
|
||||
headers = {"Authorization": f"Basic {auth}"}
|
||||
|
||||
req = urllib.request.Request("http://64.90.11.73:8081/crumbIssuer/api/json", headers=headers)
|
||||
data = json.loads(urllib.request.urlopen(req).read().decode())
|
||||
headers[data['crumbRequestField']] = data['crumb']
|
||||
headers["Origin"] = "http://64.90.11.73:8081"
|
||||
headers["Referer"] = "http://64.90.11.73:8081/"
|
||||
|
||||
req3 = urllib.request.Request("http://64.90.11.73:8081/job/chat-pipeline/build", data=b"", headers=headers, method="POST")
|
||||
try:
|
||||
with urllib.request.urlopen(req3) as response:
|
||||
print("Status:", response.status)
|
||||
except Exception as e:
|
||||
print("Error:", e)
|
||||
@@ -1,48 +0,0 @@
|
||||
import pymysql
|
||||
|
||||
try:
|
||||
conn = pymysql.connect(
|
||||
host='64.90.11.73',
|
||||
port=33306,
|
||||
user='root',
|
||||
password='qemzCSBQ8251',
|
||||
database='ai_chat',
|
||||
charset='utf8mb4'
|
||||
)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 1. 增加 sys_user 表
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS sys_user (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID',
|
||||
username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
|
||||
password VARCHAR(255) NOT NULL COMMENT '密码(密文)',
|
||||
role VARCHAR(32) NOT NULL DEFAULT 'user' COMMENT '角色',
|
||||
created_at DATETIME NOT NULL COMMENT '创建时间'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户表';
|
||||
""")
|
||||
|
||||
# 2. 插入 admin
|
||||
cursor.execute("""
|
||||
INSERT IGNORE INTO sys_user (id, username, password, role, created_at) VALUES (1, 'admin', '123456', 'admin', NOW());
|
||||
""")
|
||||
|
||||
# 3. 为 chat_session 增加 user_id(如果不存在)
|
||||
try:
|
||||
cursor.execute("ALTER TABLE chat_session ADD COLUMN user_id BIGINT COMMENT '归属用户ID' AFTER id;")
|
||||
cursor.execute("ALTER TABLE chat_session ADD INDEX idx_user_id (user_id);")
|
||||
# 将已有的旧数据全部归属给 admin (user_id = 1)
|
||||
cursor.execute("UPDATE chat_session SET user_id = 1 WHERE user_id IS NULL;")
|
||||
print("已成功添加 user_id 字段并赋初始值。")
|
||||
except Exception as e:
|
||||
if 'Duplicate column name' in str(e):
|
||||
print("user_id 字段已存在。")
|
||||
else:
|
||||
print(f"添加 user_id 时出错: {e}")
|
||||
|
||||
conn.commit()
|
||||
cursor.close()
|
||||
conn.close()
|
||||
print("数据库结构更新完毕。")
|
||||
except Exception as e:
|
||||
print(f"数据库连接或执行出错: {e}")
|
||||
@@ -1,81 +0,0 @@
|
||||
import paramiko
|
||||
|
||||
host = "64.90.11.73"
|
||||
port = 22
|
||||
username = "root"
|
||||
password = "qemzCSBQ8251"
|
||||
|
||||
def get_xml(script_path):
|
||||
return f"""<?xml version='1.1' encoding='UTF-8'?>
|
||||
<flow-definition plugin="workflow-job">
|
||||
<definition class="org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition" plugin="workflow-cps">
|
||||
<scm class="hudson.plugins.git.GitSCM" plugin="git">
|
||||
<configVersion>2</configVersion>
|
||||
<userRemoteConfigs>
|
||||
<hudson.plugins.git.UserRemoteConfig>
|
||||
<url>http://root:qemzCSBQ8251@64.90.11.73:3010/root/chat.git</url>
|
||||
</hudson.plugins.git.UserRemoteConfig>
|
||||
</userRemoteConfigs>
|
||||
<branches>
|
||||
<hudson.plugins.git.BranchSpec>
|
||||
<name>*/master</name>
|
||||
</hudson.plugins.git.BranchSpec>
|
||||
</branches>
|
||||
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||
<submoduleCfg class="empty-list"/>
|
||||
<extensions/>
|
||||
</scm>
|
||||
<scriptPath>{script_path}</scriptPath>
|
||||
<lightweight>true</lightweight>
|
||||
</definition>
|
||||
<disabled>false</disabled>
|
||||
</flow-definition>"""
|
||||
|
||||
jobs = {
|
||||
"chat-web-pipeline": get_xml("Jenkinsfile.web"),
|
||||
"chat-server-pipeline": get_xml("Jenkinsfile.server")
|
||||
}
|
||||
|
||||
print("Connecting to server via SSH...")
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
ssh.connect(host, port, username, password, look_for_keys=False, allow_agent=False)
|
||||
|
||||
try:
|
||||
print("Downloading jenkins-cli.jar if not exists...")
|
||||
cmd_download = "docker exec jenkins sh -c '[ -f /tmp/jenkins-cli.jar ] || curl -sL -o /tmp/jenkins-cli.jar http://localhost:8080/jnlpJars/jenkins-cli.jar'"
|
||||
ssh.exec_command(cmd_download)
|
||||
|
||||
# Note: Using create-job if update-job fails (meaning job doesn't exist yet)
|
||||
for job_name, xml_data in jobs.items():
|
||||
print(f"\\n--- Processing {job_name} ---")
|
||||
|
||||
# Write XML to a temp file in the container
|
||||
cmd_write = f"docker exec -i jenkins sh -c 'cat > /tmp/{job_name}.xml'"
|
||||
stdin, _, _ = ssh.exec_command(cmd_write)
|
||||
stdin.write(xml_data.encode('utf-8'))
|
||||
stdin.close()
|
||||
|
||||
cmd_update = f"docker exec jenkins sh -c 'java -jar /tmp/jenkins-cli.jar -s http://64.90.11.73:8081/ -auth admin:adminpassword update-job {job_name} < /tmp/{job_name}.xml || java -jar /tmp/jenkins-cli.jar -s http://64.90.11.73:8081/ -auth admin:adminpassword create-job {job_name} < /tmp/{job_name}.xml'"
|
||||
_, stdout, stderr = ssh.exec_command(cmd_update)
|
||||
|
||||
out = stdout.read().decode()
|
||||
err = stderr.read().decode()
|
||||
if err:
|
||||
print(f"[{job_name}] Update/Create error:", err)
|
||||
else:
|
||||
print(f"[{job_name}] Update/Create output:", out or "Success")
|
||||
|
||||
print(f"[{job_name}] Triggering build...")
|
||||
cmd_build = f"docker exec jenkins sh -c 'java -jar /tmp/jenkins-cli.jar -s http://64.90.11.73:8081/ -auth admin:adminpassword build {job_name}'"
|
||||
_, stdout, stderr = ssh.exec_command(cmd_build)
|
||||
|
||||
out = stdout.read().decode()
|
||||
err = stderr.read().decode()
|
||||
if err:
|
||||
print(f"[{job_name}] Trigger build error:", err)
|
||||
else:
|
||||
print(f"[{job_name}] Trigger build output:", out or "Success")
|
||||
|
||||
finally:
|
||||
ssh.close()
|
||||
@@ -1,51 +0,0 @@
|
||||
import pymysql
|
||||
import hashlib
|
||||
|
||||
# 前端密码 123456 的第一层 hash
|
||||
FRONTEND_HASH = "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"
|
||||
|
||||
def get_final_hash(username):
|
||||
# 后端加密:sha256(username + hash)
|
||||
raw = username + FRONTEND_HASH
|
||||
return hashlib.sha256(raw.encode('utf-8')).hexdigest()
|
||||
|
||||
def update_passwords():
|
||||
db_config = {
|
||||
'host': '64.90.11.73',
|
||||
'port': 33306,
|
||||
'user': 'root',
|
||||
'password': 'qemzCSBQ8251',
|
||||
'database': 'ai_chat',
|
||||
'charset': 'utf8mb4'
|
||||
}
|
||||
|
||||
connection = None
|
||||
try:
|
||||
connection = pymysql.connect(**db_config)
|
||||
with connection.cursor() as cursor:
|
||||
# 获取所有用户
|
||||
cursor.execute("SELECT id, username FROM sys_user")
|
||||
users = cursor.fetchall()
|
||||
|
||||
for user in users:
|
||||
user_id = user[0]
|
||||
username = user[1]
|
||||
new_hash = get_final_hash(username)
|
||||
|
||||
# 更新密码
|
||||
cursor.execute(
|
||||
"UPDATE sys_user SET password = %s WHERE id = %s",
|
||||
(new_hash, user_id)
|
||||
)
|
||||
print(f"用户 {username} 的密码已被重置为双重加密后的 123456 (密文: {new_hash[:8]}...)")
|
||||
|
||||
connection.commit()
|
||||
print("所有用户的密码已成功重置!")
|
||||
except Exception as e:
|
||||
print(f"重置密码时出错: {e}")
|
||||
finally:
|
||||
if connection:
|
||||
connection.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
update_passwords()
|
||||
Reference in New Issue
Block a user