基于Ansible的批量管理主机面板

萝莉工坊 7 0

主要解决需要同时管理大量云服务器的问题!

github:https://github.com/sky22333/ansible

基于Flask和React的Ansible Web管理界面,提供主机管理、命令执行、文件传输和Web终端等功能。

功能特性

  • 主机管理:添加、编辑、删除、批量导入主机
  • 主机密码加密存储,提高安全性
  • 命令执行:向选中主机发送命令并查看结果
  • 文件上传:上传文件到选中主机
  • 自定义Playbook执行:编写和执行Ansible Playbook任务
  • Web终端:通过浏览器直接连接到远程主机
  • SFTP管理:浏览和管理远程文件系统
  • 访问日志:记录和查看系统访问情况

安全特性

  • 凭证派生加密:系统使用管理员的用户名和密码派生加密密钥,提供额外的安全层
  • 会话隔离:加密密钥仅在用户登录会话中存在,未登录状态下无法访问加密数据
  • 零本地存储:加密密钥完全不会存储在文件系统中,仅在内存中派生和使用
  • 无默认凭证:系统强制要求设置管理员环境变量,不使用任何默认值或备用方案

Docker快速部署

docker run -d \
  --name ansible \
  -p 5000:5000 \
  -e ANSIBLE_HOST_KEY_CHECKING=False \
  -e ADMIN_USERNAME=admin123 \
  -e ADMIN_PASSWORD=admin123 \
  -v ./ansible:/app/db \
  ghcr.io/sky22333/ansible

默认仅支持HTTPS访问,请自行反代。请务必设置一个强密码

注意事项

  • 环境变量:用户名和密码为ADMIN_USERNAMEADMIN_PASSWORD环境变量
  • 密钥生成:系统完全依赖管理员凭证派生加密密钥,无任何本地密钥文件
  • 密码更改:如果修改了管理员密码,之前加密的数据将无法解密,请在修改密码前备份重要数据
  • 会话限制:加密密钥仅在登录会话中有效,如果服务重启,需要重新登录才能访问加密数据

访问面板

    • 打开浏览器,输入http://IP:5000访问面板<br>默认用户名admin123,默认密码admin123<br>通过环境变量修改用户名和密码。
批量操作支持的命令 示例 说明
文件操作 lscpmvrm 列出、复制、移动和删除文件等等
脚本执行 ./script.sh 执行指定的Shell脚本
远程脚本 bash <(wget -qO- https://github.com/xx/shell/raw/main/xx.sh) 执行指定的远程shell脚本
管道和重定向 echo "Hello, World!" grep "Hello" > output.txt 使用管道和重定向进行数据处理
条件和循环 if [ -f "file.txt" ]; then echo "File exists"; fi 使用条件语句执行相应操作
复杂命令 cd /path/to/directory; ./run_script.sh 组合多个命令,使用分号分隔
环境变量 VAR=value your_command 设置环境变量并执行命令

预览

基于Ansible的批量管理主机面板

 

 

发表评论 取消回复
表情 图片 链接 代码

分享