LoginSignup
13

More than 5 years have passed since last update.

ログインする前の画面にIPアドレスを表示させる

Posted at

新しい仮想マシンを立て、あるいは久し振りに起動して、さてSSHで繋ごうと思ってもIPアドレスがわからずコンソールから一旦ログインしてIPアドレスを調べて、とやるのはもううんざりだ。

というわけでコンソールを見ればログインせずともIPアドレスを知ることができるよう、ログインプロンプトとともにIPアドレスを表示するようにしておく。

なお、デスクトップマネージャは使用しないものとする。
使用していてもAlt+F2などで別の仮想コンソールにすれば見られるが。

やり方

ログイン前画面の内容を決定するのは/etc/issueである。
このファイルをNICが上がるイベント発生時に書き換えてやれば良い。

とりあえず標準の/etc/issueを退避しておく。

# mv /etc/issue /etc/issue.org

NICが上がるイベント発生時に実行させるスクリプトを作成する。
以下は例だが行っていることは、退避した/etc/issueをコピーして元に戻し、hostname -Iで得られるIPアドレスの一覧を/etc/issueに追加するものである。

#!/bin/sh

cp /etc/issue.org /etc/issue
echo 'IP addresses:' >> /etc/issue
echo $(hostname -I) >> /etc/issue
echo '' >> /etc/issue

このファイルの配置場所はNetworkManagerを使用しているなら /etc/NetworkManager/dispatcher.d/ ディレクトリ内である。
DebianやUbuntuなら/etc/network/if-up.d/ ディレクトリ内、CentOSなら /sbin/ifup-local (これはディレクトリではなくこの名前のファイル)でも良いだろう。

このファイルには実行権限を付ける。ここでは /etc/NetworkManager/dispatcher.d/show-ip-address に配置したとする。

# chmod +x /etc/NetworkManager/dispatcher.d/show-ip-address

これでログインする前の画面にIPアドレスを表示させることができる。

注意事項としては、systemdが使われているとログインする前の画面がNICが上がる前に表示されるのかIPアドレスが表示されないことがある。
その場合は何度かEnterキーを押してやると良いだろう。多少は手間だがログインしてIPアドレスを知るよりは遥かにましだろう。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13