IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Ansible - Failed to connect to the host via ssh


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Cosmonaute
    Inscrit en
    Mars 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Cosmonaute

    Informations forums :
    Inscription : Mars 2017
    Messages : 21
    Par défaut Ansible - Failed to connect to the host via ssh
    Bonjour,

    j'ai un soucis au déploiement d'un playbook. Il s'agit d'install-mediawiki dans un cours sur ansible.

    Le réseau, un node-manager et deux nodes:

    node-manager: debian11 - 192.168.0.102
    http2: centos7 - 192.168.0.103
    bdd2: centos7 - 192.168.0.104

    Le node http2 est accessible lors des deux premières tâches d'un rôle, mais ne l'est plus à la 3ième tâche !
    (Pour voir le message d'erreurfaire défiler le texte suivant ↓

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    (ansible2.7.10) user-ansible@node-manager:~$ ansible-playbook -i inventaire.ini --user user-ansible --become --ask-become-pass --ask-vault-pass install-me
    SUDO password:
    Vault password:
     
    PLAY [mediaWiki db configuration] ************************************************************************************************************************
     
    TASK [mediawiki/confdb : mediawiki database] *************************************************************************************************************
    ok: [bdd2]
     
    TASK [mediawiki/confdb : mediawiki user+privileges] ******************************************************************************************************
    ok: [bdd2] => (item=['http2'])
     
    PLAY [MediaWiki apache configuration] ********************************************************************************************************************
     
    TASK [mediawiki/confapache : mediawiki directory] ********************************************************************************************************
    ok: [http2]
     
    TASK [mediawiki/confapache : uncompress mediawiki archive] ***********************************************************************************************
    ok: [http2]
     
    TASK [mediawiki/confapache : mediawiki configuration] ****************************************************************************************************
    failed: [http2] (item=['http2']) => {"item": "['http2']", "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname ['http2']: Name o true}
    fatal: [http2]: UNREACHABLE! => {"changed": false, "msg": "All items completed", "results": [{"_ansible_ignore_errors": null, "_ansible_item_label": "['ht, "item": "['http2']", "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname ['http2']: Name or service not known", "unreachable"
     
    NO MORE HOSTS LEFT ***************************************************************************************************************************************
            to retry, use: --limit @/home/user-ansible/install-mediawiki.retry
     
    PLAY RECAP ***********************************************************************************************************************************************
    bdd2                       : ok=2    changed=0    unreachable=0    failed=0  
    http2                      : ok=2    changed=0    unreachable=1    failed=0
    Les parefeux et selinux sont éteints.

    Mon fichier inventaire.ini sur le node-master est celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (ansible2.7.10) user-ansible@node-manager:~$ cat inventaire.ini
    [apache]
    http2
     
    [db]
    bdd2
    Chacun des fichiers /etc/hosts des nodes, y compris le master, contiennent ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    192.168.0.103   http2
    192.168.0.104   bdd2
    Je peux pinguer mes nodes avec le module ping d'ansible (en particuliers http2):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (ansible2.7.10) user-ansible@node-manager:~$ ansible -i inventaire.ini http2 -m ping
    http2 | SUCCESS => {
        "changed": false,
        "ping": "pong"
    }
    L'accès ssh aux nodes se fait par clés. La clé publique, après voir été créée sur le node-master, a été copiée dans les nodes par la commandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (ansible2.7.10) user-ansible@debian11:~$ ansible -i inventaire.ini -m authorized_key -a 'user=user-ansible state=present key="{{ lookup("file", "/home/user-ansible/.ssh/id_ecdsa.pub") }}"' --user user-ansible --become --ask-become-pass all
    C'est pas mal, ça roule, mais la troisième tâche ne s'exécute pas


    Mon paybook install-mediawiki.yml (mediaWiki db configuration se passe bien, c'est dans MediaWiki apache configuration que ça coince)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    (ansible2.7.10) user-ansible@node-manager:~$ cat install-mediawiki.yml 
    ---
     
    - name: "mediaWiki db configuration"
     hosts: db
     gather_facts: no
     tags: [ "mariadb", "mysql" ]
     roles:
       - role: "mediawiki/confdb"
     
    - name: "MediaWiki apache configuration"
     hosts: apache
     gather_facts: no
     tags: "apache"
     roles:
       - role: "mediawiki/confapache"
    Mon fichier roles/mediawiki/confapache/tasks/main.yml (c'est la 3ème tâche qui coince !)
    Rem: la tâche N°2 crée le répertoire /var/www/html/mediawiki, avec les propriétaires apache/apache et désarchive une archive mediawiki-1.31.1.tar.gz dans ce répertoire… (ça a fonctionné, j'ai vérifié)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    user-ansible@node-manager:~$ cat roles/mediawiki/confapache/tasks/main.yml
    # ~/roles/mediawiki/confapache/tasks/main.yml
    ---
     
    #1. Création du répertoire pour l'installation des fichiers Mediawiki
    - name: "mediawiki directory"    
      file:
        path: "{{mediawiki_directory}}"     # => /var/www/html/mediawiki
        owner: "apache"
        group: "apache"
        state: directory
     
    #2. Décompresse le fichier source archive Mediawiki et le formate sans extension
    - name: "uncompress mediawiki archive"
      unarchive:
        src: "{{mediawiki_archive_url}}"    # => https://releases… …/mediawiki/1.31/mediawiki-1.31.1.tar.gz
        dest: "{{mediawiki_directory}}"     # => /var/www/html/mediawiki
        owner: "apache"
        group: "apache"
        remote_src: yes
          # supprime mediawiki-1.xx.x/ du chemin
        extra_opts: --transform=s/mediawiki-[0-9\.]*\///
     
    #3. Exécute le tâche avec l'utilisateur apache, se place dans le répertoire de maintenance et exécute la commande de configuration si le fichier localsetting.php n'existe pas
    - name: "mediawiki configuration"
      become: yes
      become_user: "apache"
      args:
        creates: "{{mediawiki_directory}}/LocalSettings.php"    # => /var/www/html/mediawiki/LocalSettings.php
        chdir: "{{mediawiki_maintenance_directory}}"            # => /var/www/html/mediawiki/maintenance (contient install.php !!)
      command:
        php install.php --scriptpath /{{mediawiki_name}} --dbname mediawiki --lang fr --dbuser {{mediawiki_db_user}} --dbpass {{mediawiki_db_password}} --pass {{mediawiki_admin_password}} --dbserver {{mediawiki_db_host}} {{mediawiki_title}} {{mediawiki_admin_user}}
      run_once: yes
      delegate_to: "{{item}}"
      with_items: "{{groups.apache}}"
     
    #4. Exécute la tâche avec l'utilisatteur apache, se place dans le répertoire de maintenance et exćute la commande de mise à jour de la base une seule fois
    - name: "mediawiki db update"
      become: yes
      become_user: "apache"
      command: php update.php --quick
      args:
        chdir: "{{mediawiki_maintenance_directory}}"            # => /var/www/html/mediawiki/maintenance (contient install.php !!)
      run_once: yes
      register: resultat
      changed_when: "' ...done.' in resultat.stdout"
    Mes variables globales: roles/mediawiki/commun/defaults/main.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    user-ansible@node-manager:~$ cat roles/mediawiki/commun/defaults/main.yml
    # ~/roles/mediawiki/commun/defaults/main.yml
    ---
     
    # nom de la base de données
    mediawiki_db_name: "mediawiki"
     
    # nom de l'utilisateur de la base de données et son mot de passe
    mediawiki_db_user: "mediawiki"
    mediawiki_db_password: !vault |
              $ANSIBLE_VAULT;1.1;AES256
              66356330613535306333666239643764663932353033333662643337386337656662356438376630
              3864323234376537626464363539633861353632613539630a383462623937363638633833653165
              64613564386532663437303438356330306131613339376532396339623264383264383033643362
              6531663330323964650a373038323332626461363463396339363635646432316530346361353061
              6662
     
    # nom et mot de passe de l'administrateur Mediawiki
    mediawiki_admin_user: "admin"
    mediawiki_admin_password: !vault |
              $ANSIBLE_VAULT;1.1;AES256
              66356330613535306333666239643764663932353033333662643337386337656662356438376630
              3864323234376537626464363539633861353632613539630a383462623937363638633833653165
              64613564386532663437303438356330306131613339376532396339623264383264383033643362
              6531663330323964650a373038323332626461363463396339363635646432316530346361353061
              6662
     
    # nom du Mediawiki et son titre
    mediawiki_name: "mediawiki"
    mediawiki_title: "ELS"
     
    # l'emplacement du répertoire d'installation de Mediawiki
    # => Mediawiki est un site internet…
    mediawiki_directory: "/var/www/html/{{mediawiki_name}}"
     
    # répertoire de maintenance de mediawiki
    mediawiki_maintenance_directory: "{{mediawiki_directory}}/maintenance"
     
    # Definie le premier node du groupe mariadb
    mediawiki_db_host: "{{groups.db.0}}"
     
    # l'url des sources mediawiki
    mediawiki_archive_url: "https://releases.wikimedia.org/mediawiki/1.31/mediawiki-1.31.1.tar.gz"
    une vue d'ensemble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    (ansible2.7.10) user-ansible@node-manager:~$ tree roles/
    roles/
    ├── apache
    │   ├── handlers
    │   │   └── main.yml
    │   └── tasks
    │       ├── main.yml
    │       └── php7-install.yml
    ├── mariadb
    │   └── tasks
    │       └── main.yml
    └── mediawiki
        ├── commun
        │   └── defaults
        │       └── main.yml
        ├── confapache
        │   ├── meta
        │   │   └── main.yml
        │   └── tasks
        │       └── main.yml
        └── confdb
            ├── meta
            │   └── main.yml
            └── tasks
                └── main.yml
     
    14 directories, 9 files
    Merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 16
    Par défaut
    Salut

    Tu as essayé de te connecter au serveur http2 en ssh depuis le master ?

    Il ne devrait pas te demander de mot de passe.
    Par contre la 1ere fois il va te demander si tu veux ajouter le fingerprint de http2 aux hotes connu (fichier ~/.ssh/know_hosts )

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 47
    Par défaut
    Je ne comprends pas l'utilite du delegate_to.

    Cela demande a l'host (http2) de se connecter aux membres du groupe http (donc lui meme) mais a priori il ne sait pas resoudre http2.

    Selon moi le delegate_to est inutile si tu veux execute la commande php sur l'host cible.

    Mais si tu veux absolument l'utiliser, soit tu configures le serveur http2 pour qu'il resolve http2, soit tu mets "127.0.0.1" et tu t'assures que http2 puisse bien se connecter a lui meme en ssh (donc clef prive de ton user sur http2 aussi et pas seulement sur le bastion ansible).

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/04/2019, 10h31
  2. Ansible Failed to connect to the host via ssh
    Par czar1983 dans le forum Administration système
    Réponses: 5
    Dernier message: 10/11/2017, 20h41
  3. Réponses: 0
    Dernier message: 29/06/2015, 17h27
  4. Réponses: 2
    Dernier message: 10/05/2012, 13h20
  5. [ODS RTF] erreur connection to the remote browser failed
    Par demon_john2905 dans le forum ODS et reporting
    Réponses: 5
    Dernier message: 15/03/2011, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo