2017-09-14 1 views
0

Ich habe einen Benutzer mit Ansible erstellt und möchte nun die Datei .ssh/id_rsa.pub in die Datei authorized_keys kopieren.ansible - Kopieschlüssel für autorisierte Schlüsseldatei

Ich überprüfte das authorized_keys-Modul, aber das wird verwendet, um die Schlüssel vom Host-Computer zum Gast zu kopieren.

Fragen, was wäre der richtige Ansatz.

- name: Adding user - {{ user }} 
    user: name={{ user }} 
     group={{ group }} 
     shell=/bin/bash 
     password=${password} 
     groups=sudo 
     append=yes 
     generate_ssh_key=yes 
     ssh_key_bits=2048 
     ssh_key_file=.ssh/id_rsa 

Antwort

0

Der erzeugte Schlüssel wird vom user Modul zurückgegeben, so dass Sie das Ergebnis register und dann in einer nachfolgenden authorized_key Aufgabe, den Schlüssel verwenden. Das heißt, wenn ich ein Textbuch wie dieses:

- hosts: localhost 
    tasks: 
    - name: add user 
     user: 
     name: testuser 
     shell: /bin/bash 
     password: secret 
     append: yes 
     generate_ssh_key: yes 
     ssh_key_bits: 2048 
     register: newuser 

    - debug: 
     var: newuser 

ich als Ausgabe etwas wie sehen:

TASK [debug] ******************************************************************* 
ok: [localhost] => { 
    "newuser": { 
     "append": true, 
     "changed": true, 
     "comment": "", 
     "group": 21946, 
     "home": "/home/testuser", 
     "move_home": false, 
     "name": "testuser", 
     "password": "NOT_LOGGING_PASSWORD", 
     "shell": "/bin/bash", 
     "ssh_fingerprint": "2048 SHA256:Tn6UOl/WYToJCaW3QUnLMWgEfthILIsoCP+534qWzfw ansible-generated on lkellogg-pc0dzzve (RSA)", 
     "ssh_key_file": "/home/testuser/.ssh/id_rsa", 
     "ssh_public_key": "ssh-rsa ... ansible-generated on examplehost", 
     "state": "present", 
     "uid": 21940 
    } 
} 

So können Sie eine Aufgabe wie folgt hinzu:

- authorized_key: 
    user: root 
    state: present 
    key: "{{ newuser.ssh_public_key }}"