คำตอบทั้งหมดบอกให้คุณแก้ไขโดยตรง/etc/netplan/50-cloud-init.yaml
ผิดเนื่องจาก CloudInit ถูกใช้และจะสร้างไฟล์นั้น ใน Ubuntu 18.04.2 มีการเขียนไว้ชัดเจนในไฟล์:
$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eno1:
dhcp4: true
version: 2
ดังนั้นคุณไม่ควรแก้ไขไฟล์นั้น แต่ไฟล์ภายใต้/etc/cloud/cloud.cfg.d/
หากคุณยังต้องการใช้ CloudInit
อีกวิธีหนึ่งคือปิดการใช้งาน CloudInit ก่อนโดยการสร้างไฟล์เปล่า/etc/cloud/cloud-init.disabled
(ดูที่https://cloudinit.readthedocs.io/en/latest/topics/boot.html ) จากนั้นคำตอบอื่น ๆ ก็ใช้ได้ ภายใต้ Ubuntu 18.04.2 ผมใช้จะปล่อยให้มันคำนึงไฟล์dpkg-reconfigure cloud-init
/etc/cloud/cloud-init.disabled
ฉันคิดว่านี่เป็นเรื่องแปลกเล็กน้อย
ฉันแนะนำให้คุณเปลี่ยนชื่อไฟล์ (ไม่ใช่ชื่อที่ถูกต้องเพราะ50-cloud-init.yaml
ให้เราคิดว่ามันยังใช้ CloudInit)
จากนั้นคุณอาจลงท้ายด้วยชื่อไฟล์/etc/netplan/01-netcfg.yaml
ที่มีการกำหนดค่าด้านล่าง สังเกตการใช้งานของnetworkd
renderer แทนที่จะเป็นNetworkManager
เพราะการกำหนดค่าอยู่บนเซิร์ฟเวอร์
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
addresses: [192.168.1.246/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]