我的 CloudFormation 模板创建了一个自动缩放组并使用实用程序脚本 /opt/aws/bin/cfn-init 对其进行引导。当我从模板中删除引导程序部分时,自动缩放创建没有任何问题,但我添加它 CloudFormation 堆栈失败并在 /var/log/cloud-init.log 中添加行:
Error: AutoScalingGroupName does not specify any metadata
Run Code Online (Sandbox Code Playgroud)
上面的行紧跟在以下命令之后:
/opt/aws/bin/cfn-init --verbose --configsets orderedConfig --region us-east-1 --stack AS15 --resource AutoScalingGroupName --access-key XXXXXXXXXXXXX --secret-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
深入挖掘一点,在 cfn-init 中,我在退出点添加了以下几行:
from pprint import pprint
pprint(vars(detail))
Run Code Online (Sandbox Code Playgroud)
在运行之前的 cfn-init 命令时,我得到以下跟踪:
{'_description': None,
'_lastUpdated': datetime.datetime(2012, 7, 12, 14, 52, 42),
'_logicalResourceId': u'AutoScalingGroupName',
'_metadata': None,
'_physicalResourceId': u'AS15-AutoScalingGroupName-HNPOXXXXXXXX',
'_resourceStatus': u'CREATE_COMPLETE',
'_resourceStatusReason': None,
'_resourceType': u'AWS::AutoScaling::AutoScalingGroup',
'_stackId': u'arn:aws:cloudformation:us-east-1:XXXXXXXXXXXXX:stack/AS15/XXXXXXXX-cc30-11e1-XXXXXX-XXXXXXXXXX',
'_stackName': u'AS15'}
Run Code Online (Sandbox Code Playgroud)
如您所见,元数据字段为空,这就是它无法创建堆栈的原因。与 autoscale 一起使用时, cfn-init 是否有任何已知的副作用?
我从快照 (10GB) 创建了一个 EBS 卷 (100GB),但是当我将该卷附加到一个实例并将其挂载为 /vol 时,然后我使用 df -h 检查,我看到 /vol 的大小为 10GB,尽管它是一个 100GB 的磁盘。我的程序有什么问题?谢谢!
如何在 nohup 模式下运行部分 shell 脚本?我的脚本是这样的:
#!/bin/bash
command_1
script2.sh
script3.sh
...
(tests & loops, etc)
script4.sh
script5.sh
Run Code Online (Sandbox Code Playgroud)
我想要的是在 nohup 模式下运行从script3.sh到script5.sh的部分,而不使用命令“nohup”或“&”,因此如果用户断开连接,脚本继续执行。
不知道我的问题是否足够清楚:) 谢谢!