こんにちは、鯨井貴博@opensourcetechです。
今回は、CentOS7におけるホスト名の確認や変更・設定ファイルなどについてみていきます。
CentOS6とCentOS7のホスト名設定の違い
CentOS6の場合、
以下のように /etc/sysconfig/networkにあるHOSTNAME変数がホスト名になります。
localhost.localdomain
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain・・・ここです!
NTPSERVERARGS=iburst
CentOS7の場合、/etc/hostnameに変更されています。
localhost.localdomain
[root@localhost ~]# cat /etc/sysconfig/network
# Created by anaconda・・・/etc/sysconfig/networkにはない!
[root@localhost ~]# cat /etc/hostname
localhost.localdomain・・・ここです!
ホスト名の確認
CentOS7では、
hostname や uname の他に hostnamectl を使用しホスト名確認ができます。
localhost.localdomain
[root@localhost ~]# hostnamectl status
Static hostname: localhost.localdomain・・・ここ!
Icon name: computer-vm
Chassis: vm
Machine ID: 68be80e92f0047bcae0a83e5cec82c25
Boot ID: 45754605f995467ca4cd29647f10db2c
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
一時的なホスト名の変更
CentOS7において、
一時的なホスト名変更をする場合、hostnameコマンドを使用します。
なお、/etc/hostname内の設定を上書きすることはないので、
再起動等で元の状態に戻すことができます。
[root@localhost ~]# hostname
www.testserver.local
[root@localhost ~]# cat /etc/hostname
localhost.localdomain・・・変わっていない
恒久的なホスト名の変更
CentOS7において、
恒久的にホスト名変更をする場合、いくつかの方法があります。
①/etc/hostnameを書き換える
お好きなエディターで書き換えてください。そのやんけという声が聞こえてきそうです(笑
なお、プロンプトの表示については一度ログアウトして、再ログインすれば変更されます。
②hostnamectlコマンドを使用する
hostnamectl set-hostnameで変更します。
なお、細かい話になりますがホスト名は --static / --transient / --prettyの3種類があります。
--static:/etc/hostnameに記載されるホスト名
--transient:カーネルによって保持される一時的なホスト名
--pretty:自由形式のUTF8ホスト名
なお、プロンプトの表示については一度ログアウトして、再ログインすれば変更されます。
[root@localhost ~]# hostnamectl --help
hostnamectl [OPTIONS...] COMMAND ...
Query or change system hostname.
-h --help Show this help
--version Show package version
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--transient Only set transient hostname
--static Only set static hostname
--pretty Only set pretty hostname
Commands:
status Show current hostname settings
set-hostname NAME Set system hostname
set-icon-name NAME Set icon name for host
set-chassis NAME Set chassis type for host
set-deployment NAME Set deployment environment for host
set-location NAME Set location for host
[root@localhost ~]# hostnamectl status --static
localhost.localdomain・・・/etc/hostnameにあるホスト名
[root@localhost ~]# hostnamectl status --transient
www.testserver.local・・・一時的なホスト名
[root@localhost ~]# hostnamectl status --pretty
・・・自由形式のホスト名(ここでは設定されていない)
[root@localhost ~]#
設定を変更してみると、
--static と --transient のみが影響を受けていることがわかります。
[root@localhost ~]# hostnamectl set-hostname centos7server
[root@localhost ~]# hostnamectl status
Static hostname: centos7server・・・変更された
Icon name: computer-vm
Chassis: vm
Machine ID: 68be80e92f0047bcae0a83e5cec82c25
Boot ID: 45754605f995467ca4cd29647f10db2c
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64
[root@localhost ~]# cat /etc/hostname
centos7server
[root@localhost ~]# hostnamectl status --static
centos7server・・・変更された
[root@localhost ~]# hostnamectl status --transient
centos7server・・・変更された
[root@localhost ~]# hostnamectl status --pretty
・・・変更されず
[root@localhost ~]#
③nmcliコマンドを使用する
nmcliを使って変更した場合、/etc/hostnameも併せて変更されます。
なお、プロンプトの表示については一度ログアウトして、再ログインすれば変更されます。
[root@localhost ~]# hostname
testserver・・・変更された
[root@localhost ~]# cat /etc/hostname
testserver・・・変更された
④nmtuiコマンドを使用する
nmtuiを使って変更した場合、/etc/hostnameも併せて変更されます。
なお、プロンプトの表示については一度ログアウトして、再ログインすれば変更されます。
タンジブルUI(テキストUI)で設定変更します。
tekito_server・・・変更された
[root@localhost ~]# cat /etc/hostname
tekito_server・・・変更された