标签: cloud-init

为什么人们使用Puppet/Chef与Amazon Cloud Formation而不是仅仅使用CloudInit?

我们计划使用非"预烘烤"的AMI EC2实例.即,当它们被旋转时,它们只是AWS linux的安装.我们的引导过程将引入我们需要的各种安装,例如python,tomcat.我们最少有3个实例,最多8个实例.

鉴于这些要求,使用Puppet/Chef是否有用而不是使用Amazon Cloud Formation(CloudInit)?

我能看到的最好的是如果我们使用Puppet,那么我们就会进行声明性编程,这样可以更容易地进行审计,以查看脚本发生了什么.此外,CloudInit有一个16k的脚本大小限制,我们可能会或可能不会遇到.

有没有人从CloudInit转移到Puppet或Chef,因为他们可以在这里回答我的问题?

puppet configuration-management chef-infra cloud-init

83
推荐指数
3
解决办法
3万
查看次数

每次启动EC2实例时,如何运行cloud-init启动脚本?

我有一个基于Amazon Linux AMI运行AMI的EC2实例.与所有此类AMI一样,它支持cloud-init系统,用于根据传递到每个实例的用户数据运行启动脚本.在这种特殊情况下,我的用户数据输入恰好是一个包含几个其他启动脚本的Include文件:

#include
http://s3.amazonaws.com/path/to/script/1
http://s3.amazonaws.com/path/to/script/2
Run Code Online (Sandbox Code Playgroud)

我第一次启动我的实例时,cloud-init启动脚本正确运行.但是,如果我对实例进行软重启(例如,通过运行sudo shutdown -r now),则实例会在不再运行启动脚本的情况下重新启动.如果我进入系统日志,我可以看到:

Running cloud-init user-scripts
user-scripts already ran once-per-instance
[  OK  ]
Run Code Online (Sandbox Code Playgroud)

这不是我想要的 - 我可以看到启动脚本每个实例生命周期只运行一次的实用程序,但在我的情况下,这些应该在每次实例启动时运行,就像正常的启动脚本一样.

我意识到一个可能的解决方案是rc.local在第一次运行后手动让我的脚本插入.然而,这似乎很麻烦,因为cloud-init和rc.d环境略有不同,我现在必须分别在首次启动和所有后续启动时调试脚本.

有谁知道我怎么能告诉cloud-init总是运行我的脚本?这听起来像是cloud-init的设计者会考虑的事情.

cloud amazon-ec2 cloud-init

54
推荐指数
4
解决办法
7万
查看次数

如何手动运行cloud-init?

我正在编写CloudFormation模板,我正在尝试调试我在模板中提供的用户数据脚本.如何cloud-init手动运行并使其执行与启动新实例时相同的操作?

amazon-ec2 cloud-init

34
推荐指数
4
解决办法
4万
查看次数

如何在AWS中的自定义AMI上设置cloud-init?(CentOS的)

在AWS中为实例定义userdata似乎对执行各种引导类型操作非常有用.不幸的是,由于PCI原因,我必须使用不是源自其中一个提供的AMI的自定义CentOS AMI,因此尚未安装和配置cloud-init.我只是想要它设置一个主机名并运行一个小的bash脚本.我如何让它工作?

centos amazon-web-services cloud-init amazon-ami

30
推荐指数
3
解决办法
5万
查看次数

cloud-init:cloud-config指令的执行顺序是什么?

cloud-init用户数据对象的cloud-config部分中的指令顺序是什么.这对于避免种族类型的情况很重要.

我知道bootcmd在runcmd之前提前运行,但是有一个很好的列表,所有方法的顺序?

user-data cloud-init

22
推荐指数
1
解决办法
1万
查看次数

如何在不重启的情况下重新运行cloud-init

我使用openstack使用'nova boot'命令创建VM.我的图像启用了cloud-init.我传递了一个--user-data脚本,这是一个bash shell格式,用于在VM启动期间运行cloud-init.这一切都成功了.现在我的用例是重新运行cloud-init来执行相同的用户数据脚本,而无需重新启动VM.我看到/ usr/bin/cloud-init选项,他们确实讨论了运行特定模块,但没有任何东西可以让它执行相同的用户数据脚本.怎么能实现这一目标?任何帮助,将不胜感激.

openstack cloud-init

20
推荐指数
3
解决办法
2万
查看次数

在哪里可以找到cloud-init用户数据脚本的日志?

我正在通过将shell脚本粘贴到用户数据字段来初始化运行标准Ubuntu 13.04 AMI衍生物的spot实例.

