首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在cloud-config中使用变量

是否可以在cloud-config中使用变量
EN

Stack Overflow用户
提问于 2013-05-14 18:24:59
回答 3查看 8.3K关注 0票数 7

使用cloud init's #cloud-config创建配置文件时,如何使用变量填充值?

在我的特定情况下,我希望自动启动EC2实例作为预先配置的salt助手。Example of salt minion cloud config

假设我想要获取特定的EC2实例id,并将其设置为salt minion的id。

我该如何为每个实例动态设置值呢?

EN

回答 3

Stack Overflow用户

发布于 2014-11-04 22:14:02

在引导命令bootcmd中可以有环境变量$INSTANCE_ID,您可以将其保存以备后用。请参阅http://cloudinit.readthedocs.org/en/latest/topics/examples.html#run-commands-on-first-boot

举个例子,我在下面这样做

代码语言:javascript
复制
#cloud-config
bootcmd:
  - echo $INSTANCE_ID > /hello.txt
票数 4
EN

Stack Overflow用户

发布于 2021-01-19 23:03:42

我见过的最接近可配置变量的是实例元数据。(https://cloudinit.readthedocs.io/en/latest/topics/instancedata.html#)

它说你可以使用:

在instance creation中提供的

  • 用户数据

您可以使用在/run/cloud-init/instance-data.json中创建的数据。

您可以使用YAML cloud-config中的Jinja templates导入此instance data,以获取以下数据:

模板: jinja #cloud-config runcmd:- echo‘分配给实例的EC2公共主机名:{{ ds.meta_data.public_hostname }}’> /tmp/instance_metadata - echo 'EC2可用区:{{ v1.availability_zone }}‘>> /tmp/instance_metadata - curl -X POST -d’{“主机名”:"{{ds.meta_data.public_hostname }}",“可用区”:"{{ v1.availability_zone }}"}‘https://example.com

但是我不太确定您是如何创建/run/cloud-init/instance-data.json文件的。

这个CoreOS issue建议,如果您将变量放入/etc/environment中,则可以使用这些变量。

例如,我知道使用了一些变量,如$MIRROR $RELEASE$INSTANCE_ID用于phone_home模块。

票数 2
EN

Stack Overflow用户

发布于 2013-12-17 03:05:51

尝试使用ec2metadata工具(只查询EC2元数据)。假设将以下内容放入您的实例userdata中:

代码语言:javascript
复制
wget http://s3.amazonaws.com/ec2metadata/ec2-metadata
chmod u+x ec2-metadata
# The following gives you the instance id and you can pass it to your salt minion config
ec2-metadata -i

有关ec2-元数据脚本here的更多信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16540730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档