Raspberry PI上的Hypriot OS:cloud-init的用户数据被忽略

时间:2018-10-08 16:40:42

标签: raspberry-pi cloud-init hypriot

我尝试使用带有Cloud init的HypriotOS 1.9配置Raspberry PI 3b +。为此,我将一个user-data文件放入启动卷的根目录中。根据文档,此文件应自动提取并执行文件中描述的更改(例如,更改主机名)。

但是,这些更改均未发生,并且查看cloud-init的日志输出似乎并不表明该文件甚至已被正确拾取。

我正在使用hypriot flash实用程序将文件复制到目标OS。当我安装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'

output of cloud-init.log on pastebin (because of verbosity)

3 个答案:

答案 0 :(得分:1)

答案是,用户数据文件必须从包含以下顺序的行开始:

#cloud-config 

如果不存在,则忽略该文件并将其跳过,就像没有该文件一样。这是actually documented in the cloud init docs。但是,仅在浏览文档时很难找到。

我发现的hypriot教程没有提及它,并且那里的示例中没有该行。

答案 1 :(得分:0)

在树莓派上的hypriot上闪烁后更改主机名。 raspi-config为我工作。 重新启动后,此问题仍然存在。

sudo raspi-config

然后转到 网络选项->主机名 更改主机名。

答案 2 :(得分:0)

  1. 使用hostnamectl set-hostname mycoolname更改主机名
  2. 编辑/etc/cloud/cloud.cfg
  3. preserve_hostname: true替换为preserve_hostname: false
  4. 重新启动