这有效.该脚本运行.但它很难调试,因为我无法弄清楚脚本输出的记录位置,如果在任何地方.

我查看了/var/log/cloud-init.log,它似乎包含了一些与调试cloud-init相关的东西本身,但与我的脚本无关.我在/ var/log中搜索并没有发现任何内容.

是否有一些特殊的东西我必须做以打开登录?

cloud-init

19
推荐指数
3
解决办法
3万
查看次数

如何(安全地)使用cloudinit将私有S3资产下载到新的EC2实例上?

我正在使用CloudFormation来管理Tomcat Web服务器堆栈,但我厌倦了为新的应用程序版本进行原始AMI管理.我想向厨师方向走,但现在没有时间.相反,我试图在网络服务器实例化中克服一个简单的问题:当新机器启动时,如何下载"当前"WAR?

我的想法是利用私有的S3存储桶和cloudinit,但我对IAM凭据的处理方式感到有点困惑.我可以将它们放在模板的用户数据中,但我不愿意这样做,特别是因为我是控制该文件的版本.我能想到的唯一选择是在AMI本身中使用环境变量.它们必须是纯文本,但是......呃,如果你可以打破我的实例,你可以压缩并下载我的整个网络服务器.只要IAM用户不被重复用于任何其他用户并且定期轮换,这似乎是解决问题的合理方法.我错过了什么吗?如何使用cloudinit安全地下载私有S3资产?

amazon-s3 amazon-web-services cloud-init aws-cloudformation

16
推荐指数
4
解决办法
2万
查看次数

如何在 Ubuntu 20.04 上使用 Cloud-init 设置自定义密码?

最近,我通过在映像中安装我的配置来让 Cloud-Init 工作。这一切都很好,它有效。如果我破坏了配置,它会告诉我。它没有告诉我为什么我不被允许登录。

我尝试过使用echo possible | mkpasswd -m sha-512 -s并复制快速入门页面上的示例来创建自己的密码: https: //wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls/QuickStart

都不起作用。我也尝试过设置自定义用户名。不会改变任何东西。默认ubuntu:ubuntu也是不可用的。ubuntu 和空白都不是。

我正在使用什么:

https://releases.ubuntu.com/20.04/ubuntu-20.04-live-server-amd64.iso

https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls/QuickStart

# echo possible | mkpasswd -m sha-512 -s                                    
$6$nqZiIASVBA.iF$9nubU0ImWVrv4XhtEq9XhSh9UYNFQ7yC9Lf7A.uheSlJ3cgI5d9ltkUwRq.X8lAwoQuLAMem6v.gJNGYwk5XA0
Run Code Online (Sandbox Code Playgroud)

以下配置及其提供的密码,或以上;

#cloud-config
autoinstall:
  version: 1
  identity:
    hostname: ubuntu-server
    password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
    username: ubuntu
Run Code Online (Sandbox Code Playgroud)

我也尝试过像这样设置用户块:

https://gist.github.com/leogallego/a614c61457ed22cb1d960b32de4a1b01#file-ubuntu-cloud-virtualbox-sh-L46-L56

我要求什么:

  • 关于预期哈希类型的更好文档。
  • 有效的用户数据配置

ubuntu cloud-init ubuntu-20.04

12
推荐指数
1
解决办法
4万
查看次数

什么要加入AWS AMI以及使用cloud-init进行配置?

我正在使用AWS Cloudformation为我的Web应用程序设置网络基础结构的许多元素(VPC,安全组,子网,自动调节组等).我希望整个过程自动化.我想点击一个按钮,然后能够启动整个事情.

我已经成功创建了一个Cloudformation模板,用于设置所有这些网络基础架构.但是,EC2实例目前在没有任何所需软件的情况下启动.现在我想弄清楚如何最好地在他们身上获得该软件.

为此,我正在使用Packer.io创建AMI .但有些人反而催促我使用Cloud-Init.我应该使用什么启发式方法来决定将哪些内容融入AMI和/或通过Cloud-Init配置什么?

例如,我想预先配置EC2实例以允许me(saqib)在没有自己笔记本电脑密码的情况下登录.因此EC2必须有用户.该用户必须具有主目录.并且在该主目录中必须存在.ssh/known_hosts包含加密代码的文件.我应该将这些目录烘焙到AMI吗?或者我应该使用cloud-init来设置它们?我该如何决定这个和其他类似的案例呢?

packer amazon-web-services cloud-init aws-cloudformation amazon-ami

11
推荐指数
2
解决办法
6293
查看次数