前言
前面我们给大家介绍了怎么申请甲骨文的免费VPS,除了原来已有的 Always Free
即永久免费的小鸡以外,今年甲骨文又推出了另外一种架构的VPS即 VM.Standard.A1.Flex 就是大家常说的 ARM 。由于这个机器配置特别高(4OCPU/24 GB内存/200GB硬盘/4GB带宽),从而导致了供不应求,除了个别冷门区域,想手动开到几乎不可能,这也就有了今天要给大家介绍的利用OCI脚本来刷ARM的机器,不过提前说一下,此方法有可能会被甲骨文警告甚至封号,所以在使用前请三思而行。
如果你还不知道怎么获取甲骨文的免费VPS,请看以前的文章: http://oracle.com/cn/cloud/free
下面开始给大家介绍下怎么样利用OCI脚本来刷取甲骨文的免费ARM VPS。
项目地址: https://github.com/niege365/oracle_arm (感谢这位大佬的无私分享)
1、安装OCI
SSH登录VPS后输入下方的一键安装命令,回车。
bash -c "$(curl –L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
然后遇到提示一路回车,最后再输入命令 exec -l $SHELL
重启shell(切记一定要重启shell),可以使用 oci -v
命令查看是否安装成功,如果返回版本号则说明安装成功,否则就再次执行此命令安装一遍试试。
2、获取甲骨文OCID
在配置OCI的过程中我们需要用到甲骨文的用户OCID和租户OCID,登录甲骨文后台后依照下图中的指引操作即可,然后将获取的OCID保存好后面要用到。
3、配置OCI
安装成功OCI后,输入下面的命令开始配置OCI:
oci setup config
接下来根据提示,按部就班走完整个过程即可。
这里把甲骨文对应的区域序号贴一下,我也记录一下,顺便水点字数。
1: ap-chiyoda-1
2: ap-chuncheon-1
3: ap-hyderabad-1
4: ap-ibaraki-1
5: ap-melbourne-1,
6: ap-mumbai-1
7: ap-osaka-1
8: ap-seoul-1
9: ap-singapore-1
10: ap-sydney-1,
11: ap-tokyo-1
12: ca-montreal-1
13: ca-toronto-1
14: eu-amsterdam-1
15: eu-frankfurt-1,
16: eu-marseille-1
17: eu-zurich-1
18: il-jerusalem-1
19: me-dubai-1
20: me-jeddah-1,
21: sa-santiago-1
22: sa-saopaulo-1
23: sa-vinhedo-1
24: uk-cardiff-1
25: uk-gov-cardiff-1,
26: uk-gov-london-1
27: uk-london-1
28: us-ashburn-1
29: us-gov-ashburn-1
30: us-gov-chicago-1,
31: us-gov-phoenix-1
32: us-langley-1
33: us-luke-1
34: us-phoenix-1
35: us-sanjose-1
接下来,把复制出来的密钥添加到甲骨文后台API密钥中【甲骨文后台=>用户设置>>资源>>API秘钥>>添加API秘钥】,见下图:
至此,就已经配置好了OCI。
4、获取main.tf配置文件
为了能够自动获取创建实例的配置,我们需要先在甲骨文后台创建一次实例,并将其另存为堆栈后下载配置文件main.tf。
和创建永久免费实例一样操作即可,只不过我们将配置修改为 VM.Standard.A1.Flex
就行,最后点击 另存为堆栈
按钮。当然,你可以顺便点一下创建,万一成功了呢,就不用费事了😂。看下图:
接下来按照下图操作创建堆栈,第三步勾选运行应用,这时应用会运行一次。
运行结束后点击 下载 Terraform 配置
,解压压缩包后,就会得到我们需要的main.tf了,这个文件里记录着你开机所需要的信息。
5、下载配置脚本
- 首先我们先拉取脚本,并经行配置
在SSH中输入下方的命令:
git clone https://github.com/n0thing2speak/oracle_arm
cd oracle_arm
pip3 install -r requirements.txt
- 修改脚本中的Telegram推送参数
输入命令:
vi oracle_arm.py
或者你也可以在FinalShell中打开 oracle_arm.py 文件,将下面的参数按照注释修改即可
USE_TG = False # 如果启用tg推送 要设置为True
TG_BOT_TOKEN = '' # 通过 @BotFather 申请获得,示例:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw
TG_USER_ID = '' # 用户、群组或频道 ID,示例:129xxx206 ,
USE_TG=True
其他的token和id自行配置自己的,id可以点击这个机器人获取
- 上传
main.tf
文件到 oracle_arm 目录 - 运行一遍脚本测试一下
python3 oracle_arm.py main.tf
稍等一下看返回结果,如果显示抢注中,xxxxx
就说明脚本没有问题。
6、运行脚本
接下来就可以输入下面的命令开始刷鸡🐔
nohup python3 oracle_arm.py main.tf >> /dev/null 2>&1 &
如果想保存一个日志,可以运行下面这个命令运行:
nohup python3 oracle_arm.py main.tf > oracle_arm.log 2>&1 &
如果刷🐔成功,脚本会自动停止运行。
最后
至此,经过上述的操作后,自动刷🐔脚本就搞定了,接下来我们只要盯着接收通知的BOT就可以了,脚本会自动设置SSH登录密码,并显示公网IP,你不用登录甲骨文后台就可以操作了。
切记此脚本有概率会导致封号!
切记此脚本有概率会导致封号!
切记此脚本有概率会导致封号!
手动创建了甲骨文ARM:滑稽:
:真棒:挺好,现在手动能开的不多
我操作了一波日志输入不到那个里面很奇怪
:汗:按照上面的步骤操作应该不会有问题,再仔细看看哪里出错了
昨天晚上抢到了ARM 4C24G的了
:喜欢:恭喜,恭喜
oracle_arm.py 文件路径在哪啊 ?
在你git下来的oracle_arm目录,如果你是登录后直接git的,应该就在/root/cd oracle_arm目录里
大神, pip3 install -r requirements.txt 的时候出现WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead. 提示,执行完毕显示:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-igoo2dys/cryptography/
后面python3 oracle_arm.py main.tf,提示: File "oracle_arm.py", line 1, in
import oci
ModuleNotFoundError: No module named 'oci'
求大神指点一二!抱拳了
和上面的一样,应该是oci的配置有问题,仔细排查一下
日志怎么查?
日志文件是oracle_arm.log,可以在SSH下用cat oracle_arm.log命令查看
root@oracle-04:~/oracle_arm# python3 oracle_arm.py main.tf
Traceback (most recent call last):
File "oracle_arm.py", line 1, in
import oci
ModuleNotFoundError: No module named 'oci'
这个应该是oci的配置有问题,仔细排查一下
运行一遍脚本测试一下 python3 oracle_arm.py main.tf
测试正常,测试怎么一直运行,怎么停?
不应该啊。测试这个就是只运行一次啊
要运行nohup python3 oracle_arm.py main.tf >> /dev/null 2>&1 &
才会一直刷
大佬,我的vps运行python3 oracle_arm.py main.tf这个指令后报错了一堆,这是啥原因啊
[root@test1 oracle_arm]# python3 oracle_arm.py main.tf
parser cfg
filepath main.tf
Telegram Bot 推送成功
创建ssh登陆密码:8VCRMxnQf4uob
❌发生错误,脚本停止!请检查参数或github反馈/查找 相关问题:{'opc-request-id': 'D97587766D7B46B193365E18B6D3C879/B0ACF40D3349922DF338E53226487ACB/69243CB9FA83A87BE3F72276B41B4004', 'code': 'InvalidParameter', 'message': 'Invalid DNS label orcale_wukong', 'status': 400}
Telegram Bot 推送成功
抢注中,已经经过:1尝试
Traceback (most recent call last):
File "oracle_arm.py", line 324, in
ins.create()
File "oracle_arm.py", line 246, in create
raise e
File "oracle_arm.py", line 230, in create
ins = self.lunch_instance() # 应该返回具体的成功的数据
File "oracle_arm.py", line 311, in lunch_instance
is_pv_encryption_in_transit_enabled=True,
File "/usr/local/lib/python3.6/site-packages/oci/core/compute_client.py", line 4241, in launch_instance
response_type="Instance")
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 454, in call_api
response = self.request(request)
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 583, in request
self.raise_service_error(request, response, service_code, message)
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 745, in raise_service_error
original_request=request)
oci.exceptions.ServiceError: {'opc-request-id': 'D97587766D7B46B193365E18B6D3C879/B0ACF40D3349922DF338E53226487ACB/69243CB9FA83A87BE3F72276B41B4004', 'code': 'InvalidParameter', 'message': 'Invalid DNS label orcale_wukong', 'status': 400}
大概是配置文件错误。你具体排查下。
我也是半桶水,太复杂的也不太懂,抱歉啊