なんか嘘の設定方法がはびこっているので正しい手法をメモ書き
まず、Ubuntu 20.04をIPアドレスをdhcp取得でインストールすると、「/etc/netplan/00-installer-config.yaml」に下記のような内容の設定ファイルを作成される。
# This is the network config written by 'subiquity' network: ethernets: ens160: dhcp4: true version: 2
上記の「ens160」はNICのデバイス名なので使用するNICによって名称が変化する。
で、この /etc/netplan/00-installer-config.yaml とか /etc/netplan/50-cloud-init.yaml とか /etc/netplan/01-netcfg.yaml を変更する、という手順は「誤り」です。
正しい手法はUbuntuの公式ドキュメント「Network Configuration」の「Dynamic IP Address Assignment (DHCP Client)」と「Static IP Address Assignment」に記載されているように「/etc/netplan/99_config.yaml」というファイルを新規作成して、そこで設定します。
これは、netplanコマンドは/etc/netplan/にある数字で始まるファイルを00から順に読み込み99を一番最後に読み込むので、99_config.yamlで記載した内容で上書きされて設定される、という動作になっているためです。
Ubuntu公式サイト上では固定IPアドレス設定時に「dhcp4:false」を設定する、なんてことは書いてありません(2020/05/18時点)が、初期インストール時にdhcp取得を選択していると00-installer-config.yaml上では「dhcp4:true」が設定されているため、ens160に対してdhcpで取得したIPアドレスと固定IPアドレスの双方が割り当てられるという状況になってしまいます。
それを防ぐためには下記の様に「dhcp4:false」を設定した上で、固定IPアドレスの設定を入れる、ということが必要になります。
network: version: 2 renderer: networkd ethernets: ens160: dhcp4: false addresses: - 172.17.44.240/16 gateway4: 172.17.0.1 nameservers: search: [adosakana.local] addresses: [172.17.44.49]
また、ホスト名については、「hostnamectl」コマンドを使用します。(追加で/etc/hostsのエントリ修正も必要です)
まず「hostnamectl」を実行して現在の値を確認します。
osakanataro@ubuntu:~$ hostnamectl Static hostname: ubuntu Icon name: computer-vm Chassis: vm Machine ID: adcd0e151d91412581407a94fc19a4c5 Boot ID: 1ca98f3699d34707b58595e059708d0a Virtualization: vmware Operating System: Ubuntu 20.04 LTS Kernel: Linux 5.4.0-29-generic Architecture: x86-64 osakanataro@ubuntu:~$
ホスト名は「hostnamectl set-hostname 新しいホスト名」で設定します。
osakanataro@ubuntu:~$ sudo hostnamectl set-hostname ubuntu20 [sudo] password for osakanataro: osakanataro@ubuntu:~$ hostnamectl Static hostname: ubuntu20 Icon name: computer-vm Chassis: vm Machine ID: adcd0e151d91412581407a94fc19a4c5 Boot ID: 1ca98f3699d34707b58595e059708d0a Virtualization: vmware Operating System: Ubuntu 20.04 LTS Kernel: Linux 5.4.0-29-generic Architecture: x86-64 osakanataro@ubuntu:~$
なお、hostnamectlだけだと/etc/hostsの127.0.1.1に記載されているホスト名が書き換わらないので、こちらは手動で変更します。