amazon-web-services - 如何在实例中获取 AWS OpsWorks 实例 ID?
问题描述
以下是获取我当前实例的 OpsWorks 实例 ID 的方法:
ec2_instance_id=$(ec2-metadata -i)
aws opsworks describe-stacks ---> returns all the stacks
iterate over all stack_ids from above:
aws opsworks describe-instances --stack-id <stack-id>
iterate over all instances from above:
if ec2_instance_id == instance's ec2 id:
return instance's opsworks id
但是除了这个,有没有办法从一个实例中计算出我们的 OpsWorks id?此信息是否存储在实例本身的任何位置?
每次我登录到一个实例时,它的摘要都会打印如下:
This instance is managed with AWS OpsWorks.
###### OpsWorks Summary ######
Operating System: Amazon Linux AMI release 2018.03
OpsWorks Instance: XXXXXX
OpsWorks Instance ID: XXXXXX
OpsWorks Layers: XXXXXX
OpsWorks Stack: XXXXXX
EC2 Region: XXXXXX
EC2 Availability Zone: XXXXX
EC2 Instance ID: XXXXXX
Public IP: XXXXXXX
Private IP: XXXXXX
VPC ID: XXXXX
Subnet ID: XXXXX
实例中是否有可以找到此信息的文件?
解决方案
在 Amazon Linux 2 上,ID 位于/etc/aws/opsworks/instance-agent.yml
因此你可以得到它:
ops_instance_id=$(sudo grep identity /etc/aws/opsworks/instance-agent.yml | cut -d ' ' -f2)
echo $ops_instance_id
示例输出:
54e0799e-bf86-426f-b08c-06530ca6b914
也许有更简单的方法。我只知道上面的一个。
推荐阅读
- firebase - Flutter / Dart / Firebase - 流返回空列表
- python - 比较表的列并将结果放在另一个表中
- c# - 请求失败。远程服务器返回错误:(401) Unauthorized error while connection to Office365
- azure - 如何通过 REST API 在 Azure Blockchain 工作台中设置当前用户?
- angular - 如何在 Angular 中制作响应式对话框?
- c - 在数组中输入随机数时出错
- robot - 如何在 Pepper 的平板电脑上创建应用程序启动器
- javascript - 如何对里面的元素进行分组
在joint.js 中标记? - wicket - 使用 Wicket 隐藏 fiedset HTML 元素
- ios - Unity IOS 在缺口设备上构建时存在 UI 问题