0
votes

ONSIBLE TROUVER MODULE DONNE ERREUR "ne semble pas être un répertoire valide ou on ne peut pas accéder" chemin absolu

Un module de recherche ansible ne fonctionne pas comme prévu.

Donc j'ai trois instances L'un est le nœud de test, le deuxième noeud de contrôleur et le troisième résultant d'où je gère mon jeu de jeu ansible P>

J'essaie de générer des touches SSH sur Test_nodes, puis de rechercher les clés publiques de ces nœuds. Cela fonctionne bien. P>

Ensuite, j'essaie d'ajouter ces clés publiques dans le fichier autorisé_keys d'un hôte différent (contrôleur_node). Pour cela, j'utilise le module de recherche pour obtenir la liste des fichiers, puis bouclez sur ces fichiers dans le module Authorisé_key. P>

J'utilisais: P>

- name: Generate ssh keys
  hosts: media_nodes
  gather_facts: false
  tasks:
          - name: key generation
            openssh_keypair:
                    path: ~/.ssh/id_ssh_rsa
                    force: True
            register: public_key
          - debug:
                  var: public_key.public_key
          - name: fetch public key from all nodes
            fetch:
                    src: ~/.ssh/id_ssh_rsa.pub
                    dest:  ssh-keys/

- name: Controller play
  hosts: controller
  gather_facts: false
  tasks:
          - name: Find list of public key files
            find:
                    paths: /home/abhilasha/ANSIBLE/ssh-keys/
                    file_type: file
                    recurse: yes
                    patterns: ".*pub"
                    use_regex: yes
            register: files_matched

          - name: debug files matched
            debug:
                    var: files_matched.files

          - name: Debug files_matched loop
            debug:
                    var: item.path
            loop: "{{ files_matched.files|flatten(levels=1) }}"
            loop_control:
                    label: "{{ item.path }}"

          - name: Set authorized key file taken from file
            authorized_key:
                    key: "{{ lookup('file','item') }}"
                    state: present
            with_file:
                    - "{{ files_matched.files }}"


- name: Find list of public key files
This play is not working giving error

TASK [Find list of public keys] *****************************************************************************************************************************************************************************************************************
ok: [test_controller] => {"changed": false, "examined": 0, "files": [], "matched": 0, "msg": "/home/abhilasha/ANSIBLE/ssh-keys/ was skipped as it does not seem to be a valid directory or it cannot be accessed\n"}


6 commentaires

Êtes-vous capable de trouver à l'aide de la commande de recherche de Linux?


Oui Trouver SSH-KEYS / -NAME "* PUB" SSH-KEYS / 10.0.0.82 / Accueil / Utilisateur / .SSH / ID_SSH_RSA.PUB SSH-KEYS / TEST.PUB.PUB


Utilisez-vous le même utilisateur via une éternelle et manuelle?


Donc, ces fichiers sont un formidateur sur mon instance VM où j'exécute le script ansible, je souhaite copier le contenu de ces fichiers à l'instance du contrôleur afin que ces fichiers soient censés être présents sur le contrôleur lui-même ou sur l'instance VM?


Pour répondre à votre question, je passe un script ansible et la commande de recherche avec les mêmes privilèges utilisateur


Le module de récupération copiera le fichier sur le serveur ansible.


3 Réponses :


0
votes

Q: "msg": "/ home / abhilasha / ansible / ssh-keys / a été ignoré car il ne semble pas être un répertoire valide ou il est impossible d'accéder à \ n"

A: Jetez un coup d'œil au répertoire keys ssh / sur contrôleur et vérifiez le contenu. Au lieu de xxx

trouver dans le même chemin xxx

il a été Fetch à xxx


3 commentaires

Même si j'utilise le chemin SSH-Keys, toujours la même tâche d'erreur [Trouver une liste des clés publiques] ****************************** **************************************************** *** **************************************** * ******************************************************* ******************************************** OK: [Test_Controller ] => {"changé": faux, "examiné": 0, "Fichiers": [] ": 0," MSG ":" SSH-Keys / a été ignoré car il ne semble pas être un répertoire valide ou il est impossible d'accéder à \ n "}


Étrange. Vous ne pouvez pas voir les fichiers avec les clés publiques dans le répertoire où les clés ont été stockées?


Donc, la façon dont le fichier pub est en cours de stockage est dans ce chemin: SSH-KEYS / 10.0.0.82 / HOME / UTILISATEUR / ID_SSH_RSA.PUB Mais aussi je mettez un fichier SSH-Keys / test.pub mais je ne suis toujours pas Obtenir des fichiers



0
votes

Pouvez-vous modifier les chemins comme ci-dessous et essayer

- name: Find list of public key files
  find:
     paths: /tmp/ssh-keys/
     file_type: file
     recurse: yes
     patterns: ".*pub"
     use_regex: yes
  register: files_matched


1 commentaires

Toujours avoir la même erreur "Message": "/ TMP / SSH-Keys / a été ignoré car il ne semble pas être un répertoire valide ou il est impossible d'accéder à \ n"



0
votes

D'accord, j'ai eu la question, j'utilisais des hôtes: contrôleur pour cette pièce, mais les fichiers sont sur mon instance de test VM test.

Mais je ne sais pas comment résoudre encore mon problème. Je souhaite utiliser les touches de publococ sur mon local, puis appendez-le sur contrôleur Server P>

- name: Fetch public key files from localhost
  gather_facts: false
  hosts: 127.0.0.1
  connection: local
  tasks:
          - name: Find list of public keys
            find:
                    paths: ssh-keys/
                    file_type: file
                    recurse: yes
                    patterns: "pub"
                    use_regex: yes
                    hidden: yes
            register: files_matched

          - name: Debug files_matched loop
            debug:
                    var: item.path
            loop: "{{ files_matched.files|flatten(levels=1) }}"
            loop_control:
                    label: "{{ item.path }}"

- name: Add Public keys to controller authorized keys
  hosts: controller
  gather_facts: false
  tasks:

          - name: Set authorized key file taken from file
            authorized_key:
                    key: "{{ lookup('file','item') }}"
                    state: present
            with_file:
                    - "{{ files_matched.files }}"


0 commentaires