【问题标题】:gcloud: running a script only on first bootgcloud:仅在首次启动时运行脚本
【发布时间】:2015-04-09 15:16:45
【问题描述】:

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

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

【问题讨论】:

    标签: google-compute-engine


    【解决方案1】:

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

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

    1. 在首次启动完成时检查从启动脚本创建的标志文件,如果文件存在则终止启动脚本。
    2. 在首次执行结束时将实例的启动脚本在初始启动脚本中修改为不同的内容。
    3. 设置一个自动配置软件,准备在您的图像上执行操作,如 cfengine、puppet 或 chef...

    就我自己而言,我更喜欢使用第一个选项,因为我发现它更清晰、更容易实现和理解。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-13
        • 1970-01-01
        • 2017-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多