この疑問に回答します。
最近はパブリック・クラウドからOSの準備をする機会が増えてきました。メディアからインストールする時は、ホスト名やIPアドレスの設定が同時にできましたが、クラウドの場合は事後に設定することになります。
また、RHEL8以降のディストリビューション Rocky、Alma、CentOS はなるべく設定ファイルを直接編集するのではなく、コマンドから実行する事が推奨されています。
ホスト名の設定コマンド:nmcli general hostname
パブリック・クラウドが提供しているOSイメージを展開する場合は、ホスト名が設定されていませんの設定を手動で行う必要があります。
設定ファイルは「/etc/hostname」です。
Rocky、Alma、CentOS は設定ファイルを直接編集を推奨していません。コマンドから実行します。
# nmcli general hostname [サーバーのホスト名]
OSを再起動しなくても設定が反映します。
※利用シェル(bashなど)は、変数を再読み込みしないとプロンプトは変更されません。つまり、サーバーに再ログインすると反映します。
ネットワークの設定
ネットワークの設定ファイルは「/etc/sysconfig/network-scripts/」に保存されています。
ネットワーク設定を行う場合、設定ファイルを直接編集することを推奨されていません。
ホスト名を設定する時と同じで「nmcli」コマンドを実行し設定を行います。
ネットワークインターフェイスの状態確認:nmcli device
まずは、現状の設定を確認します。「nmcli」コマンドを利用します。
ロケールが日本語の場合
# nmcli device デバイス タイプ 状態 接続 ens192 ethernet 接続済み System ens192 ens224 ethernet 切断済み -- lo loopback 管理無し --
ロケールが英語の場合
# nmcli device DEVICE TYPE STATE CONNECTION ens192 ethernet connected System ens192 ens224 ethernet connected System ens224 lo loopback unmanaged --
インターフェースの編集モード:nmcli connection edit
ネットワークインターフェースの変更は「nmcli」コマンドを利用します。パラメーターがわかっている場合は「nmcli connection modify [con-name] 」で値を変更すればよいのですが、私はスグに判らなくなるので編集モードを利用します。
編集モード「nmcli connection edit」は対話型の接続エディターです。シェル(bashなど)や、ネットワーク機器(CiscoのCatalyst ,Yamahaのrtx)のように補完が効くので便利です。
「nmcli connection modify」コマンドの引数[con-name]には「nmcli device」コマンドで表示された「CONNECTION(接続)」を指定します。
# nmcli connection edit "System ens224"
後は対話型で設定が出来るので、パラメーターを確認しながら設定を行います。
現状の設定確認:print
現状の設定を確認します。「print」コマンドを実行します。このまま実行すると、大量のパラメーター値が出てくるので、引数にipv4 を与えてネットワーク設定のみに絞ります。
nmcli> print ipv4 ['ipv4' setting values] ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- ipv4.dns-options: -- ipv4.dns-priority: 0 ipv4.addresses: -- ipv4.gateway: -- ipv4.routes: -- ipv4.route-metric: -1 ipv4.route-table: 0 (unspec) ipv4.routing-rules: -- ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: yes ipv4.dhcp-client-id: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- ipv4.never-default: no ipv4.may-fail: yes ipv4.dad-timeout: -1 (default)
固定IPアドレスの設定:set
クラウドから展開したOSはDHCPでIPが割り振られる設定になっている場合が多いです。閉域のプライベートネットワークの場合は静的にIPアドレスを固定で振り出す場合が多いので今回は、DHCPから固定に変更して、IPアドレスを指定します。
nmcli> set ipv4.method manual nmcli> set ipv4.addresses 192.168.0.1/24
変更したら「print」コマンドで状態を確認します。
nmcli> print ipv4.method ipv4.method: manual nmcli> print ipv4.addresses ipv4.addresses: 192.168.0.1/24
無事に設定が反映しています。ただ、設定が保存されておらず、有効化もされていないので注意が必要です。
設定変更の保存:save
「set」コマンドの変更は保存されおらず、有効化もされていません。
「save」コマンドに「 persistent」引数を与えて設定を保存し有効化させます。
nmcli> save persistent Connection 'System ens224' (e4014630-448b-5ad3-4992-f4678202147c) successfully updated.
OSを再起動しなくても設定が反映します。
インターフェースの編集モードの終了:quit
最後に編集モードを終了させます。
nmcli> quit
Firewalldの設定
Firewalldの停止
私は、Firewalldを利用していませんのでサービスを停止します。
サービスの停止
# systemctl stop firewalld
サービスの無効化
# systemctl disable firewalld Unit /etc/systemd/system/firewalld.service is masked, ignoring.
必要であれば、設定を行います。
selinuxの無効化
selinuxは無効化します。誰も利用しない機能です。
selinuxはLinuxの監査やセキュリティを向上させる機能です。有効になっているとサービスの動作や、設定内容に制限が掛かります。
selinuxが有効になっていると、ウェブサービス、DNSなど各サービスを設定しても動作しないことがよくあります。
selinuxの状態を確認:getenforce
selinuxが有効になっているかの確認は「getenforce」コマンドを実行します。(デフォルトで有効)
# getenforce Enforcing
getenforceコマンドを実行し「Enforcing」と表示されたら、selinuxが有効になっています。
selinuxを無効に設定する
selinuxを無効にするには「/etc/selinux/config」ファイルを修正します。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
SELINUXパラメーターを「disabled」に変更します。
間違って、SELINUXTYPEを変更しないように!私はよく間違えて、起動出来なくなり、シングルモードで復旧する羽目になっています。
きっと、昔のCentOS(4,5,6)は一番下にSELINUXパラメーターがあったので、手が勝手に動くのだろうな~
設定を変更後にサーバーを再起動してください。
パッケージのアップデート
イメージから展開した OS は、含まれているパッケージが古いです。OSにインストールされているパッケージは、最新のものに更新を行います。
パッケージ管理が「dnf」コマンドに変更されています。「yum」コマンドは引き続き利用できるのでどちらを利用しても構いません。
ちなみに、yum コマンドを実行すると内部的には dnf が呼び出されます。
# yum -y update CentOS-8 - AppStream 2.9 kB/s | 4.3 kB 00:01 CentOS-8 - Base 6.5 kB/s | 3.9 kB 00:00 CentOS-8 - Extras 2.6 kB/s | 1.5 kB 00:00 Dependencies resolved.
パッケージのアップデートが完了したらサーバーを再起動してください。
サーバーを再起動できない場合は、再起動が必要なサービスを確認しピンポイントで対象を再起動させます。
関連記事 dnf update後にサービス再起動が必要か確認する Rocky ,Alma, CentOS
パッケージの自動更新を有効にする場合は、こちらの記事を参照してください。
関連記事 dnf-automaticを使ってパッケージの自動アップデート Rocky ,Alma, CentOS
一般ユーザーの追加
管理者ユーザーだけでなく一般ユーザーで作業をする場合や、利用者にアカウントを提供する場合はユーザーを追加します。
$ useradd user01 $ password user01
パブリッククラウドの場合、証明書認証でリモート接続です。
証明書(キーペア)を作成しないと、リモート接続ができません。
ソフトウエア(サービス)のインストール
Apahce
やはり、サーバーでWebサービスを実施する機会が多いのでApacheをインストールすることがよくあります。設定について説明した記事がありますので参照ください。
MySQL
サーバーでWebサービスを実施する機会が多いのでMySQLをインストールすることがよくあります。設定について説明した記事がありますので参照ください。
NTP(chrony)
サーバーの時刻同期を目的にしているのであれば、設定を変更する必要はありません。自動起動の設定になっているか確認しましょう。
ソフトウエア(監視)のインストール
サーバーは監視がとても大切です。忘れずに設定を行いましょう。
Nagios
リソースの監視ツールです。しきい値を越えるとアラートをメールで送信してくれます。
Munin
リソースの監視ツールです。RRDtool を利用してグラフを作成してくれます。リソースの状態変化をグラフで確認できるとても便利なツールです。
Muninは、監視するサーバーと、監視されるエージェント(ノード)で構成されます。監視サーバーが、定期的にエージェントと情報のやり取りを行いリソース監視を実施します。