【问题标题】:Startup Script in Azure (Like metadata_startup_script in GCP)Azure 中的启动脚本(如 GCP 中的 metadata_startup_script)
【发布时间】:2021-04-14 06:02:42
【问题描述】:

在 GCP 中使用 terraform 创建 VM 时,我们有这个参数“metadata_startup_script”,我们实际上设置了一个模板文件(bash 脚本),该文件在 VM 重新启动时运行。

这与 cloud-init 不同,因为 cloud-init 仅在创建新 VM 时调用。

我正在寻找 azure 的替代品。如果VM每次都重新启动,我们可以有这种启动脚本吗?

我找到了 custom_data 字段,但我认为它只存储 cloud-init 配置,该配置仅在创建 VM 时运行。

【问题讨论】:

  • 关于这个问题的任何更新?它解决了你的问题吗?如果它适合你,请接受它。
  • 我暂时没用过,不过好像可以用,以后会更新的。
  • 有什么更新吗?你试过了吗?它对你有用吗?

标签: azure terraform azure-rm


【解决方案1】:

在 Azure Terraform 中没有设置在 VM 重新启动时运行的脚本的功能。你可以通过VM extension自己设置一个Cron任务。

【讨论】:

    【解决方案2】:

    我使用自定义数据来提供 cloud-init 配置,在该配置中我定义了 oneshot 类型的 systemd 单元文件,使其执行我想在每次 VM 重新启动时运行的 shell 脚本。

     write_files:
      - path: /etc/systemd/system/testserv.service
        permissions: 0777
        owner: root:root
        content: |
          [Unit]
          Description=One Shot
    
          [Service]
          ExecStart=/etc/createfile
          Type=oneshot
          RemainAfterExit=yes
    
          [Install]
          WantedBy=multi-user.target
      - path: /etc/createfile
        permissions: 0777
        owner: root:root
        content: |
          #!/bin/sh
          sudo cat /usr/bin/test-file.txt
          echo 'text here' >> /usr/bin/test-file.txt
    
    
    runcmd:
      - systemctl enable testserv
      - systemctl start testserv
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 2017-10-12
      • 1970-01-01
      • 2021-11-04
      • 2020-03-03
      • 2020-03-15
      • 1970-01-01
      相关资源
      最近更新 更多