ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

mlx-community/BTL-4-OptiQ-4bit性能基准测试:本地部署vs云端服务,谁更适合开发者?

mlx-community/BTL-4-OptiQ-4bit性能基准测试:本地部署vs云端服务,谁更适合开发者?

3种运行oci-arm-host-capacity的方法:本地Cron、GitHub Actions与Web服务器部署

【免费下载链接】oci-arm-host-capacityThis script allows to bypass Oracle Cloud Infrastructure 'Out of host capacity' error immediately when additional OCI capacity will appear in your Home Region / Availability domain.项目地址: https://gitcode.com/gh_mirrors/oc/oci-arm-host-capacity

oci-arm-host-capacity是一款专为解决Oracle Cloud Infrastructure (OCI) "Out of host capacity"错误设计的实用工具,能帮助用户在家庭区域或可用域出现额外容量时立即自动部署实例。本文将详细介绍三种高效运行该工具的方法,让你轻松获取Oracle Cloud免费的4核ARM CPU和24GB内存资源。

准备工作:环境配置与依赖安装

在开始部署之前,需要完成基础环境配置和依赖安装,这是确保工具正常运行的前提条件。

系统要求与依赖项

oci-arm-host-capacity需要PHP 7.4至8.3版本以及Composer包管理器支持。首先确保你的系统已安装这些依赖:

# 检查PHP版本 php -v # 检查Composer是否安装 composer --version

获取项目代码

通过以下命令克隆项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/oc/oci-arm-host-capacity cd oci-arm-host-capacity

安装依赖包

使用Composer安装项目所需的依赖库:

composer install

配置环境变量

复制环境变量示例文件并根据你的OCI账户信息进行修改:

cp .env.example .env

编辑.env文件,填写必要的OCI配置信息,包括区域、用户ID、租户ID、密钥指纹、私钥路径等关键参数。配置文件结构如下(部分关键参数):

OCI_REGION=eu-frankfurt-1 OCI_USER_ID=ocid1.user.oc1..aaaaaaaax72***kd3q OCI_TENANCY_ID=ocid1.tenancy.oc1..aaaaaaaakpx***qmpa OCI_KEY_FINGERPRINT=b3:a5:90:***:b0:8d:1c OCI_PRIVATE_KEY_FILENAME="/path/to/oracleidentitycloudservice_***.pem" OCI_SUBNET_ID=ocid1.subnet.oc1.eu-frankfurt-1.aaaaaaaaahbb***faq OCI_IMAGE_ID=ocid1.image.oc1.eu-frankfurt-1.aaaaaaaa23z***v6wa OCI_SSH_PUBLIC_KEY="ssh-ed25519 AAAAC3N***o2U user@example.com"

图:OCI配置文件预览,包含各种必要的参数设置

方法一:本地Cron定时任务部署

对于拥有持续运行的本地服务器或个人电脑的用户,使用Cron定时任务是最简单直接的部署方式。

设置Cron作业

  1. 创建日志文件并设置适当权限:
touch /path/to/oci-arm-host-capacity/oci.log chmod 777 /path/to/oci-arm-host-capacity/oci.log
  1. 获取PHP可执行文件路径:
which php

通常输出为/usr/bin/php

  1. 编辑Cron任务:
EDITOR=nano crontab -e
  1. 添加以下行以每分钟执行一次脚本:
* * * * * /usr/bin/php /path/to/oci-arm-host-capacity/index.php >> /path/to/oci-arm-host-capacity/oci.log
  1. 保存并退出编辑器(在nano中按F2,然后按Y确认,最后按Enter)。

验证Cron任务

检查Cron任务是否成功添加:

crontab -l

观察日志文件确认脚本是否正常运行:

tail -f /path/to/oci-arm-host-capacity/oci.log

成功运行时,日志会显示类似以下的输出:

图:脚本成功运行时的输出信息,显示实例创建详情

方法二:GitHub Actions自动化部署

利用GitHub Actions可以实现云端自动化运行,无需本地服务器持续在线,特别适合没有长期运行设备的用户。

配置GitHub仓库

  1. Fork项目仓库到你的GitHub账户
  2. 在仓库设置中添加必要的Secrets(与.env文件中的参数对应):

图:在GitHub仓库设置中添加必要的OCI配置密钥

需要添加的主要Secrets包括:

  • OCI_REGION
  • OCI_USER_ID
  • OCI_TENANCY_ID
  • OCI_KEY_FINGERPRINT
  • OCI_PRIVATE_KEY_FILENAME(指向可公开访问的私钥URL)
  • OCI_SUBNET_ID
  • OCI_IMAGE_ID
  • OCI_SSH_PUBLIC_KEY等

设置工作流文件

创建或修改.github/workflows/periodic.yml文件,配置定时任务:

