Установка Consul · 6 min read · Sep 10, 2025
Как установить сервер Consul на AlmaLinux 9

Consul — это современная платформа для обнаружения сервисов, которая позволяет регистрировать сервисы через DNS и HTTP интерфейс. Она также предлагает функцию Service mesh, которая обеспечивает безопасные соединения через TLS и предоставляет авторизацию между сервисами. Кроме того, Consul также предоставляет API Gateway для управления доступом к сервисам и KV (Key/Value) хранилище для хранения конфигурации сервисов.
В этом руководстве мы пошагово проведем вас через установку кластера Consul с несколькими серверами на AlmaLinux 9.
Предварительные требования
Чтобы завершить это руководство, убедитесь, что у вас есть следующее:
- Два или более сервера AlmaLinux в одной сети.
- Непривилегированный пользователь с правами администратора.
Настройка системы
На этом первом этапе вы подготовите свои серверы AlmaLinux для установки Consul, что включает в себя:
- Настройку Firewalld для открытия портов.
- Настройку SELinux в режим Permissive.
Настройка Firewalld
Перед установкой пакетов вам необходимо открыть порты на ваших серверах Consul. Для операционной системы на базе RHEL вы будете использовать Firewalld для открытия портов.
Выполните команду ниже, чтобы открыть порты 8300, 8301, 8302, 8400, 8500 и 8600 на ваших серверах AlmaLinux. Если все прошло успешно, вы должны получить вывод, подобный успеху.
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 на Permissive
После настройки firewalld вы измените режим SELinux по умолчанию на permissive. Это будет генерировать журналы ошибок на SELinux, не блокируя действия.
Выполните следующую команду, чтобы изменить режим SELinux на permissive.
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/configЗатем перезагрузите ваши серверы, чтобы изменения вступили в силу.
sudo rebootТеперь, когда вы настроили все свои серверы AlmaLinux, вы можете начать установку Consul.
Установка Consul через DNF
Consul — это платформа сетевого взаимодействия сервисов, которая поддерживает несколько операционных систем. Также Consul предоставляет репозиторий пакетов для дистрибутивов Linux, включая дистрибутивы на базе RHEL. На этом этапе вы установите Consul из репозитория Consul через DNF.
Для начала установите несколько основных пакетов, выполнив следующую команду. Введите 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, выполнив следующую команду. Наберите y, чтобы продолжить установку Consul.
sudo dnf install consul
После завершения установки выполните следующую команду, чтобы найти исполняемый файл consul и проверить его версию.
which consul
consul versionВывод ниже подтверждает, что исполняемый файл Consul доступен по адресу /bin/consul, и текущая версия Consul 1.17.
Настройка Consul
На этом этапе вы установили Consul на всех своих серверах AlmaLinux. Давайте начнем настраивать кластер Consul с несколькими серверами без дальнейших задержек. Для иллюстрации мы будем использовать три сервера 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 откройте файл конфигурации по умолчанию Consul /etc/consul.d/consul.hcl с помощью следующей команды редактора nano.
sudo nano /etc/consul.d/consul.hclИзмените конфигурацию по умолчанию на следующую и обратите внимание на некоторые параметры ниже:
- server: True означает, что узел будет действовать как сервер Consul.
- advertise_addr: Измените это на соответствующий IP-адрес сервера Consul.
- bootstrap_expect: Сколько серверов будет в вашем кластере?
- encrypt: Каждый сервер должен иметь одинаковый ключ.
- retry_join: Введите IP-адреса кластера Consul в этот параметр.
# Полные параметры конфигурации можно найти по адресу https://www.consul.io/docs/agent/config
# datacenter
datacenter = "kitty-dc1"
# data_dir
# Этот флаг предоставляет каталог данных для агента для хранения состояния.
data_dir = "/opt/consul"
# client_addr
# Адрес, к которому Consul будет привязывать клиентские интерфейсы, включая HTTP и DNS
# серверы.
client_addr = "0.0.0.0"
# ui
# Включает встроенный веб-интерфейс и необходимые HTTP маршруты.
ui_config{
enabled = true
}
# домен по умолчанию
domain = "consul"
# включить dns_config
dns_config{
enable_truncate = true
only_passing = true
}
# сервер
# Этот флаг используется для управления тем, находится ли агент в режиме сервера или клиента. Когда он предоставлен,
# агент будет действовать как сервер Consul. Каждый кластер Consul должен иметь как минимум один
# сервер и, в идеале, не более 5 на каждый дата-центр. Все серверы участвуют в алгоритме консенсуса Raft
# для обеспечения того, чтобы транзакции происходили последовательно и линейно. Транзакции изменяют состояние кластера, которое
# поддерживается на всех узлах сервера для
# обеспечения доступности в случае сбоя узла. Узлы сервера также участвуют в
# WAN gossip pool с узлами сервера в других дата-центрах. Серверы действуют как шлюзы к
# другим дата-центрам и пересылают трафик по мере необходимости.
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Затем проверьте консул, используя следующую команду, чтобы убедиться, что служба работает.
sudo systemctl status consulВ следующем выводе вы должны увидеть, что Consul работает на сервере consul1.

