Puncte:0

Folosind SSH în verificarea Consulului

drapel ru

Am un server cu un agent consul (CA) dockerizat. În acest CA, vreau să rulez un script de la gazdă care verifică cât spațiu pe disc rămâne într-o verificare a serviciului.

Pentru aceasta, am creat un serviciu în CA:

{
  „serviciu”: {
    "name": "disk-usage-var-re7", 
    "Etichete": [
      "tip:verificare",
      "env:re7"
    ],
    „verificări”: [
      {
        "id": "disk-usage-var-re7",
        "name": "Utilizarea discului /var RE7",
        „args”: [
          "SH",
          "-c",
          „ssh consul@hostserver 'disk_usage.sh /dev/mapper/centos-var'”
        ],
        "interval": "5s",
        "timeout": "30s"
      }
    ]
  }
}

Dar, când Consul îl conduce, am primit această eroare: Verificarea cheii gazdei nu a reușit.

Folosesc imaginea oficială Docker de la Consul (Alpine), versiunea 1.6.1, și am executat aceste comenzi în container:

docker exec consul apk adăuga openssh
docker exec -it consul ssh-keygen -t rsa

docker cp consul:/root/.ssh/id_rsa.pub /tmp

su consul
umask 077 && mkdir ~/.ssh
umask 077 && atingeți ~/.ssh/authorized_keys
cat /tmp/id_rsa.pub > /home/consul/.ssh/authorized_keys
rm -f /tmp/id_rsa.pub

Când încerc

docker exec -it consul ssh consul@hostserver 'disk_usage.sh /dev/mapper/centos-var'

Prima dată, SSH mă întreabă:

Autenticitatea gazdei „hostserver (::1)” nu poate fi stabilită.
Amprenta cheii ECDSA este SHA256:MlsT6sDr9xXuOurqBJu4e+a8m2De3Lu4ctJSB+5RNmk.
Sigur doriți să continuați conectarea (da/nu)? da
Avertisment: A fost adăugat permanent „hostserver” (ECDSA) la lista de gazde cunoscute.

Și după aceea, scenariul încă funcționează. Dar nu cu cecul consulului.

ce fac greșit?

Mulţumesc mult.

Puncte:0
drapel ru

Ok, am descoperit ce sa întâmplat. Utilizatorul implicit din container este rădăcină, dar utilizatorul care pornește Consul este consul.

Deci, trebuie să rulați containerul ca consul specificarea utilizatorului - tu consul și utilizați ssh-keygen cu utilizatorul corect.

Acum aruncați o privire la comenzile corecte:

docker exec -it -u consul consul ssh-keygen -t rsa

docker cp consul:/home/consul/.ssh/id_rsa.pub /tmp

su consul
cat /tmp/id_rsa.pub > /home/consul/.ssh/authorized_keys
rm -f /tmp/id_rsa.pub

Și scenariul funcționează!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.