name: OCI Capacity Check on: schedule: - cron: '*/15 * * * *' # 每15分钟运行一次 workflow_dispatch: # 允许手动触发 jobs: check-capacity: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up PHP uses: shivammathur/setup-php@v2 with: php-version: '8.1' - name: Install dependencies run: composer install - name: Run capacity check script env: OCI_REGION: ${{ secrets.OCI_REGION }} OCI_USER_ID: ${{ secrets.OCI_USER_ID }} OCI_TENANCY_ID: ${{ secrets.OCI_TENANCY_ID }} OCI_KEY_FINGERPRINT: ${{ secrets.OCI_KEY_FINGERPRINT }} OCI_PRIVATE_KEY_FILENAME: ${{ secrets.OCI_PRIVATE_KEY_FILENAME }} OCI_SUBNET_ID: ${{ secrets.OCI_SUBNET_ID }} OCI_IMAGE_ID: ${{ secrets.OCI_IMAGE_ID }} OCI_SSH_PUBLIC_KEY: ${{ secrets.OCI_SSH_PUBLIC_KEY }} OCI_OCPUS: ${{ secrets.OCI_OCPUS }} OCI_MEMORY_IN_GBS: ${{ secrets.OCI_MEMORY_IN_GBS }} OCI_SHAPE: ${{ secrets.OCI_SHAPE }} OCI_MAX_INSTANCES: ${{ secrets.OCI_MAX_INSTANCES }} run: php index.php

监控工作流执行

提交工作流文件后,在GitHub仓库的Actions标签页中可以查看任务执行情况:

图:GitHub Actions工作流执行状态和结果

⚠️ 注意:根据GitHub使用条款,避免设置过于频繁的执行间隔,建议至少15分钟以上,以免违反GitHub Actions使用政策。

方法三:Web服务器部署

如果你已经拥有运行中的Web服务器,可以将工具部署为Web应用,通过HTTP请求触发执行。

服务器配置

  1. 将项目文件复制到Web服务器目录:
cp -r oci-arm-host-capacity /var/www/html/
  1. 设置适当的文件权限:
chown -R www-data:www-data /var/www/html/oci-arm-host-capacity chmod -R 755 /var/www/html/oci-arm-host-capacity
  1. 配置Web服务器(以Nginx为例):
server { listen 80; server_name your-domain.com; root /var/www/html; index index.php; location /oci-arm-host-capacity { try_files $uri $uri/ /oci-arm-host-capacity/index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } }

触发执行方式

部署完成后,可以通过以下方式触发脚本执行:

  1. 直接访问URL:
http://your-domain.com/oci-arm-host-capacity/index.php
  1. 使用Curl命令:
curl http://your-domain.com/oci-arm-host-capacity/index.php
  1. 设置定时任务调用URL:
* * * * * curl http://your-domain.com/oci-arm-host-capacity/index.php >> /path/to/oci.log

查看执行结果

可以通过访问日志文件或直接查看网页输出来确认执行结果:

图:通过Web服务器执行脚本后的输出结果

三种部署方法对比与选择建议

部署方法优点缺点适用场景
本地Cron配置简单,完全控制,无外部依赖需要本地设备持续运行有长期开机的电脑或服务器
GitHub Actions无需本地设备,云端运行,易于管理受GitHub使用限制,配置相对复杂无长期运行设备,熟悉GitHub
Web服务器可通过网络随时访问,适合多用户需要维护Web服务器,有安全风险已有Web服务器,需要远程访问

选择建议:

  • 个人用户且有持续运行的电脑:优先选择本地Cron方法
  • 熟悉GitHub且需要免维护方案:选择GitHub Actions
  • 已有Web服务器且需要远程访问:选择Web服务器部署

常见问题解决与注意事项

权限问题

如果遇到权限错误,确保日志文件和私钥文件有正确的访问权限:

chmod 777 /path/to/oci.log chmod 600 /path/to/private-key.pem

配置验证

执行以下命令验证配置是否正确:

php index.php

如果配置正确但遇到"Out of host capacity"错误,属于正常现象,工具会持续尝试直到成功。

安全注意事项

  • 不要将包含敏感信息的.env文件提交到代码仓库
  • 私钥文件应设置严格的访问权限
  • GitHub Secrets应定期轮换
  • Web部署时建议添加访问控制或IP限制

实例创建后的操作

成功创建实例后,可以通过OCI控制台为实例分配公网IP:

图:在OCI控制台中为新创建的实例分配公网IP地址

然后使用SSH连接到实例:

ssh -i ~/.ssh/id_rsa opc@instance-public-ip

总结

oci-arm-host-capacity是获取Oracle Cloud免费ARM资源的强大工具,通过本文介绍的三种部署方法——本地Cron、GitHub Actions和Web服务器部署,你可以根据自己的实际情况选择最适合的方案。无论选择哪种方法,正确配置环境变量和定期监控执行状态都是成功的关键。希望本文能帮助你顺利获取并使用Oracle Cloud的免费ARM资源!

【免费下载链接】oci-arm-host-capacityThis script allows to bypass Oracle Cloud Infrastructure 'Out of host capacity' error immediately when additional OCI capacity will appear in your Home Region / Availability domain.项目地址: https://gitcode.com/gh_mirrors/oc/oci-arm-host-capacity

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表