В демонстрационных целях мы будем использовать консул агента в режиме разработчика, используя режим -dev. Просто для настройки локальной машины, мы собираемся выполнить настройку единого системного консула. Пожалуйста, не используйте этот консольный кластер в вашем производстве . Как уже упоминалось в Hashicorp в случае сценария с одним узлом консольного кластера, потеря данных неизбежна .
Установка Консул
Консул можно установить на странице загрузок по адресу www.consul.io/downloads.html.
Вы можете извлечь двоичный пакет в разделе загрузок на вашем компьютере.
$ cd Downloads $ chmod +x consul $ sudo mv consul /usr/bin/
Теперь давайте начнем использовать консул, используя флаг -dev .
$ consul agent -dev -data-dir=/tmp/consul
Вывод будет таким, как показано на следующем скриншоте.
Теперь вы можете проверить членов консула, используя следующую команду.
$ consul members
Вывод будет таким, как показано на следующем скриншоте.
Если вы хотите присоединить другие узлы к этому узлу —
$ consul join <Node 2> <Node 3>
Кроме того, вы можете выполнить следующую команду на узлах 2 и 3 —
$ consul join <Node 1>
Использование командной строки
Командная строка консула состоит из нескольких различных опций, некоторые из наиболее часто используемых следующие:
-
агент — который управляет агентом консула.
-
configtest — для проверки файла конфигурации.
-
событие — запустить новое событие.
-
exec — выполнить команду на узлах Consul.
-
принудительный выход — вынуждает члена кластера покинуть кластер.
-
info — предоставляет нам отладочную информацию для операторов.
-
присоединиться — чтобы агент Консул присоединился к кластеру.
-
keygen — для генерации нового ключа шифрования.
-
keyring — для управления ключами шифрования сплетни.
-
kv — для взаимодействия с хранилищем ключ-значение.
-
уйти — покинуть консул кластера и закрыть его без силы.
-
lock — выполнить команду для удержания блокировки.
-
maint — для управления узлом или режимом обслуживания сервиса.
-
члены — это список членов кластера Консул.
-
монитор — это потоковые журналы от агента Консул.
-
оператор — он предоставляет нам набор инструментов для операторов Консул.
-
reload — запускает агент для перезагрузки файлов конфигурации.
-
RTT — оценивает время прохождения сети между узлами.
-
снимок — сохраняет, восстанавливает и проверяет снимки состояния сервера Consul.
-
версия — распечатать текущую версию Консула.
-
следить — следить за изменениями в консуле.
агент — который управляет агентом консула.
configtest — для проверки файла конфигурации.
событие — запустить новое событие.
exec — выполнить команду на узлах Consul.
принудительный выход — вынуждает члена кластера покинуть кластер.
info — предоставляет нам отладочную информацию для операторов.
присоединиться — чтобы агент Консул присоединился к кластеру.
keygen — для генерации нового ключа шифрования.
keyring — для управления ключами шифрования сплетни.
kv — для взаимодействия с хранилищем ключ-значение.
уйти — покинуть консул кластера и закрыть его без силы.
lock — выполнить команду для удержания блокировки.
maint — для управления узлом или режимом обслуживания сервиса.
члены — это список членов кластера Консул.
монитор — это потоковые журналы от агента Консул.
оператор — он предоставляет нам набор инструментов для операторов Консул.
reload — запускает агент для перезагрузки файлов конфигурации.
RTT — оценивает время прохождения сети между узлами.
снимок — сохраняет, восстанавливает и проверяет снимки состояния сервера Consul.
версия — распечатать текущую версию Консула.
следить — следить за изменениями в консуле.
Консул Шаблон
Консул-шаблон предоставляет нам демон, который запрашивает экземпляр Консула и обновляет любое количество указанных шаблонов в файловой системе. Консул-шаблон может при желании запускать произвольные команды после завершения процесса обновления. Эта опция помогает нам настроить консул кластера, не делая все вручную самостоятельно.
Шаблон консула должен быть сформирован в /tmp/<name-of-file>.conf.tmpfl . Язык, на котором написан шаблон в соответствии с Hashicorp Configuration Language (HCL).
Вы можете скачать шаблон консула с этой страницы .
Попробуйте это с помощью следующей команды —
$ ./consul-template -h
Вывод будет таким, как показано на следующем скриншоте.
Если вы хотите переместить этот двоичный файл в более заметное место, чтобы он был доступен пользователю каждый раз. Вы можете ввести следующие команды —
$ chmod +x consul-template $ sudo mv consul-template /usr/share/bin/
В демонстрационных целях мы будем использовать пример конфигурации nginx, которая будет использоваться в качестве нашего сервиса. Вы можете попробовать больше демонстраций по адресу https://github.com/hashicorp/consul-template/tree/master/examples или лучше написать свой собственный шаблон.
$ vim /tmp/nginx.conf.ctmpl
Вывод будет таким, как показано на следующем скриншоте.
Файл конфигурации может выглядеть так:
{{range services}} {{$name := .Name}} {{$service := service .Name}} upstream {{$name}} { zone upstream-{{$name}} 64k; {{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60 weight = 1; {{else}}server 127.0.0.1:65535; # force a 502{{end}} } {{end}} server { listen 80 default_server; location / { root /usr/share/nginx/html/; index index.html; } location /stub_status { stub_status; } {{range services}} {{$name := .Name}} location /{{$name}} { proxy_pass http://{{$name}}; } {{end}} }
Теперь, используя двоичный файл шаблона консула, выполните следующие команды:
$ consul-template \ -template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
С предыдущей командой процесс начался. Позже вы можете открыть другой терминал и просмотреть файл nginx.conf, который полностью отображается с помощью следующей команды.
$ cat /etc/nginx/conf.d/default.conf
Вывод будет таким, как показано на следующем скриншоте.