Hintergrund,ansible läuft einen Befehl von vielen lokal in einer Schleife
Ich versuche, eine Schleife, die iteriert über Hash aus qa.yml Datei lesen zu erstellen und für jeden Benutzer in der Liste es versucht, eine finden Datei auf dem lokalen Server (öffentlicher Schlüssel), sobald die Datei gefunden wurde, erstellt sie den Benutzer auf dem entfernten Rechner und kopiert den öffentlichen Schlüssel auf authorized_key auf dem entfernten Rechner.
Ich versuche, es in einer Art der Iteration zu implementieren, um die Schlüssel zu aktualisieren oder weitere Benutzerschlüssel hinzuzufügen, muss ich die .yml-Liste ändern und die öffentliche Schlüsseldatei an der richtigen Stelle platzieren. Allerdings kann ich die Funktion local_action + nicht finden.
---
- hosts: tag_Ansible_CLOUD_QA
vars_files:
- ../users/qa.yml
- ../users/groups.yml
remote_user: ec2-user
sudo: yes
tasks:
- name: Create groups
group: name="{{ item.key }}" state=present
with_dict: "{{ user_groups }}"
- name: Create remote users QA
user: name="{{ item.key }}" comment="user" group=users groups="qa"
with_dict: "{{ qa_users }}"
- name: Erase previous authorized keys QA
shell: rm -rf /home/"{{ item.key }}"/.ssh/authorized_keys
with_dict: "{{ qa_users }}"
- name: Add public keys to remote users QA
local_action:
find: paths="{{'/opt/pubkeys/2016/q2/'}}" patterns="{{ item.key }}"
register: result
authorized_key: user="{{ item.key }}" key="{{ lookup('file', result) }}"
with_dict: "{{ qa_users }}"
Hash:
qa_users:
user1:
name: User 1
user2:
name: User 2
Danke für das Feedback und Vorschlag, den ich es wahrscheinlich folgen wird, aber ich bin neugierig, warum ich diesen Fehler werden immer wenn local_action ausgeführt wird: - Name: Find keys, ERROR: Syntaxfehler beim Laden des YAML-Skripts, credentials/distribute-public-key.yml Hinweis: Der Fehler kann tatsächlich vor dieser Position angezeigt werden: Zeile 41, Spalte 17 - Name: Schlüssel finden local_action: ^ –
@DmitryR möchten Sie vielleicht jetzt mit meinem Schnitt versuchen. Das ursprüngliche Problem mit der Syntax local_action wurde nicht erkannt. Es ist immer noch unerprobt, also könnte es immer noch scheitern. – ydaetskcoR