Hypriot OS на Raspberry PI: пользовательские данные для cloud-init игнорируются - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь настроить 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'

вывод cloud-init.log на pastebin (из-за многословия)

1 Ответ

0 голосов
/ 25 ноября 2018

ответ состоял в том, что файлы пользовательских данных должны начинаться со строки, содержащей именно эту последовательность:

#cloud-config 

, если ее нет, файл игнорируется и пропускается, как если бы его там не было.Это фактически задокументировано в облачных документах init .Тем не менее, это очень трудно найти при сканировании документации.

Обзоры, которые я нашел, не упоминали об этом, и в примерах там не было строки.

...