provirted/provirted

易于管理虚拟化技术,包括KVM、Xen、OpenVZ、Virtuozzo和LXC/LXD,包括统一命令、监控、模板管理等功能。

安装: 1

依赖项: 0

建议者: 0

安全: 0

星星: 5

关注者: 2

分支: 3

开放问题: 0

类型:项目

v1.999.0 2021-11-23 23:55 UTC

This package is auto-updated.

Last update: 2024-09-04 09:35:45 UTC


README

关于

易于管理虚拟化技术,包括KVM、Xen、OpenVZ、Virtuozzo和LXC/LXD,包括统一命令、监控、模板管理等功能。

待办事项

  • 添加确保内存限制的jensuring
  • 对于KVM,只在vzid字段中存储vzid,而不是主机名
    • 看起来我们可以通过使用virt-inspector --no-applications -d来获取基本OS信息(包括主机名)的xml格式输出
  • 在创建代码中添加模板存在检查
  • 检查以破折号开头的密码是否会影响选项解析,以及如果使用双破折号可以解决这个问题
  • 修复 reset-password 命令,添加对Windows的检测,如果不在Windows上则跳过
  • 可能在 update 调用中利用virt-resize代替qemu-img resize
  • 为ip字段添加bash/zsh自动补全建议(除客户端ip外),显示主机服务器上的ip,排除正在使用的ip
  • 在通过exec类型调用传递任何变量周围添加escapeshellarg()调用
  • 修复恢复脚本以支持kvmv2 os.qcow2文件
  • 在GitHub上创建公共网站 https://github.com/provirted/provirted.github.io
  • 添加wiki条目
  • 添加LXD支持 [https://linuxcontainers.cn/lxd/docs/master/](LXD 文档)
  • 添加 self-update 命令以下载最新版本的phar并替换它
  • 添加 install 命令 - 安装先决条件,配置我们的软件设置
  • 添加 config 命令 - 管理各种设置
  • 处理 test 命令以测试vPs或主机
    • test 命令中添加服务器选项以执行各种自我诊断以检查系统的健康和准备情况
    • 添加选项以调整模板测试或客户端vps测试的检查
    • 添加gpt 2tb+测试
    • 添加软件包更新测试
    • 添加代码以尝试ssh,即使没有ping回复
    • 添加可选的syslog/messages检查,以检查DHCP服务器是否从vps收到DHCPACK
  • 去除对本地脚本的依赖

buildebtablesrules run_buildebtables.sh tclimit

create_libvirt_storage_pools.sh vps_get_image.sh vps_kvm_lvmcreate.sh vps_kvm_lvmresize.sh vps_swift_restore.sh

vps_kvm_password_manual.php vps_kvm_setup_password_clear.sh

vps_kvm_screenshot.sh vps_kvm_screenshot_swift.sh vps_refresh_vnc.sh

命令

  • create 创建虚拟机。
  • destroy 销毁虚拟机。
  • enable 启用虚拟机。
  • delete 删除虚拟机。
  • backup 创建虚拟机的备份。
  • restore 从备份恢复虚拟机。
  • stop 停止虚拟机。
  • start 启动虚拟机。
  • restart 重新启动虚拟机。
  • block-smtp 在虚拟机上阻止SMTP。
  • update 更改虚拟机的硬盘、CPU、内存、密码等。
  • reset-password 重置/清除虚拟机的密码。
  • add-ip 向虚拟机添加IP地址。
  • remove-ip 从虚拟机中移除IP地址。
  • cd CD-ROM管理功能
  • 测试 进行各种自我诊断,以检查系统的健康和准备情况。

调试

您可以添加 -v 来增加1级详细程度,并查看正在运行的所有命令,或者第二次添加以同时查看每个命令的输出和退出状态

开发者链接

CLI 框架

  • adhocore/php-cli: PHP 控制台应用程序简化 - 轻松构建出色的控制台应用程序。具有零依赖和自动完成支持。将其视为 PHP CLI 应用程序框架。
  • alecrabbit/php-console-spinner: 用于 * [异步] PHP CLI 应用程序的超灵活彩色旋转器
  • aplus-framework/aplus: Aplus 命令行工具
  • auraphp/Aura.Cli: 命令行界面工具
  • c9s/CLIFramework: PHP 的强大命令行应用程序框架。它是一个可扩展、灵活的组件,您可以在几秒钟内构建基于命令的应用程序!
  • Cilex/Cilex: Cilex,受 Silex 启发的 PHP CLI 脚本轻量级框架
  • clue/reactphp-stdio: 基于 ReactPHP 的异步、事件驱动和 UTF-8 兼容的控制台输入/输出(STDIN,STDOUT)用于真正的交互式 CLI 应用程序。
  • contributte/console: :boom: 最佳最小化控制台(symfony/console)到 Nette 框架(@nette)
  • curruwilla/console-pretty-log: CLI 应用程序的简单且可定制的控制台日志输出。
  • decodelabs/terminus: PHP 的简单 CLI 交互
  • DevAmirul/PHP-MVC-Framework: 一个简单、快速且小巧的 PHP MVC 框架,使您能够使用标准的 MVC 结构和 CLI 命令行工具开发现代应用程序。此框架使用的依赖性尽可能少。受 Laravel 启发。
  • inhere/php-console: 🖥 PHP CLI 应用程序库,提供控制台选项、参数解析、控制台控制器/命令运行、颜色样式、用户交互、格式化信息显示等。一个全面的 PHP 命令行应用程序库。提供控制台选项、参数分析、命令执行、颜色样式输出、用户信息交互,以及特殊格式信息显示
  • JBlond/php-cli: php 命令行 / cli 脚本和着色类
  • JBZoo/Cli: 框架有助于创建复杂的 CLI 应用程序,并为 Symfony/Console、Symfony/Process 提供新的工具。
  • jc21/clitable: PHP 的 CLI 表格输出
  • kristuff/mishell: 用于构建美观 CLI 应用程序和报告的迷你 PHP 库
  • kylekatarnls/simple-cli: 一个简单的命令行框架
  • meklis/console-client: 带有辅助程序的 SSH/Telnet 客户端
  • minicli/minicli: PHP 命令行应用程序的最小化框架
  • mix-php/mix: ☄️ PHP 命令行模式开发框架,支持 Swoole、Swow、WorkerMan、FPM、CLI-Server
  • openai-php/client: ⚡️ OpenAI PHP 是一个增强版的社区维护的 PHP API 客户端,允许您与 OpenAI API 交互。
  • phppkg/cli-markdown: 在控制台终端渲染彩色 Markdown 内容
  • php-school/cli-menu: 🖥 构建美观的 PHP CLI 菜单。简单而强大。表达式 DSL。
  • php-toolkit/cli-utils: 为 php CLI 提供一些有用的实用工具。控制台颜色、CLI 环境、CLI 代码高亮。
  • php-toolkit/pflag: 通用 PHP 命令行标志解析库。
  • php-tui/cli-parser: 类型安全的 CLI 参数解析器
  • php-tui/php-tui: PHP TUI
  • provirted/provirted: 简化对虚拟化技术的管理,包括 KVM、Xen、OpenVZ、Virtuozzo 和 LXC/LXD,包括统一的命令、监控、模板管理以及更多功能。
  • splitbrain/php-cli: PHP 库,用于构建命令行工具
  • symfony/console: 简化创建美观且可测试的命令行界面的过程
  • theofidry/console: 用于创建 CLI 命令或应用的库
  • thephpleague/climate: PHP 终端的最佳朋友。
  • utopia-php/cli: 轻量级且快速的微型 PHP 框架,用于构建 CLI 工具,易于学习。
  • vanilla/garden-cli: 为您的下一个 PHP CLI 脚本提供功能齐全且简单到荒谬的命令行解析器。停止与 getopt() 作战。
  • WebFiori/cli: 用于简化使用 PHP 创建基于命令行的应用程序的类库。

开发笔记/代码

修复 CentOS 6/7 主机 此修复解决了 CentOS 6 和 CentOS 7 服务器上的多个问题

if [ -e /etc/redhat-release ]; then
  rhver="$(cat /etc/redhat-release |sed s#"^.*release \([0-9][^ ]*\).*$"#"\1"#g)"
  rhmajor="$(echo "${rhver}"|cut -c1)"
  if [ ${rhmajor} -lt 7 ]; then
    if [ "$rhver" = "6.108" ]; then
      rhver="6.10";
    fi;
    sed -i "/^mirrorlist/s/^/#/;/^#baseurl/{s/#//;s/mirror.centos.org\/centos\/$releasever/vault.centos.org\/${rhver}/}" /etc/yum.repos.d/*B*;
  fi;
  if [ ${rhmajor} -eq 6 ]; then
    yum install epel-release yum-utils -y;
    yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm -y;
    yum-config-manager --enable remi-php73;
    yum update -y;
  elif [ ${rhmajor} -eq 7 ]; then
    yum install epel-release yum-utils -y;
    yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y;
    yum-config-manager --enable remi-php74;
    yum update -y;
    yum install php74 php74-php-{bcmath,cli,pdo,devel,gd,intl,json,mbstring} \
      php74-php-{opcache,pear,pecl-ev,pecl-event,pecl-eio,pecl-inotify,xz,xml} \
      php74-php-{xmlrpc,sodium,soap,snmp,process,pecl-zip,pecl-xattr} \
      php74-php-{pecl-yaml,pecl-ssh2,mysqlnd,pecl-igbinary,pecl-imagick} -y;
    for i in /opt/remi/php74/root/usr/bin/*; do
      ln -s "$i" /usr/local/bin/;
    done;
  fi;
fi

更新主机

ssh my@mynew php /home/my/scripts/vps/qs_list.php all|grep -v 'Now using' > servers.csv; ssh my@mynew php /home/my/scripts/vps/vps_list.php sshable|grep -v 'Now using' >> servers.csv; tvps;
tsessrun 'cd /root/cpaneldirect && git pull --all && ln -fs /root/cpaneldirect/provirted.phar /usr/local/bin/provirted && php provirted.phar bash --bind provirted.phar --program provirted.phar > /etc/bash_completion.d/provirted_completion && chmod +x /etc/bash_completion.d/provirted_completion && if [ -e /etc/apt ]; then apt-get update &&  apt-get autoremove -y --purge && apt-get dist-upgrade -y && apt-get autoremove -y --purge && apt-get clean; else yum update -y --skip-broken; fi'
tsessrun 'cd /root/cpaneldirect && git pull --all && ln -fs /root/cpaneldirect/provirted.phar /usr/local/bin/provirted && php provirted.phar bash --bind provirted.phar --program provirted.phar > /etc/bash_completion.d/provirted_completion && chmod +x /etc/bash_completion.d/provirted_completion && if [ -e /etc/apt ]; then apt-get update &&  apt-get autoremove -y --purge && apt-get dist-upgrade -y && apt-get autoremove -y --purge && apt-get clean; else yum update -y --skip-broken; fi && if [ "$(php -v|head -n 1|cut -c5)" = 7 ]; then exit; fi;'