前言

之前手动开到的免费机被我玩炸了,但是救砖没能救回来,初步猜测是因为我用收费机dd到免费机导致不能正常引导。

折腾了太久还是没弄好,怒删之。重新抢吧。

重新抢到当然不能再手刷肝了,要用魔法打败魔法。

最初是想在浏览器用控制台刷,但是效率不是那么好,电脑也不能关。

搜索了一下相关内容,找到了使用API开通机器的内容。

研究了好一会,明白了。

官方文档:https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.1.1/oci_cli_docs/cmdref/compute/instance/launch.html

具体操作

大致过程

1 安装oci-cli工具
2 到oracle后台查看并记下ocid
3 记下要开通的机器参数(API调用)
4 配置oci工具
5 用oci申请开通机器
6 将5写成脚本循环定时执行

1 安装oci-cli工具

  1. bash-c"$(curl –L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

一路回车即可,默认安装在/root/bin目录
===> Modify profile to update your $PATH and enable shell/tab completion now? (Y/n):
出现如上显示时输入y回车,会自动帮你添加环境变量。

安装完成后可以使用oci -v查看是否安装成功
【脚本】使用oci-cli调用API刷甲骨文Oracle免费机器

2 到oracle后台查看并记下ocid

甲骨文后台=>身份>>用户

可以看到有两个用户,一个是你注册邮箱的用户,一个是oracle开头一长串的用户,选择邮箱的那个用户,复制ocid

【脚本】使用oci-cli调用API刷甲骨文Oracle免费机器

如图所示,箭头所指即为ocid。先记录下来或者别关闭网页,后面要用。

另外还需要一个租户ocid

操作同用户ocid,但页面在https://cloud.oracle.com/tenancy

3 记下要开通的机器参数(API调用)

打开甲骨文创建机器的页面,填写好机器信息。

F12打开控制台

点击创建

【脚本】使用oci-cli调用API刷甲骨文Oracle免费机器

找到instances

右侧就是你创建机器的信息

  • availabilityDomain #可用性域 我的是韩国(ppuW:AP-SEOUL-1-AD-1)
  • compartmentId # tenancyOCID
  • assignPublicIp # 公网IP true
  • subnetId # 子网
  • displayName # 实例名,留空让它默认就好,也可指定
  • ssh_authorized_keys #SSH秘钥,需要填写你自己的
  • shape # 实例配置 免费的就是"VM.Standard.E2.1.Micro"
  • imageId # 镜像 Ubuntu 18.04 Minimal "ocid1.image.oc1.ap-seoul-1.aaaaaaaarhyekvffvcfihyh732bdqjprqgww2rlnytqeyqssmm347czaaneq"

4 配置cli

  1. oci setup config

【脚本】使用oci-cli调用API刷甲骨文Oracle免费机器
如图配置,后面一路回车即可

复制生成的公钥

  1. cat/root/.oci/oci_api_key_public.pem

复制终端展示出来的内容

添加到甲骨文后台

甲骨文后台=>身份>>用户>>用户详细信息>>API秘钥>>添加公共秘钥

填写上面复制的公钥内容,点击添加即可。

检查oci配置是否正确

  1. oci iam availability-domain list

如果没有报错,查看返回的信息,检查前面是否有输错。

5 用oci申请开通机器

  1. oci compute instance launch--availability-domain ppuW:AP-SEOUL-1-AD-1--image-id ocid1.image.oc1.ap-seoul-1.aaaaaaaa.....--subnet-id ocid1.subnet.oc1.ap-seoul-1.aaaaaaaa.....--shape VM.Standard.E2.1.Micro--assign-public-iptrue--metadata'{"ssh_authorized_keys": "ssh-rsa xxxxxxxxxxxxxxxxx填你自己的"}'--compartment-id ocid1.tenancy.oc1..aaaaaaaa......

返回了
**ServiceError:
{

  1. "code":"InternalError",
  2. "message":"Out of host capacity.",
  3. "opc-request-id":"XXXXXXXXX",
  4. "status":500

}**

熟悉的Out of host capacity.

说明和我们网页手动点是一样的了

6 将5写成脚本循环定时执行

先将一长串的oci命令写到/root/oracle.sh

  1. crontabe

到最底下添加

  1. */2 * * * * bash /root/oracle.sh

表示每隔两分钟执行一遍bash /root/oracle.sh

后言

昨晚在VPS上挂着刷了一晚上,刷到了一台,美滋滋。就这样