cloud-init.logにwrite_files.0が表示されます。他の属性は許可されていません(「遅延」は予期しないことです)。

cloud-init.logにwrite_files.0が表示されます。他の属性は許可されていません(「遅延」は予期しないことです)。

クラウド初期化には非常に単純なスタンザがあります。

write_files:
  - path: /home/ecarroll/.zshrc
    content: |
      source ~/powerlevel10k/powerlevel10k.zsh-theme
    owner: ecarroll:ecarroll
    permissions: '0644'
    defer: true

このdeferフラグは次に記録されます。クラウド初期化:サインを書く文書

defer:(ブール値)ユーザーが作成され、パッケージがインストールされたら、「最終」ステップまでファイルの書き込みを延期します。基本: False

しかし、上記のように使用すると

schema.py[WARNING]: Invalid config: write_files.0: Additional properties are not allowed ('defer' was unexpected)
util.py[DEBUG]: Writing to /home/ecarroll/.zshrc - wb: [644] 47 bytes
handlers.py[DEBUG]: finish: init-network/config-write-files: FAIL: running config-write-files with frequency once-per-instance
util.py[WARNING]: Running module write-files (<module 'cloudinit.config.cc_write_files' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_write_files.py'>) failed
util.py[DEBUG]: Running module write-files (<module 'cloudinit.config.cc_write_files' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_write_files.py'>) failed

私が必要とする実際の理由は、defer追跡で見つけることができます。ecarrollcloud-initがまだ作成していないユーザーにファイルをchown'する必要があるためです()

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1380, in chownbyname
    uid = pwd.getpwnam(user).pw_uid
KeyError: "getpwnam(): name not found: 'ecarroll'"

私はUbuntu 20.04.4 LTSを使用しています。

ベストアンサー1

write_filesにdefer属性を追加するcloud-init v21.4に更新する必要があります。

実行しているバージョンを確認してください。

  • cloud-init -v
  • head -n 1 /var/log/cloud-init.log上記のBrettの答えを参照してください。

これら2つが同意しない場合は、確認してみることもできます。ログファイルのcloud-initバージョンがバイナリのバージョンと競合するのはなぜですか?

おすすめ記事