【问题标题】:Ubuntu Focal headless setup on Raspberry pi 4 - cloud init wifi initialisation before first rebootRaspberry pi 4 上的 Ubuntu Focal 无头设置 - 首次重启前的云初始化 wifi 初始化
【发布时间】:2020-07-16 08:38:35
【问题描述】:

我在使用云初始化配置在 Raspberry pi 4 上为 Ubuntu Server Focal (ARM) 设置完整的无头安装时遇到问题。这样做的全部目的是在发生故障时简化 SD 卡交换。我正在尝试使用 cloud-init 配置文件为 lan/wlan 应用静态配置,创建新用户,为新用户添加 ssh 授权密钥,安装 docker 等。但是,无论我做什么,似乎 Wifi 设置都没有应用在第一次重启之前。

Step1:将映像刻录到 SD 卡上。 Step2:用配置文件重写SD卡system-boot/network_config和system-boot/user-data

网络配置

version: 2
renderer: networkd
ethernets:
  eth0:
    dhcp4: false
    optional: true
    addresses: [192.168.100.8/24]
    gateway4: 192.168.100.2
    nameservers:
      addresses: [192.168.100.2, 8.8.8.8]
wifis:
  wlan0:
    optional: true
    access-points:
      "AP-NAME":
        password: "AP-Password"
    dhcp4: false
    addresses: [192.168.100.13/24]
    gateway4: 192.168.100.2
    nameservers:
      #search: [mydomain, otherdomain]
      addresses: [192.168.100.2, 8.8.8.8]

用户数据

chpasswd:
  expire: true
  list:
    - ubuntu:ubuntu

# Enable password authentication with the SSH daemon
ssh_pwauth: true
groups:
  - myuser
  - docker
users:
  - default
  - name: myuser
    gecos: My Name
    primary_group: myuser
    groups: sudo
    shell: /bin/bash
    ssh_authorized_keys:
      - ssh-rsa AAAA....
    lock_passwd: false
    passwd: $6$rounds=4096$7uRxBCbz9$SPdYdqd...

packages:
  - apt-transport-https
  - ca-certificates
  - curl
  - gnupg-agent
  - software-properties-common
  - git
runcmd:
  - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
  - add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  - apt-get update -y
  - apt-get install -y docker-ce docker-ce-cli containerd.io
  - systemctl start docker
  - systemctl enable docker
## TODO: add git deployment and configure folders
power_state:
  mode: reboot

在首次启动期间,cloud-init 始终应用备用网络配置。

我还尝试按照here 的描述为 wifi 应用无头配置。

创建 wpa_supplicant.conf 并将其复制到 SD 系统引导文件夹。

trl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RO

network={
    ssid="AP-NAME"
    psk="AP-Password"
}

还创建了一个空的 ssh 文件并将其复制到 system-boot

运行命令总是失败,因为在第一次引导期间 cloud-init 应用了备用网络配置。重新启动后,应用 lan/wlan 设置,创建用户,添加 ssh 授权密钥。但是我仍然需要 ssh 进入 PI 并安装其余的包:docker 等,我想避免这种情况。我是不是做错了什么?

【问题讨论】:

  • 嘿,你解决过这个问题吗?
  • 我也有这个问题。它特定于使用 Wifi 作为唯一的网络连接。一切都以以太网端口为主
  • @Christopher nope,我会测试看看 chd 是否建议使用以太网端口作为主要工作。

标签: ubuntu-server raspberry-pi4 cloud-init


【解决方案1】:

我不确定您是否找到了解决方法,但我会分享一些我在研究选项时发现的信息。

注意:在第一次启动期间,您的 Raspberry Pi 将尝试连接到该网络。第一次会失败。只需重启sudo reboot 即可。

this repo 中有一个有趣的解决方法和方法。

  • 它声明它是为 18.04 创建的,但它应该适用于 20.04,因为两个服务器版本都使用 netplansystemd-networkd

就我个人而言,我走了一条不同的路。

  • 我创建包含我的设置和包的自定义图像,然后刻录到美元或通过 TFTP 服务器共享。我很惊讶这是多么容易。
    • 有一篇关于创建自定义图像的好帖子here
    • 一些重要的附加信息是here

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 2012-11-05
    • 1970-01-01
    • 2020-08-13
    相关资源
    最近更新 更多