Ubuntuの IPアドレスを途中で変えたくなったら。
これは備忘録です。
私は Linuxサーバーのお勉強のために VMware Workstation Player上に Ubuntu Serverを何度もいくつも作り直すものですから、いつしか Ubuntuのインストールを端折るため、仮想マシンの元ネタフォルダをコピーして作るようになりました。
これをするとインストールと日本語化などの定例初期設定作業を省け、手間がないから時間が短くて楽です。
ですけど IPアドレスとマシン名だけは元ネタと競合してしまいますので、これだけは変更しないといけません。
その方法として固定IPアドレスの変更方法を記しておこうと思います。
Canonicalの Ubuntuのドキュメントではこちらです。
Network Configuration
ここの「Static IP Address Assignment」という段落に [/etc/netplan/99_config.yaml]ファイルにネットワーク設定を書く例があります。
実際に [/etc/netplan]ディレクトリの下を見てみると、[99_config.yaml]ファイルではない、インストーラが作った設定ファイルが 1つありました。
subro@UbuntuServer2404:~$ ls -l /etc/netplan
合計 4
-rw------- 1 root root 645 5月 1 11:01 50-cloud-init.yaml
[50-cloud-init.yaml]ファイルの中身はつーと、
subro@UbuntuServer2404:~$ sudo 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 reboot. 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:
ens32:
addresses:
- 192.168.1.101/24
nameservers:
addresses:
- 192.168.1.1
search:
- subrohouse.internal
routes:
- to: default
via: 192.168.1.1
version: 2
こうなっておりました。
これは私が OSインストールの最中に設定した IPアドレスの情報です。
Ubuntuでは netplanと言う仕組みで起動時にネットワークの設定をしていて、[/etc/netplan]ディレクトリの下にある、
xx任意の名前.yaml
(xxは通し番号です)
という名を持つファイル番号が小さい順に読んでいきます。
私が上記ドキュメントにを参考に [99_config.yaml]ファイルを作ってみましたら、番号の大きいファイルで上書きされるのかとおもいきや、[ens32] にもう 1つ IPアドレスが追加されてしまいました。
私がやりたいのは IPアドレス変更であって追加ではありません。
単に現行の IPアドレスを変更したいのであれば、[/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 reboot. 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:
ens32:
addresses:
- 192.168.1.103/24
nameservers:
addresses:
- 192.168.1.1
search:
- subrohouse.internal
routes:
- to: default
via: 192.168.1.1
version: 2
IPアドレスのみ書き換えました。
DNSやらも変えたいのであれば、該当箇所を変えましょう。
変更を有効化するために以下を実行します。
subro@UbuntuServer2404:~$ sudo netplan apply
IPアドレスが変わってしまったので、SSHセッションがハングしてしまいました。
他のターミナルから新しい IPアドレスに再ログインします。
IPアドレスは変わったでしょうか。
subro@UbuntuServer2404:~$ ip -4 address
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens32: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
altname enp2s0
inet 192.168.1.103/24 brd 192.168.1.255 scope global ens32
valid_lft forever preferred_lft forever
想定通りに変わりましたね。
特に感慨もなく、次の作業に移るのでした。