mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/sky22333/ansible-ui
synced 2026-09-20 08:03:57 +08:00
优化注释
This commit is contained in:
@@ -4,13 +4,12 @@
|
||||
|
||||
## 功能特性
|
||||
|
||||
- 主机管理:添加、编辑、删除、批量导入主机
|
||||
- 主机管理:批量添加主机
|
||||
- 主机密码加密存储,提高安全性
|
||||
- 命令执行:向选中主机发送命令并查看结果
|
||||
- 文件上传:上传文件到选中主机
|
||||
- 自定义Playbook执行:编写和执行Ansible Playbook任务
|
||||
- Web终端:通过浏览器直接连接到远程主机
|
||||
- SFTP管理:浏览和管理远程文件系统
|
||||
- 访问日志:记录和查看系统访问情况
|
||||
|
||||
## 安全特性
|
||||
@@ -31,11 +30,11 @@ docker run -d \
|
||||
-v ./ansible:/app/db \
|
||||
ghcr.io/sky22333/ansible
|
||||
```
|
||||
默认仅支持HTTPS访问,请自行反代。请务必设置一个强密码
|
||||
建议反代并开启HTTPS加强安全性。务必设置一个强密码
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **环境变量要求**:系统强制要求设置ADMIN_USERNAME和ADMIN_PASSWORD环境变量
|
||||
- **环境变量要求**:系统强制要求设置`ADMIN_USERNAME`和`ADMIN_PASSWORD`环境变量
|
||||
- **密钥生成**:系统完全依赖管理员凭证派生加密密钥,无任何本地密钥文件
|
||||
- **密码更改**:如果修改了管理员密码,之前加密的数据将无法解密,请在修改密码前备份重要数据
|
||||
- **会话限制**:加密密钥仅在登录会话中有效,如果服务重启,需要重新登录才能访问加密数据
|
||||
|
||||
@@ -335,7 +335,7 @@ class AnsibleManager:
|
||||
|
||||
play = [{
|
||||
'name': 'Copy file to selected hosts',
|
||||
'hosts': hosts_str, # 使用逗号分隔的主机地址列表
|
||||
'hosts': hosts_str,
|
||||
'gather_facts': 'no',
|
||||
'tasks': [{
|
||||
'name': 'Ensure destination directory exists',
|
||||
|
||||
9
app.py
9
app.py
@@ -165,16 +165,12 @@ def before_request():
|
||||
|
||||
@app.after_request
|
||||
def after_request(response):
|
||||
# 移除允许所有来源的CORS头
|
||||
# response.headers.add('Access-Control-Allow-Origin', '*')
|
||||
# response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
|
||||
# response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
|
||||
|
||||
# 记录API请求
|
||||
if request.path.startswith("/api/"):
|
||||
status = 'success' if response.status_code < 400 else 'failed'
|
||||
db.add_access_log(
|
||||
get_client_ip(), # 使用新函数获取真实IP,代替原来的request.remote_addr
|
||||
get_client_ip(),
|
||||
request.path,
|
||||
status,
|
||||
response.status_code
|
||||
@@ -218,7 +214,7 @@ def login():
|
||||
'token',
|
||||
token,
|
||||
max_age=JWT_EXPIRATION,
|
||||
# secure=True, # 开发环境可能不需要
|
||||
# secure=True, # 生产环境建议开启
|
||||
httponly=True,
|
||||
samesite='Lax'
|
||||
)
|
||||
@@ -537,7 +533,6 @@ def terminal_ws(ws, host_id):
|
||||
if data['type'] == 'input':
|
||||
channel.send(data['data'])
|
||||
elif data['type'] == 'resize':
|
||||
# 处理终端大小调整
|
||||
new_size = data['data']
|
||||
channel.resize_pty(
|
||||
width=new_size['cols'],
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# Ansible 前端重构
|
||||
|
||||
## 概述
|
||||
|
||||
本项目是对原有 Ansible Web UI 的前端进行了重构,采用了 React 和 shadcn/ui 技术栈,旨在提供更现代化、响应式和美观的用户界面。
|
||||
新版前端,采用了 React 和 shadcn/ui 技术栈,旨在提供更现代化、响应式和美观的用户界面。
|
||||
|
||||
|
||||
## 技术栈
|
||||
@@ -10,7 +8,6 @@
|
||||
* React
|
||||
* TypeScript
|
||||
* shadcn/ui (基于 Radix UI 和 Tailwind CSS)
|
||||
* Vite (由 `create_react_app` 模板提供)
|
||||
* pnpm (包管理器)
|
||||
* axios (HTTP 请求)
|
||||
* react-router-dom (路由)
|
||||
|
||||
Reference in New Issue
Block a user