Я использую cloud-init 22.1-14 для запуска виртуальных машин с использованием облачных образов Ubuntu и kvm/qemu на домашнем сервере. Думаю, я нахожусь на этапе, когда мне нужно реализовать источник данных, поскольку создание моей виртуальной машины зависает, если я пытаюсь записать произвольные файлы как часть моего init. Вот что я делаю для создания образа ISO, содержащего данные конфигурации.
cloud-localds --network-config=/srv/init/network-init.cfg /var/kvm/mldc-seed.qcow2 /srv/init/cloud-init.cfg
Вот пример того, как я пытаюсь написать файл .tmux.conf, используя синтаксис, который не работает с cloud-init 22.1-14.
write_files:
- path: /home/msh/.tmux.conf
content: |
unbind C-b
set -g prefix C-a
bind-key C-a last-window
bind-key k confirm kill-window
owner: 'muh:adm'
permissions: '0640'
С тех пор, как я обратил внимание на установленную версию cloud-init, моя способность писать произвольные файлы улучшилась. Теперь я могу писать любое количество текстовых файлов, не прерывая выполнение cloud-init.
write_files:
- content: |
set ts=2
set sts=2
set sw=2
set expandtab
path: /home/msh/.exrc
owner: root:root
permissions: '0660'
defer: true
решение1
Источник данных, который мы используем, если мы не используем сторонний или «внешний» источник данных, называется NoCloud. Запуск cloud-localds локально означает, что вы используете NoCloud.