Ubuntu/Linux Terraform oci 一键脚本抢购​ 甲骨文Oracle VM.Standard.A1.Flex​ 4个OCPU,24 GB 内存的vps

81 篇文章 0 订阅
25 篇文章 0 订阅

Oracle甲骨文的机器被撸爆了,导致小伙伴都开不到免费的机器,于是写个脚本,放到服务器自己抢,资源出来基本就能开到。此脚本,是利用Terraform调用API来执行任务,下面简单的说明一下。

甲骨文 ARM,大家都用了有阵子了,总结起来就是两个字“真香”,不过日本和韩国线路已经不堪重负。

因为一机难求,所以大家都用上了脚本,又因为用脚本的人太多,有很多刷机的童鞋收到了警告的邮件,这就很矛盾了,如果你不刷,是肯定抢不到机器的,但是刷了,又怕被警告,进而有封号的风险。唯一比较稳妥的方法就是你把时间调整的稍微长一点,这样可能会好点。

甲骨文在几天前在选配实列中提供了一个新的选项VM.Standard.A1.Flex。根据用户协议,可以自由分配 4个OCPU,24 GB 内存,最大200GB空间容量和4GB的带宽。新开出的免费机型配置不可思议地高,令人难以置信。据了解,该机型仅部分区域可开通。它不占用此前开出的2台免费服务器的配额。但是,因为抢购火爆,所以一机难求。如果你不用个脚本跑一跑估计很难抢到vps。

一、安装terraform

官网地址自行安装:

 

curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform

二、生成main.tf

1、创建实例,创建的时候我们选择系统:ubuntu20.04(不能选带后缀的精简版),VM.Standard.A1.Flex:4C 24G,并粘贴密匙。这个过程跟我们正常创建实例是一样。

例子:

 

在所有信息都填写完毕后,选择 另存为堆栈 。堆栈信息、配置变量,全都默认;复查,选中下方的“运行”。最后点击创建,堆栈会自动运行一次。

2、我们点击下载 Terraform 配置,会得到一个压缩包。解压后,会有main.tf,里面的信息就是我们后面需要用到的。

 

三、terraform环境初始化

创建terraform-learning文件夹
cd /opt/
mkdir terraform-learning && cd terraform-learning

把下载好的main.tf 放在terraform-learning文件夹里

terraform init

四、下载安装oci工具

命令:

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回车,会自动帮你添加环境变量。之后又是一路回车,出现如下提示表示安装成功。

===> Modify profile to update your $PATH and enable shell/tab completion now? (Y/n): y

===> Enter a path to an rc file to update (file will be created if it does not exist) (leave blank to use '/root/.bashrc'):
-- Backed up '/root/.bashrc' to '/root/.bashrc.backup'
-- Tab completion set up complete.
-- If tab completion is not activated, verify that '/root/.bashrc' is sourced by your shell.
--
-- ** Run `exec -l $SHELL` to restart your shell. **
--
-- Installation successful.
-- Run the CLI with /root/bin/oci --help

 注:如果返回信息显示没有找到 oci ,那是因为安装后,变量不会立即反映出来,所以我们重新加载一下

 四、配置cli

1、输入如下代码开始配置,配置的路径默认在root目录

oci setup config

2、具体配置看下面

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): #这里选择区域

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

If you haven't already uploaded your API Signing public key through the
 console, follow the instructions on the page linked below in the section

 'How to upload the public key':

 https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2

3、复制生成的公钥

cat /root/.oci/oci_api_key_public.pem

4、把展示出来的内容复制下来。并且添加到,甲骨文后台=>用户设置>>资源>>API秘钥>>添加API秘钥

通过cat /root/.oci/oci_api_key_public.pem这条命了获取,把获取到的公钥,完整的粘贴上去,点击添加。

5、验证密钥是否有效:

oci iam availability-domain list

 

正确返回的结果,证明添加密钥有效。

6 、验证脚本

main.tf 完善好之后接下来就开始创建任务

cd /opt/terraform-learning/

terraform apply

执行完上面命令之后,会提示输入yes:

 

脚本和API配置就结束了,可以看到API返回Error Message: Out of host capacity,提示主机容量不足,接下来,我们利用shell,不停的请求这个API接口,创建主机。

五、shell脚本,服务器开机自动执行任务

vi terraform.sh

把如下代码复制进去:

#!/bin/bash

path='/opt/terraform-learning/'

cd $path &&
while true
do
    echo 'yes' | terraform apply
    sleep 10s
done
root@instance-20220220-0010:/opt/terraform-learning# 

给Shell脚本赋予执行权限:

chmod +x terraform.sh


六、开机自启脚本

vi terraform_start.sh

#!/bin/sh
nohup /opt/terraform-learning/terraform.sh >> /opt/terraform-learning/terraform.log 2>&1  &
使用我之前写的开机自启博客来开启吧,这里就不多说了!

ubuntu系统服务器利用systemctl命令实现开机自启服务一键脚本启动https://blog.csdn.net/wto882dim/article/details/123036731

结束脚本只能通过kill杀死进程:
pkill terraform

注意:

脚本执行之后,会一直调用API创建实例,可以通过甲骨文控制台的限制策略,限制一下资源,以免一直创建,方法如下:

登录oracle控制台

set compute-core quota standard-a1-core-count to 8 in compartment 你的帐号用户名 where request.region = ap-tokyo-1
 

 

这条策略的意思是,限制我用户,在东京区域,只能创建最多8个cpu的资源,然后,在限制使用量这里,输入Cores for Standard.A1 based VM and BM Instances查询一下,可用数量,如下图就代表限制成功。 

大功告成!!!!!!!!!!!!

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值