Рейтинг:0

Использование SSH для проверки Консула

флаг ru

У меня есть сервер с докеризированным агентом Consul (CA). В этом CA я хочу запустить скрипт с хоста, который проверяет, сколько места на диске осталось в сервисной проверке.

Для этого я создал сервис в ЦС:

{
  "оказание услуг": {
    "имя": "использование диска-var-re7", 
    "метки": [
      "тип: проверить",
      "окружение: re7"
    ],
    "чеки": [
      {
        "id": "использование диска-var-re7",
        "name": "Использование диска /var RE7",
        "аргументы": [
          "ш",
          "-с",
          "ssh consul@hostserver 'disk_usage.sh /dev/mapper/centos-var'"
        ],
        "интервал": "5с",
        "тайм-аут": "30 с"
      }
    ]
  }
}

Но когда Консул запускает его, я получаю эту ошибку: Ошибка проверки ключа хоста.

Я использую официальный образ Docker от Consul (Alpine) версии 1.6.1 и выполнил следующие команды в контейнере:

docker exec consul apk добавить openssh
docker exec -it консул ssh-keygen -t rsa

docker cp консул:/root/.ssh/id_rsa.pub/tmp

Су консул
umask 077 && mkdir ~/.ssh
umask 077 && коснитесь ~/.ssh/authorized_keys
кот /tmp/id_rsa.pub > /home/consul/.ssh/authorized_keys
rm -f /tmp/id_rsa.pub

Когда я пытаюсь

docker exec -it консул ssh consul@hostserver 'disk_usage.sh /dev/mapper/centos-var'

В первый раз SSH спрашивает меня:

Невозможно установить подлинность хоста hostserver (::1).
Отпечаток ключа ECDSA: SHA256:MlsT6sDr9xXuOurqBJu4e+a8m2De3Lu4ctJSB+5RNmk.
Вы уверены, что хотите продолжить подключение (да/нет)? да
Предупреждение: «хост-сервер» (ECDSA) навсегда добавлен в список известных хостов.

И после этого скрипт все еще работает. Но не с чеком Консула.

Что я делаю не так?

Большое спасибо.

Рейтинг:0
флаг ru

Хорошо, я нашел, что случилось. Пользователь по умолчанию в контейнере корень, но пользователь, запускающий Consul, консул.

Таким образом, вы должны запустить контейнер как консул указание пользователя -у консул и используйте ssh-keygen с правильным пользователем.

Теперь взгляните на правильные команды:

docker exec -it -u консул консул ssh-keygen -t rsa

docker cp консул:/home/consul/.ssh/id_rsa.pub/tmp

Су консул
кот /tmp/id_rsa.pub > /home/consul/.ssh/authorized_keys
rm -f /tmp/id_rsa.pub

И скрипт работает!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.