[ English | русский | Deutsch | 한국어 (대한민국) | English (United Kingdom) | Indonesia | español | français ]
Verwenden von OpenStack-Ansible in Ihrem Projekt¶
Einschließlich OpenStack-Ansible in Ihrem Projekt¶
Die Einbindung des openstack-ansible-Repository in ein anderes Projekt kann auf verschiedene Arten erfolgen:
Ein Git-Submodul zeigte auf ein freigegebenes Tag.
Ein Skript zum automatischen Ausführen eines Git-Checkouts von OpenStack-Ansible.
Wenn Sie OpenStack-Ansible in einem Projekt verwenden, sollten Sie eine parallele Verzeichnisstruktur verwenden, wie im Abschnitt `` ansible.cfg``-Dateien gezeigt.
Beachten Sie auch, dass das Kopieren von Dateien in Verzeichnisse wie `` env.d`` oder `` conf.d`` über eine Art Skript innerhalb des Erweiterungsprojekts erfolgen sollte.
Einschließlich OpenStack-Ansible mit Ihrer Ansible-Struktur¶
Sie können Ihre eigene Playbook-, Variablen- und Rollenstruktur erstellen, während Sie weiterhin die OpenStack-Ansible-Rollen und -Bibliotheken enthalten, indem Sie Umgebungsvariablen festlegen oder /usr/local/bin/openstack-ansible.rc
anpassen.
Die relevanten Umgebungsvariablen für OpenStack-Ansible sind wie folgt:
ANSIBLE_LIBRARY
Diese Variable sollte auf
/etc/ansible/plugins/library
zeigen. Auf diese Weise können Rollen und Playbooks auf die enthaltenen Ansible-Module von OpenStack-Ansible zugreifen.ANSIBLE_ROLES_PATH
Diese Variable sollte standardmäßig auf
/etc/ansible/roles
zeigen. Dadurch kann Ansible alle OpenStack-Ansible-Rollen, auf die sich die Erweiterungsrollen beziehen, ordnungsgemäß nachschlagen.ANSIBLE_INVENTORY
Diese Variable sollte auf
openstack-ansible/inventory/dynamic_inventory.py
zeigen. Mit dieser Einstellung haben Erweiterungen Zugriff auf dasselbe dynamische Inventar, das OpenStack-Ansible verwendet.
Die Pfade zum obersten Verzeichnis openstack-ansible
können in dieser Datei relativ sein.
Betrachten Sie diese Verzeichnisstruktur:
my_project
|
|- custom_stuff
| |
| |- playbooks
|- openstack-ansible
| |
| |- playbooks
Die Umgebungsvariablen würden ../openstack-ansible/playbooks/<directory>
benutzen.
Hinzufügen neuer oder übergeordneter Rollen in Ihrer OpenStack-Ansible-Installation¶
Standardmäßig verwendet OpenStack-Ansible die ansible-role-requirements Datei, um die Rollen zu holen, die für den Installationsprozess benötigt werden.
Die Rollen werden in den Standard ANSIBLE_ROLES_PATH
geholt, der standardmäßig /etc/ansible/roles
ist.
ANSIBLE_ROLE_FILE
ist eine Umgebungsvariable, die auf den Speicherort einer YAML-Datei verweist, die ansible-galaxy konsumieren kann, wobei angegeben wird, welche Rollen heruntergeladen und installiert werden sollen. Der Standardwert dafür ist ansible-role-anforderungen.yml
.
Sie können die Datei ansible-role-requirement überschreiben, indem Sie die Umgebungsvariable ANSIBLE_ROLE_FILE
definieren, bevor Sie das Skript bootstrap-ansible.sh
ausführen.
It is now the responsibility of the deployer to maintain appropriate versions pins of the ansible roles if an upgrade is required.
Maintaining local forks of ansible roles¶
The Train release of openstack-ansible adds an optional new config file
which defaults to /etc/openstack_deploy/user-role-requirements.yml
.
It is in the same format as ansible-role-requirements.yml
and can be
used to add new roles or selectively override existing ones. New roles
listed in user-role-requirements.yml
will be merged with those
in ansible-role-requirements.yml
, and roles with matching names
will override those in ansible-role-requirements.yml
. It is easy
for a deployer to keep this file under their own version control and out
of the openstack-ansible tree.
This allows a deployer to either add new ansible roles, or override the location or SHA of existing individual roles without replacing the original file entirely. It is also straightforward to include the