In Ansible, ist es möglich zu definieren die Authentifizierungsmethode pro playbook?

TL;DR: Ist es möglich, die Kette zwei playbooks mit einem ansible-playbook-Befehl, wo ein playbook Kennwort auth und die anderen playbook-key-auth? (siehe den letzten Abschnitt für real-world-Zweck).

Setup:

Habe ich zwei playbooks, von denen die zweite includes die ersten.

PlaybookA.yml

---
- name: PlaybookA # requires password authentication
  hosts: sub.domain.ext
  remote_user: root
  roles:
    - { role: role1, sudo: yes }
...

PlaybookB.yml

---
- name: Run PlaybookA
  include: PlaybookA.yml

- name: PlaybookB # requires ssh-key authentication
  hosts: sub.domain.ext
  remote_user: ansible
  roles:
    - { role: role2, sudo: yes }
...

Anforderungen:

  1. Führen nur einen Befehl aus.
  2. Verwenden die Passwort-auth für PlaybookA.
  3. Verwenden Sie ssh-key-auth für PlaybookB.

Frage 1:

Ist es möglich, innerhalb von Ansible (Version 1.9.4 oder niedriger) zum ausführen einer ansible-playbook-Befehl erfolgreich ausgeführt PlaybookB mit ssh-key-Authentifizierung aber wenn PlaybookB umfasst PlaybookA, laufen PlaybookA Authentifizierung mittels Passwort?

Frage 2:

Wenn dies nicht möglich ist, mit Ansible 1.9.4 oder niedriger ist, ist dies möglich mit 2.0.0+?

Notizen von Wert:

  1. Ansible bietet --ask-pass (oder -k) als Befehlszeilen-switch aktivieren Passwort-Authentifizierung.
  2. Ansible bietet ask_pass als eine variable, aber es scheint, als ob es kann nur festgelegt werden, innerhalb ansible.cfg (ich habe nicht in der Lage, dies als ein playbook variable, um den gewünschten Effekt).
  3. Versuchen ask_pass als eine Anweisung innerhalb eines playbook im folgenden: ERROR: ask_pass is not a legal parameter of an Ansible Play. Wenn dieser parameter erlaubt war, es würde einen Weg zu weisen ansible auf einer pro-playbook-Ebene, welche Authentifizierungs-Methode zu verwenden.

Zweck /Real World:

Ich bin versucht, erstellen Sie eine configuration-management-workflow mit Ansible, dass wird einfach genug sein, die anderen bei der Arbeit werden in der Lage sein zu lernen /anpassen (und hoffentlich auch der Einsatz von Ansible im Allgemeinen für CM und Orchestrierung).

Für jede neue Maschine (VM oder physisch), dass gebaut wird, ich beabsichtige, für uns zu laufen, zwei playbooks sofort. PlaybookA (wie oben gezeigt) hat die Verantwortung, sich mit den richtigen Standard-Benutzer (normalerweise, hängt von der Infrastruktur [aws, vsphere, keine, etc]). Einmal in seiner sehr begrenzten job:

  1. Der Schaffung der standardisierten user für ansible auf ausführen und installieren Sie die ssh-Schlüssel).
  2. Entfernen Sie alle nicht-root-Benutzer, die möglicherweise vorhanden sind (Artefakte der vm-Infrastruktur, etc).
  3. Deaktivieren Sie den root-Zugriff.
  4. Deaktivieren Sie Kennwort-Authentifizierung (ssh-Schlüssel nur von diesem Punkt auf).

Je nach vm-Infrastruktur (oder deren fehlen), die Standard-Benutzer-oder Standard-Authentifizierung-Methode können anders sein. Zum Ziel der Verabschiedung von Ansible, ich bin versucht, die Dinge sehr einfach für die Kolleginnen und Kollegen, so möchte ich automatisieren, wie viel von diesen flow-Kontrolle wie möglich.

Einmal PlaybookA hat gesperrt die vm und setup das standardisierte Benutzer, PlaybookB verwendet das standardisierte Benutzer, um alle anderen Operationen, die nötig sind, um unsere vm ' s bis zu den notwendigen Basisdaten der tools und utilities, etc.

Irgendwelche Tipps, Hinweise, Anregungen würde sehr geschätzt werden.

  • Warum müssen Sie sich mit einem Passwort überhaupt? Nur prebake Ihre VM-image mit einem SSH-Schlüssel an einen Benutzer (oder associate AWS-Instanz mit einem Schlüssel (- paar), dass Ansible verwenden können, die auf den ersten Lauf. Der erste Schlüssel muss nicht alles sein, auch sichern.
  • Das wäre eine ideale Lösung, eine, die ich tun, verwenden Sie für die VMs, die ich schaffen. Die Lösung, die ich bin zu arbeiten auf, ist jedoch nicht so sehr für mich oder die VMs, die ich erstellen, da es für co-Arbeitnehmer, die sowohl VMs erstellen und sind nicht vertraut mit publickey-Authentifizierung. Die Frage, die ich hier veröffentlicht wird, einen Schritt, in einer Anstrengung, um den übergang Sie publickey-Authentifizierung verwenden.
Schreibe einen Kommentar