4.7. 使用 cloud-init 运行第一个引导命令

您可以使用 runcmdbootcmd 部分在启动和初始化过程中执行命令。

bootcmd 部分在初始化过程早期执行,并且在每次引导时默认运行。runcmd 部分在进程末尾附近执行,且仅在第一次引导和初始化时执行。

步骤

  1. 根据数据源的要求,编辑 user-data 文件或在 cloud.cfg.d 目录中添加以下指令:

    注意

    所有用户指令都包括文件顶部的 #cloud-config,以便 cloud-init 将文件识别为包含用户指令。当您在 cloud.cfg.d 目录中包含指令时,将该文件命名为 *.cfg,且始终在文件的顶部包含 #cloud-config

  2. 添加 bootcmdruncmd 部分;包含您希望 cloud-init 执行的命令。

    #cloud-config
    users:
      - default
      - name: user2
        gecos: User N. Ame
        groups: users
    chpasswd:
      list: |
        root:password
        fedora:myfedpassword
        user2:mypassword2
      expire: False
    bootcmd:
     - echo New MOTD >> /etc/motd
    runcmd:
     - echo New MOTD2 >> /etc/motd