Memurai Developer Sentinel как сервис не регистрируется - PullRequest
0 голосов
/ 19 июня 2020

Удалось ли кому-нибудь заставить Memurai работать в качестве службы в качестве Sentinel? Следуя инструкциям с их сайта , memurai.exe --service-install --service-name "memurai-sentinel" --sentinel memurai-sentinel.conf приводит к sentinel directive while not in sentinel mode даже при наличии сигнального флага. Если убрать служебные флаги, он будет работать как дозорный без проблем.

Ответы [ 2 ]

1 голос
/ 24 июня 2020

Команда Memurai только что выпустила версию 2.0.1, в которой исправлена ​​работа Memurai Sentinel как служебная проблема. Посетите https://www.memurai.com/get-memurai, чтобы получить последнюю сборку разработчика.

0 голосов
/ 22 июня 2020

В следующем выпуске должно быть исправление от команды Memurai. Изменить: это было исправлено в выпуске Memurai 2.0.1.

Между тем, вот обходной путь, который использует сценарий PowerShell для добавления службы дозорной на Windows другими способами:

  1. Установите Memurai.
  2. Скопируйте sentinel.conf в желаемый рабочий каталог дозорного. Текущие значения в файлах предполагают C: \ sentinelconf \ sentinel.conf
  3. Измените sentinel.conf на желаемую конфигурацию. Текущие значения предполагают, что экземпляр Redis будет запущен на том же компьютере с портом по умолчанию.
  4. Запустите «Windows PowerShell ISE» от имени администратора:
    1. Откройте sentinel_script.ps1
    2. Измените переменные в начале файла на нужные значения.
    3. Запустите сценарий (F5)
    4. Если это приведет к появлению сообщения «запущенные сценарии отключены в этой системе». ошибка:
      1. В интерактивном запуске оболочки (без кавычек): 'Set-ExecutionPolicy RemoteSigned'
      2. Попробуйте снова запустить скрипт (F5)
      3. В интерактивной оболочке запустить (без кавычек): 'Set-ExecutionPolicy Restricted'
  5. Подключите дозорного с помощью memurai-cli в командной строке (без кавычек): 'memurai- cli -p 5000 '
  6. Выполнить команду для проверки часового (без кавычек):' sentinel master mymaster '

Пример sentinel.conf:

# Copy this file to C:\sentinelconf\sentinel.conf
logfile "C:\sentinelconf\sentinel.log"
port 5000
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1

Файл sentinel_script.ps1:

# Full path of installed memurai.exe
$MemuraiBinPath="C:\Program Files\Memurai\memurai.exe"
# Full path of sentinel.conf
$SentinelConfPath="C:\sentinelconf\sentinel.conf"
# Full path of sentinel.log
$SentinelLogPath="C:\sentinelconf\sentinel.log"
# Desired name of the service
$SentinelServiceName="Memurai Sentinel"


# Get Network Service credentials
$NetworkServiceCredentials = New-Object -TypeName System.Management.Automation.PSCredential ("NT AUTHORITY\NETWORK SERVICE", (New-Object System.Security.SecureString))

# Create a service to start Memurai in Sentinel mode
New-Service -Name $SentinelServiceName -Credential $NetworkServiceCredentials -BinaryPathName "`"$MemuraiBinPath`" --service-run `"$SentinelConfPath`" --sentinel"

# Create a rule to give the Network Service account access to the paths.
$SentinelAccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\NETWORK SERVICE", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")

# Get the path where the sentinel.conf file is located and add permissions.
$SentinelConfFolderPath = Split-Path $SentinelConfPath
$ConfPathAccessPermissions = Get-Acl $SentinelConfFolderPath
$ConfPathAccessPermissions.SetAccessRule($SentinelAccessRule)
Set-Acl $SentinelConfFolderPath $ConfPathAccessPermissions

# Get the path where the sentinel.log file is located and add permissions.
$SentinelLogFolderPath = Split-Path $SentinelLogPath
$LogPathAccessPermissions = Get-Acl $SentinelLogFolderPath
$LogPathAccessPermissions.SetAccessRule($SentinelAccessRule)
Set-Acl $SentinelLogFolderPath $LogPathAccessPermissions

# Start the Memurai Sentinel service.
Start-Service $SentinelServiceName

Write-Host "Started the $SentinelServiceName service."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...