Consul インストール · 1 min read · Sep 10, 2025
AlmaLinux 9にConsulサーバーをインストールする方法

Consulは、DNSおよびHTTPインターフェースを介してサービスを登録できるサービス発見のための最新のプラットフォームです。また、TLSを介して安全な接続を可能にし、サービス間の認可を提供するサービスメッシュ機能も提供しています。さらに、Consulはサービスへのアクセスを管理するためのAPIゲートウェイと、サービス構成を保存するためのKV(キー/バリュー)ストアも提供します。
このガイドでは、AlmaLinux 9上で複数のサーバーを持つConsulクラスタのインストールをステップバイステップで説明します。
前提条件
このガイドを完了するには、以下のものを用意してください:
- 同じネットワーク内にある2台以上のAlmaLinuxサーバー。
- 管理者権限を持つ非ルートユーザー。
システムの設定
この最初のステップでは、ConsulのインストールのためにAlmaLinuxサーバーを準備します。これには以下が含まれます:
- ポートを開くためにFirewalldを設定すること。
- SELinuxを許可モードに設定すること。
Firewalldの設定
パッケージをインストールする前に、Consulサーバーのポートを開く必要があります。RHELベースのオペレーティングシステムでは、Firewalldを使用してポートを開きます。
以下のコマンドを実行して、AlmaLinuxサーバーのポート8300、8301、8302、8400、8500、8600を開きます。成功すると、成功のような出力が得られます。
sudo firewall-cmd --permanent --zone=public --add-port={8300,8301,8302,8400,8500,8600}/tcp次に、以下のコマンドを使用してfirewalldを再読み込みして変更を適用します。
sudo firewall-cmd --reload最後に、以下のコマンドを使用してfirewalldのルールを確認します。ポート8300、8301、8302、8400、8500、8600がfirewalldで利用可能であることを確認してください。
sudo firewall-cmd --zone=public --list-all
SELinuxを許可モードに変更
firewalldを設定した後、デフォルトのSELinuxモードを許可に変更します。これにより、アクションをブロックすることなくSELinuxにエラーログが生成されます。
以下のコマンドを実行してSELinuxモードを許可に変更します。
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config次に、サーバーを再起動して変更を適用します。
sudo rebootすべてのAlmaLinuxサーバーを設定したので、Consulのインストールを開始できます。
DNFを使用したConsulのインストール
Consulは、複数のオペレーティングシステムをサポートするサービスネットワーキングプラットフォームです。また、ConsulはRHELベースのディストリビューションを含むLinuxディストリビューション用のパッケージリポジトリを提供しています。このステップでは、DNFを介してConsulリポジトリからConsulをインストールします。
まず、以下のコマンドを実行して基本的なパッケージをインストールします。インストールを続行するにはyを入力します。
sudo dnf install dnf-plugins-core nano
次に、以下のDNFコマンドを実行してConsulリポジトリをAlma Linuxサーバーに追加します。その後、各サーバーで利用可能なリポジトリのリストを確認します。
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo dnf repolist以下の出力は、HashiCorpリポジトリがシステムに追加されたことを証明します。

