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

setup firewalld

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

install basic packages

次に、以下のDNFコマンドを実行してConsulリポジトリをAlma Linuxサーバーに追加します。その後、各サーバーで利用可能なリポジトリのリストを確認します。

sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo  
sudo dnf repolist

以下の出力は、HashiCorpリポジトリがシステムに追加されたことを証明します。

add hoshicorp repo

次に、以下のコマンドを実行してConsulをインストールします。Consulのインストールを続行するにはyを入力します。

sudo dnf install consul

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 consul

consul1サーバーに移動し、以下のコマンドを実行して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/

validate consul

次に、以下のコマンドを実行してconsulサービスを開始し、有効にします。

sudo systemctl start consul  
sudo systemctl enable consul

次に、以下のコマンドを使用してConsulが実行されていることを確認します。

sudo systemctl status consul

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

consul1 running

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

consul2 runningh

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

consul3 running

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が得られます。

add kv consul

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 dns

Consul Web UI(ユーザーインターフェース)へのアクセス

最後に、Webブラウザを開き、ConsulサーバーのIPアドレスとポート8500(例:http://192.168.10.41:8500/ui/)にアクセスして、ConsulのWeb管理ダッシュボードを取得します。

以下に、Consulクラスタ内の利用可能なサーバーが表示されます。

consul web ui

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

list nodes

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

check kv

結論

まとめると、3台のAlmaLinuxサーバーでConsulクラスタのステップバイステップのインストールを完了しました。クラスタ内でConsul Web UIとConsul DNSを有効にしました。最後に、Consulクラスタ、キー-バリューストア、およびDNSとの対話に関する基本的なコマンドも学びました。

ここから、ACL(アクセス制御リスト)を有効にし、Consulサーバーとクライアント間の接続にTLSを実装できます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。