2016-05-04 8 views
5

Ich schreibe ein Master-Ansible-Playbook, das Playbooks enthält. Jetzt möchte ich Variablen festlegen, die alle darin angegebenen Playbooks verwenden. Wie lege ich Variablen in diesem Playbook fest? Ich weiß, dass eine der Optionen darin besteht, vars_files einzuschließen und sie mit jedem Playbook zu verwenden. Beispiel: - enthalten: abc.yml vars_files: vars.ymlAngeben von Variablen in Master Ansible playbook

Ich benutze Ansible 1.9.3.

Antwort

3

Zuerst würde ich Ihnen wirklich empfehlen, update Ihre Ansible zur neuesten Version. Es ist sehr einfach, keinen Grund zu haben, zurück zu bleiben.

Trotzdem gibt es viele Möglichkeiten, Variablen in Ihrem Master-Playbook anzugeben. All dies sind mehr oder weniger die gleichen wie bei jedem anderen Spielbuch. Kurz erwähnt:

a. Define sie in Ihrem Spielbuch selbst

- hosts: webservers 
    vars: 
    http_port: 80 

b. Separating in eine Variable-Datei, wie Sie bereits gesagt:

- hosts: all 
    remote_user: root 
    vars: 
    favcolor: blue 
    vars_files: 
    - /vars/external_vars.yml 

Vars/external_vars.yml

somevar: somevalue 
password: magic 

Weitere Möglichkeiten:

c. Using facts

d. Registering output into variables

Zusätzlich, die für Ihren Fall von Bedeutung sein können:

d. Sie können pass variables into includes:

tasks: 
    - include: wordpress.yml wp_user=timmy 
    - include: wordpress.yml wp_user=alice 
    - include: wordpress.yml wp_user=bob 

e. Vorbei variables in command line:

ansible-playbook release.yml -k "version=1.23.45 other_variable=foo" 

-k ist eine Abkürzung für --exra-vars.

Es könnte auch andere Wege geben, die ich im Moment vermisse.

+1

Große Zusammenfassung! Sollte mehr Upvotes haben :) –

Verwandte Themen