MongoDB 的启动脚本在启动的实例上使用 EC2 用户数据
Startup script for MongoDB using EC2 user data on a launched instance
我们的 r4.xLarge EC2 实例中有一个 MongoDb 运行。我只是发现每次我们的实例关闭(出于任何原因)并重新启动时,mongo 也不会启动。
我们在 EC2 实例的用户数据部分添加了如下启动脚本。
#!/bin/bash
service mongod restart
service mongod status
我们仍然看到与以前相同的行为,命令没有执行,需要通过 SSH 进入实例以启动重启。
任何人都可以指出脚本的任何问题或提供任何关于此的具体见解吗?
谢谢
所以经过一些研究我发现,由于我们在第一次启动实例时没有添加用户数据脚本,所以我不得不在 #!/bin/bash
脚本现在看起来像这样:
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
sudo service mongod restart
sudo service mongod status
这个故事的寓意是,如果您忘记在实例启动时添加实例用户数据脚本并在事后添加,请在 #!/bin/bash
上方附加该部分
这是因为:
- AWS 使用
mime-multipart
附加用户数据文件。
- 它还使用
scripts-user, always
来 运行 文件。
我们的 r4.xLarge EC2 实例中有一个 MongoDb 运行。我只是发现每次我们的实例关闭(出于任何原因)并重新启动时,mongo 也不会启动。
我们在 EC2 实例的用户数据部分添加了如下启动脚本。
#!/bin/bash
service mongod restart
service mongod status
我们仍然看到与以前相同的行为,命令没有执行,需要通过 SSH 进入实例以启动重启。
任何人都可以指出脚本的任何问题或提供任何关于此的具体见解吗?
谢谢
所以经过一些研究我发现,由于我们在第一次启动实例时没有添加用户数据脚本,所以我不得不在 #!/bin/bash
脚本现在看起来像这样:
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
sudo service mongod restart
sudo service mongod status
这个故事的寓意是,如果您忘记在实例启动时添加实例用户数据脚本并在事后添加,请在 #!/bin/bash
上方附加该部分这是因为:
- AWS 使用
mime-multipart
附加用户数据文件。 - 它还使用
scripts-user, always
来 运行 文件。