4.14. 防止 cloud-init 更新配置文件

从备份镜像创建或恢复实例时,实例 ID 会改变。通过实例 ID 中的更改,cloud-init 工具更新配置文件。但是,您可以确保 cloud-init 在从备份创建或恢复时不会更新某些配置文件。

流程

  1. 编辑 /etc/cloud/cloud.cfg 文件,例如:

    # vi /etc/cloud/cloud.cfg
  2. 注释或删除在恢复实例时不需要 cloud-init 更新的配置。例如,为了避免更新 SSH 密钥文件,请从 cloud_init_modules 部分删除 -ssh

    cloud_init_modules:
     - disk_setup
     - migrator
     - bootcmd
     - write-files
     - growpart
     - resizefs
     - set_hostname
     - update_hostname
     - update_etc_hosts
     - rsyslog
     - users-groups
     # - ssh

验证

  • 要检查 cloud-init 更新的配置文件,请检查 /var/log/cloud/cloud-init.log 文件。在实例启动期间记录更新的文件,消息以 Writing to 开始。例如:

    2019-09-03 00:16:07,XXX - util.py[DEBUG]: Writing to /root/.ssh/authorized_keys - wb: [XXX] 554 bytes
    2019-09-03 00:16:08,XXX - util.py[DEBUG]: Writing to /etc/ssh/sshd_config - wb: [XXX] 3905 bytes