2016-08-09 36 views
0

Ich komme aus einem Puppet-Hintergrund mit Vagrant und habe einige Schwierigkeiten, Ansible und seine Unterschiede zu verstehen.Ansible Ordnerstruktur

Meine Puppen Struktur sah wie folgt aus:

puppet 
----servers 
--------Backend 
------------Vagrantfile 
----src 
--------manifests 
------------nodes 
----------------development 
--------------------backend.pp 
--------modules 
----------------mysql 

Einrichtung war einfach, cd zum Vagrantfile und die VM mit Vagrant anwerfen.

Nun ist dies mein erster Entwurf eines ansible Ordnerstruktur:

ansible 
----servers 
--------Backend 
------------Vagrantfile 
------------ansible.cfg 
----sources 
--------backend.yml 
--------site.yml 
--------inventories 
------------development 
----------------group_vars 
--------------------all 
--------------------backend 
----------------hosts 
--------playbooks 
--------roles 
------------mysql 

Folgende Fragen jetzt:

  • Ist das beste Praxis für ansible oder zu nahe an Puppet?

  • Ist es richtig, backend.yml wie ein Marionettenknotenmanifest zu behandeln?

  • Wo sollte ich site.yml und backend.yml setzen? This example hat sie im Hauptverzeichnis, während here ist es im Verzeichnis "spielt". Was ist der Unterschied?

  • Ich denke meine Group_vars in group_vars/backend werden nicht richtig verwendet, wie kann ich darauf zugreifen?

Quellen:

http://leucos.github.io/ansible-files-layout/

https://github.com/ansible/ansible-examples

https://github.com/enginyoyen/ansible-best-practises

+0

Als jemand, der Puppet und Ansible tut, sind das keine Best Practices für beide, so dass ein Vergleich schwierig wird. Wenn Sie nur an Ansible-Best Practices interessiert sind (und ich glaube, Sie sind), dann ist die folgende Antwort eher hilfreich für Sie. –

Antwort

1

Sie einige Beispiele für den empfohlenen Layout gefunden, aber nicht the official one. Das sollte hoffentlich viele Ihrer Fragen beantworten, aber ich werde versuchen, sie auch hier anzusprechen.

Ist diese Best Practice für Ansible oder zu nah an Puppet?

Es ist definitiv nicht das empfehlen Layout für Ansible. Im Best Practices-Layout gibt es keine servers oder sources - die Dinge in denen alle auf der obersten Ebene leben (was bedeutet "Server" sowieso?).

Ist es richtig, backend.yml wie ein Puppet-Node-Manifest zu behandeln?

Ich bin nicht vertraut mit Puppet, und so kann diese Frage nicht beantworten.

Wo sollte ich site.yml und backend.yml setzen? In diesem Beispiel befinden sie sich im Hauptverzeichnis, während sie sich im Verzeichnis "Play" befinden. Was ist der Unterschied?

Die offizielle Empfehlung hat alle Playbooks über das Stammverzeichnis bespritzt. Dies wird jedoch ein wenig unordentlich, so dass einige Leute sie in ein Unterverzeichnis stellen (in Ihren Beispielen, plays).Dies funktioniert einigermaßen gut, aber Sie müssen die Pfade in Ihren Playbooks entsprechend anpassen.

Ich denke, dass meine group_vars in group_vars/backend nicht richtig verwendet werden, wie kann ich darauf zugreifen?

Sie sollten sie nicht in ein Unterverzeichnis des Inventarordners stellen, da sie nicht Teil des Inventars sind. Es gibt eine Reihe von Orten, um Variablen zu definieren, und Sie sollten the documentation lesen, um zu erfahren, was sie sind und wann Sie sie verwenden sollten, aber group_vars sollte im Stammverzeichnis des Verzeichnisses mit allem anderen stehen.