В следующем выводе вы должны увидеть, что Consul работает на сервере consul2.

В следующем выводе вы должны увидеть, что Consul работает на сервере consul3.

Взаимодействие с кластером Consul
Теперь, когда вы настроили кластер Consul на серверах AlmaLinux, вы можете проверить и взаимодействовать с кластером Consul через командную строку consul.
Проверка кластера Consul
Выполните команду ниже, чтобы проверить доступные серверы Consul в кластере.
consul membersВ этом примере кластер Consul состоит из трех серверов: consul1, consul2 и consul3.
Вы также можете проверить список пиров в кластере, используя команду ниже.
consul operator raft list-peersНиже вы можете увидеть подробную информацию о каждом сервере Consul, включая ID, состояние, голосование и версию RaftProtocol.
Добавление KV (Key-Value) хранилища в Consul
Далее выполните следующую команду consul, чтобы создать новую базу данных ключ-значение. В этом примере вы создадите новый ключ db_name со значением testdb.
consul kv put consul/configuration/db_name testdbТеперь выполните команду ниже, чтобы получить значение для db_name.
consul kv get consul/configuration/db_nameВы должны получить значение testdb, как показано ниже:

Взаимодействие с DNS на Consul
В рамках этого руководства вы включили DNS Consul. Чтобы проверить конфигурацию DNS Consul, используйте команду dig ниже.
dig @127.0.0.1 -p 8600 consul.service.consulВ этом примере вы настроили серверы Consul в кластере с тем же доменным именем, что и consul. Следующее подтверждает, что домен consul.service.consul с A записями 192.168.10.41, 192.168.10.42, 192.168.10.43.

Доступ к веб-интерфейсу Consul
Наконец, откройте веб-браузер и перейдите по IP-адресу сервера Consul с портом 8500, например: http://192.168.10.41:8500/ui/, чтобы получить панель управления веб-администрированием Consul.
Ниже вы должны увидеть доступные серверы в кластере Consul.

Теперь нажмите на меню Узлы, чтобы получить подробную информацию о каждом сервере.

Затем нажмите на меню Ключ/Значение, чтобы получить список доступных KV на ваших серверах Consul.

Заключение
В заключение, вы завершили пошаговую установку кластера Consul с тремя серверами AlmaLinux. Вы включили веб-интерфейс Consul и DNS Consul в кластере. Наконец, вы также узнали некоторые основные команды для взаимодействия с кластерами Consul, хранилищами ключей и DNS.
С этого момента вы можете активировать ACL (Списки управления доступом) и реализовать TLS для соединений между серверами и клиентами Consul.
Get new posts in your inbox
No spam. Unsubscribe anytime.