次に、以下のコマンドを実行してConsulをインストールします。Consulのインストールを続行するにはyを入力します。
sudo dnf install consul
インストールが完了したら、以下のコマンドを実行してconsulバイナリファイルを見つけ、そのバージョンを確認します。
which consul
consul version以下の出力は、Consulバイナリファイルが/bin/consulにあり、現在のConsulバージョンが1.17であることを確認します。
Consulの設定
この時点で、すべてのAlmaLinuxサーバーにConsulがインストールされました。では、複数のサーバーを持つConsulクラスタの設定を開始しましょう。例として、3台のAlmaLinuxサーバーを使用します。
| ホスト名 | IPアドレス |
| --------- | -------------- |
| consul1 | 192.168.10.41 |
| consul2 | 192.168.10.42 |
| consul3 | 192.168.10.43 |まず、以下のコマンドを実行して各サーバーでconsulサービスを停止します。
sudo systemctl stop consulconsul1サーバーに移動し、以下のコマンドを実行してConsulクラスタの新しいキーを生成します。生成されたキーを必ず保持してください。
consul keygenすべてのConsulサーバーで、以下のnanoエディタコマンドを使用してデフォルトのConsul構成/etc/consul.d/consul.hclを開きます。
sudo nano /etc/consul.d/consul.hclデフォルトの構成を以下のように変更し、以下のパラメータに注意してください:
- server: Trueは、ノードがConsulサーバーとして機能することを意味します。
- advertise_addr: これをConsulサーバーのそれぞれのIPアドレスに変更します。
- bootstrap_expect: クラスタに必要なサーバーの数は?
- encrypt: すべてのサーバーは同じキーを持つ必要があります。
- retry_join: このパラメータにConsulクラスタのIPアドレスを入力します。
# 完全な構成オプションは https://www.consul.io/docs/agent/config で確認できます
# データセンター
datacenter = "kitty-dc1"
# データディレクトリ
# このフラグは、エージェントが状態を保存するためのデータディレクトリを提供します。
data_dir = "/opt/consul"
# クライアントアドレス
# ConsulがHTTPおよびDNSサーバーを含むクライアントインターフェースにバインドするアドレスです。
client_addr = "0.0.0.0"
# UI
# 組み込みのWeb UIサーバーと必要なHTTPルートを有効にします。
ui_config{
enabled = true
}
# デフォルトドメイン
domain = "consul"
# dns_configを有効にする
dns_config{
enable_truncate = true
only_passing = true
}
# サーバー
# このフラグは、エージェントがサーバーモードまたはクライアントモードにあるかを制御するために使用されます。提供されると、
# エージェントはConsulサーバーとして機能します。各Consulクラスタには少なくとも1つの
# サーバーが必要であり、理想的にはデータセンターごとに5つを超えないことが望ましいです。すべてのサーバーは、Raft
# コンセンサスアルゴリズムに参加して、トランザクションが一貫した線形化された方法で発生することを保証します。トランザクションはクラスタの状態を変更し、
# ノードの障害が発生した場合の可用性を確保するためにすべてのサーバーノードで維持されます。サーバーノードは、他のデータセンターのサーバーノードとの
# WANゴシッププールにも参加します。サーバーは、他のデータセンターへのゲートウェイとして機能し、適切にトラフィックを転送します。
server = true
# 広告アドレス - クライアントをバインドまたはLBとは異なるアドレスにポイントしたい場合。
advertise_addr = "192.168.10.41"
# bootstrap_expect
# このフラグは、データセンター内の期待されるサーバーの数を提供します。
bootstrap_expect=3
# encrypt
# Consulネットワークトラフィックの暗号化に使用する秘密鍵を指定します。
encrypt = "jFtV8jj4h1hnXGqTllWH+sOqLo/tw9xnnfDHcVxVnYg="
# retry_join
retry_join = ["192.168.10.41", "192.168.10.42", "192.168.10.43"]完了したら、ファイルを保存して終了します。
次に、以下のコマンドを実行してConsulの構成を確認します。正しい構文であれば、構成は有効ですという出力が得られます。
sudo consul validate /etc/consul.d/
次に、以下のコマンドを実行してconsulサービスを開始し、有効にします。
sudo systemctl start consul
sudo systemctl enable consul次に、以下のコマンドを使用してConsulが実行されていることを確認します。
sudo systemctl status consul以下の出力には、consul1サーバーでConsulが実行されていることが表示されます。

以下の出力には、consul2サーバーでConsulが実行されていることが表示されます。

以下の出力には、consul3サーバーでConsulが実行されていることが表示されます。

Consulクラスタとの対話
AlmaLinuxサーバーにConsulクラスタが設定されたので、consulコマンドラインを介してConsulクラスタを確認し、対話できます。
Consulクラスタの確認
以下のコマンドを実行して、クラスタ内の利用可能なConsulサーバーを確認します。
consul membersこの例では、Consulクラスタはconsul1、consul2、consul3の3台のサーバーで構成されています。
以下のコマンドを使用して、クラスタのピアのリストを確認することもできます。
consul operator raft list-peers以下に、各Consulサーバーに関する詳細情報が表示されます。ID、状態、投票者、およびRaftプロトコルバージョンが含まれます。
ConsulにKV(キー-バリュー)ストアを追加
次に、以下のconsulコマンドを実行して新しいキー-バリューデータベースを作成します。この例では、新しいキーdb_nameを値testdbで作成します。
consul kv put consul/configuration/db_name testdb次に、以下のコマンドを実行してdb_nameの値を取得します。
consul kv get consul/configuration/db_name以下のように値testdbが得られます。

ConsulのDNSとの対話
このガイドでは、Consul DNSを有効にしました。Consul DNSの設定を確認するには、以下のdigコマンドを使用します。
dig @127.0.0.1 -p 8600 consul.service.consulこの例では、クラスタ内のConsulサーバーが同じドメイン名consulで構成されています。以下は、Aレコード192.168.10.41、192.168.10.42、192.168.10.43を持つドメインconsul.service.consulを確認します。

Consul Web UI(ユーザーインターフェース)へのアクセス
最後に、Webブラウザを開き、ConsulサーバーのIPアドレスとポート8500(例:http://192.168.10.41:8500/ui/)にアクセスして、ConsulのWeb管理ダッシュボードを取得します。
以下に、Consulクラスタ内の利用可能なサーバーが表示されます。

次に、ノードメニューをクリックして、各サーバーに関する詳細情報を取得します。

次に、キー/バリューメニューをクリックして、Consulサーバー上の利用可能なKVのリストを取得します。

結論
まとめると、3台のAlmaLinuxサーバーでConsulクラスタのステップバイステップのインストールを完了しました。クラスタ内でConsul Web UIとConsul DNSを有効にしました。最後に、Consulクラスタ、キー-バリューストア、およびDNSとの対話に関する基本的なコマンドも学びました。
ここから、ACL(アクセス制御リスト)を有効にし、Consulサーバーとクライアント間の接続にTLSを実装できます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。