📝 文章摘要
文章介绍了一套基于 GitHub Actions 的 Oracle ARM 云端自动抢机方案,无需本地挂机。核心步骤包括新建私有仓库、配置 7 项 Secrets 凭证、部署 workflow 脚本,并通过手动或定时任务每 15 分钟尝试创建实例。脚本默认抢 Ubuntu 24.04、4C24G 配置,45 分钟自动退出,成功后可使用一键脚本搭建节点。

Oracle ARM, 抢机脚本, GitHub Actions, OCI配置, 自动部署, Ubuntu 24.04, API密钥, 子网ID, SSH公钥, 定时任务, 防封策略, 私有仓库

很多兄弟用纯国内环境成功下号后,卡在了“配置不足”这一步。今天就把坑填上,分享这套完全不需要本地挂机的 GitHub Actions 自动化抢机脚本。

一、纯云端抢机配置步骤

  1. 新建仓库: 在自己的 GitHub 账号下创建一个新的私有仓库 (Private Repository)。
  2. 配置安全环境变量 (Secrets): 进入仓库的 Settings → Secrets and variables → Actions,点击 New repository secret,严格按照代码里的变量名,逐一添加以下 7 个凭证:
    • TENANCY_OCID (Oracle 租户 ID)
    • USER_OCID (Oracle 用户 ID)
    • REGION (服务器所在区域,例如 us-phoenix-1)
    • FINGERPRINT (Oracle API 密钥指纹)
    • PRIVATE_KEY (Oracle API 私钥的完整文本)
    • SUBNET_ID (目标虚拟云网络中的子网 ID)
    • USER_SSH_PUB_KEY (自己电脑的SSH公钥,必须配置正确,否则抢到机器也无法通过 SSH 登录)
  3. 部署代码: 在仓库根目录下创建 .github/workflows/ 文件夹,新建一个 .yml 文件(例如 sniper.yml),将下边的代码完整粘贴进去并提交。
  4. 触发运行: 代码中配置了 workflow_dispatch,可以直接到 GitHub 的 Actions 面板中,手动点击 Run workflow 来启动脚本;同时代码也配置了 cron,会自动每 15 分钟在后台尝试一次,45分钟超时自动安全退出,极致防封。

注:脚本默认抢的是 Ubuntu 24.04。如果想安装其他系统,修改代码第 40 行的查询条件即可。

二、完整 GitHub Actions 源码

点击展开查看 sniper.yml 源码:

PHP
name: Oracle ARM Instance Sniper Templateon: workflow_dispatch: schedule: - cron: '*/15 * * * *'jobs: sniper: name: ARM Instance Sniper runs-on: ubuntu-latest timeout-minutes: 60 concurrency: group: ${{ github.workflow }} cancel-in-progress: false env: OCI_TENANCY: ${{ secrets.TENANCY_OCID }} OCI_REGION: ${{ secrets.REGION }} SUBNET_ID: ${{ secrets.SUBNET_ID }} SSH_PUB_KEY: ${{ secrets.USER_SSH_PUB_KEY }} steps: - name: Install OCI CLI run: | curl -L -O [https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh](https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh) chmod +x install.sh ./install.sh --accept-all-defaults echo "/home/runner/bin" >> $GITHUB_PATH - name: Setup OCI Config env: OCI_USER: ${{ secrets.USER_OCID }} OCI_FP: ${{ secrets.FINGERPRINT }} OCI_PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} run: | mkdir -p ~/.oci cat > ~/.oci/config < ~/.oci/key.pem chmod 600 ~/.oci/key.pem ~/.oci/config - name: Fixed-Key Sentry Loop run: | export OCI_CLI_SUPPRESS_FILE_PERMISSIONS_WARNING=True START_TIME=$(date +%s) mkdir -p ~/.ssh echo "${SSH_PUB_KEY}" > ~/.ssh/id_rsa_oracle.pub AD_LIST=$(oci iam availability-domain list --compartment-id "${OCI_TENANCY}" --query "data[*].name" --raw-output | jq -r '.[]' | sort) IMAGE_ID=$(oci compute image list --compartment-id "${OCI_TENANCY}" --operating-system "Canonical Ubuntu" --operating-system-version "24.04" --shape "VM.Standard.A1.Flex" --query 'data[0].id' --raw-output) echo "=== Oracle ARM Sniper Template V1.0 ===" echo "[AD] Target ADs: $(echo $AD_LIST | tr '\n' ' ')" echo "[IMG] Target Image: ${IMAGE_ID}" while true; do CURRENT_TIME=$(date +%s) ELAPSED=$(( CURRENT_TIME - START_TIME )) if [ $ELAPSED -gt 2700 ]; then echo "[TIMEOUT] Reached 45m limit. Exiting safely." exit 0 fi for ad in $AD_LIST; do echo "[TRY] $ad | Elapsed: ${ELAPSED}s" if oci compute instance launch \ --availability-domain "$ad" \ --compartment-id "${OCI_TENANCY}" \ --shape "VM.Standard.A1.Flex" \ --shape-config '{"ocpus":4,"memoryInGBs":24}' \ --image-id "$IMAGE_ID" \ --subnet-id "${SUBNET_ID}" \ --ssh-authorized-keys-file ~/.ssh/id_rsa_oracle.pub \ --assign-public-ip true \ --display-name "SNIPER-$(date +%m%d_%H%M)" \ --wait-for-state RUNNING --max-wait-seconds 1 \ >/dev/null 2>/dev/null; then echo "[SUCCESS] ARM 4C24G instance created in $ad" exit 0 else echo "$ad: No stock" fi sleep 5 done sleep 30 done五、机器到手,一步到位搭建节点抢到机器后如何起飞?附送一个非常稳的“甬哥VPS专用一键脚本”,直接跑就行:bash <(wget -qO- [https://raw.githubusercontent.com/yonggekkk/sing-box-yg/main/sb.sh](https://raw.githubusercontent.com/yonggekkk/sing-box-yg/main/sb.sh))祝大家早日用上免费的 2核 12G 神机!截至至今日,4核 24G 神机未收费!![3|690x202](upload://eUuDN36MYhZl37U7Ah47XCtEXnS.png)
本文最后更新于2026年7月10日,若涉及的内容可能已经失效,直接留言反馈补链即可,我们会处理,谢谢
声明:本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿用于任何商业目的与商业用途,如需商用请支持正版!如亲下载后改变其用途与使用方式,与本站无任何关系,本站已经进行告知义务!我们只做安全认证测试如果资源侵犯了您的版权利益,请联系站长邮箱:17606723350@163.com