gcloud:仅在首次启动时运行脚本

时间:2015-04-09 15:16:45

标签: google-compute-engine

仅在首次启动时使用gcloud compute instances create 运行脚本的最佳方法是什么。我查看了startup-script,但每次实例重新启动或重新启动时都会运行它们。

或者,除了使用自己的图像之外,设置实例的最佳做法是什么?

2 个答案:

答案 0 :(得分:8)

将图像用于繁重的配置:包和图像基本配置。由于云中实例的生命周期,您应该在解决方案的无状态配置和有状态配置之间找到适当的平衡。

配置实例的最佳方法是IMHO,它尽可能多地使用启动脚本,因为它们可以更改和更新,而不会因为错误的持久性配置而失去对实例的访问权限。至于你的问题,我可以想到几个不同的选择:

  1. 检查首次启动时从启动脚本创建的标志文件,如果文件存在则终止启动脚本。
  2. 在初始启动脚本时将实例的启动脚本修改为第一次执行结束时的不同内容。
  3. 设置一个自动配置软件,随时准备好作为cfengine,puppet或chef的行动......
  4. 至于我自己,我宁愿使用第一个选项,因为我发现它更清晰,更容易实现和理解。

答案 1 :(得分:0)

首先,您需要通过将启动脚本URL分配给gs存储桶,使启动脚本使用指向包含该脚本的云桶的元数据URL,然后在启动脚本中,删除启动脚本-首次成功运行后的url元数据。这样启动脚本将不会在后续的重新启动中执行