Hypriot OS на Raspberry PI: пользовательские данные для cloud-init игнорируются
Я пытаюсь настроить Raspberry PI 3b+, используя HypriotOS 1.9 с Cloud init. Для этого я положил user-data
файл в корень загрузочного тома. Согласно документам, это должно быть выполнено автоматически и выполнить изменения, описанные в файле (например, изменить имя хоста).
Тем не менее, ни одно из этих изменений не происходит, и просмотр результатов журнала cloud-init, похоже, не указывает на то, что файл даже правильно выбран.
Я использую утилиту hypriot flash для копирования файлов в целевую ОС. когда я монтирую SD-карту и проверяю, скопированы ли пользовательские данные и действительны ли yaml - тогда действительно так и есть.
Кто-нибудь испытывал что-то подобное или имеет хорошее представление о том, что происходит?
Больше информации:
пользовательские данные (шаблон, фактические значения интерполируются):
# vim: set ts=2 sw=2 filetype=yaml:
---
hostname: $TEMPLATE_HOSTNAME
manage_etc_hosts: true
users:
- name: r9s
gecos: "Raspbernetes User"
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
groups: users,docker,video,input
plain_text_passwd: r9spwd
lock_passwd: true
ssh_pwauth: false
locale: "de_DE.UTF-8"
timezone: "Europe/Berlin"
write_files:
- content: |
allow-hotplug: wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
path: /etc/network/interfaces.d/wlan0
- content: |
country=de
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="$TEMPLATE_SSID"
psk="$TEMPLATE_PSK"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}
path: /etc/wpa_supplicant/wpa_supplicant.conf
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSkvewNpUkKQp/uXNEAMkqQyEjZeLQmcVje9XStvn92cNq3NO2Ij6S+pBtGcB4IYxYjjT8Nv5GxUDS51gZYg/F2Blr4jnOKXkpSyRZwRFiZ05dNaU6DRjK9ETujAdTYa7jmsrbZEejuG8YcVlfJkOvQeRxI+Y6pgAw+hl9ZwcQ8oHwcZbPFJgCbDgOUv6IssLNbKvLgt/vKHcd74oHVN9y+NtpLk4+mdWCzLv/STjshZVxP/Xz896irIBuKEnPhNO1qvTctTVJpEBvwGjA/RgFVjLpY8gSwLHlr5vTcLtKgyMZ7+xr6iKFlSPQovfugokJ5eBYG5Zn4oAy99KuVJbB matthias@rusty-nail
runcmd:
- 'systemctl restart avahi-daemon'
- 'ifup wlan0'
1 ответ
Ответ состоял в том, что файлы пользовательских данных должны начинаться со строки, содержащей именно эту последовательность:
#cloud-config
если нет, файл игнорируется и пропускается, как если бы его там не было. Это фактически задокументировано в облачных документах init. Тем не менее, это очень трудно найти, просто просматривая документацию.
Обнаруженные мной учебники по ипотеке не упоминали об этом, и в примерах там не было ни строчки.
- Измените имя хоста с помощью
hostnamectl set-hostname mycoolname
- редактировать
/etc/cloud/cloud.cfg
- Заменить
preserve_hostname: true
отpreserve_hostname: false
- перезагрузка
Смена имени хоста после перепрошивки на hypriot на малине. у меня сработал raspi-config. Это сохраняется после перезагрузки.
sudo raspi-config
Затем перейдите в параметры сети-> имя хоста и измените имя хоста.