Oracle cloud 开放注册账号能申请4c24g的免费云服务器,数据库以及其他的服务,1c1g的x86服务器比较容易申请,但热门的4c24g的Ampere A1类型主机通过网页正常申请根本申请不到,目前网络上流行的抢注方法无外乎两种模式:
- 浏览器插件或脚本或按键精灵,这种方法的问题是控制台超时,还容易被服务器判定非法操作,禁用账号,对于动辄要求稳定运行几天才能完成的操作,显然已经不合适。
- 调用oci命令脚本,这是最安全的模式,因为oci是oracle官方提供,原理是使用oci命令直接申请实例,例如:
oci compute instance launch ....
然而,根据我香港主机测试,这种最多只能做到20秒刷新一次,原因是 oci 命令执行的完整的过程:
- 1、启动、开始连接 oracle cloud
- 2、验证用户合法性
- 3、执行命令
- 4、退出
1,2,4步骤在循环中浪费了大量时间,本文中采用python调用oci api 的模式,一次登录省略多次验证环节,循环执行创建instance命令,刷新速度可以达到3秒/次 当返回instance创建成功时,自动退出。
布署步骤
1、下载oci工具
bash -c "$(curl –L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
默认回车,安装完成后,执行下面命令检查是否成功
oci -v
2、配置oci连接
在oracle cloud控制台上,点击右上角头像=>菜单中选择“用户设置” 复制用户和租户ID
输入
oci setup config
填写正确的用户和租户id
Enter a location for your config [/root/.oci/config]:
Enter a user OCID: #输入你的用户ocid
Enter a tenancy OCID: #输入你租户的用户id
Enter a region by index or name(e.g.
1: ap-chiyoda-1, 2: ap-chuncheon-1, 3: ap-hyderabad-1, 4: ap-melbourne-1, 5: ap-mumbai-1,
6: ap-osaka-1, 7: ap-seoul-1, 8: ap-sydney-1, 9: ap-tokyo-1, 10: ca-montreal-1,
11: ca-toronto-1, 12: eu-amsterdam-1, 13: eu-frankfurt-1, 14: eu-zurich-1, 15: me-dubai-1,
16: me-jeddah-1, 17: sa-santiago-1, 18: sa-saopaulo-1, 19: uk-cardiff-1, 20: uk-gov-cardiff-1,
21: uk-gov-london-1, 22: uk-london-1, 23: us-ashburn-1, 24: us-gov-ashburn-1, 25: us-gov-chicago-1,
26: us-gov-phoenix-1, 27: us-langley-1, 28: us-luke-1, 29: us-phoenix-1, 30: us-sanjose-1): 9 #这里选择区域
Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: y #输入y
Enter a directory for your keys to be created [/root/.oci]:
Enter a name for your key [oci_api_key]:
Public key written to: /root/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase):
Private key written to: /root/.oci/oci_api_key.pem
Fingerprint:
Config written to /root/.oci/config
...
复制生成的公钥,获取命令如下:
cat /root/.oci/oci_api_key_public.pem
把展示出来的内容复制下来。并且添加到,甲骨文后台=>用户设置»资源»API秘钥»添加API秘钥
3、python脚本
安装python oci
假设你已经安装好python环境
pip install oci
登录证书
- 新建或使用系统已有的证书,本文直接查看本机已有证书记录下来
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAA......local
修改脚本
下载:
- link
- 修改luanch.py 脚本中的参数
INSTANCE_NAME = 'vps实例名' #你要创建的vps实例名
SUBNET_ID = "网络->虚拟云网络->虚拟云网络详细信息->OCID" #如果是全新用户,先创建一个VNC
compartment_id= <font color=red>"租户id"
ssh_public_key="id_rsa.pub的内容"
运行
执行脚本,当主机申请完成,会自动退出
python ./luanch.py