Derzeit habe ich folgende Textbuch:Wie kann ich mein Playbook strukturieren, um mehr Sinn zu machen?
- hosts: "{{env}}_{{product}}"
name: "tools"
sudo: yes
vars_prompt:
product: "Which product would you like to deploy [all|proxy|query|rest]?"
env: "Which environment should we deploy to [dev|qa|test|prod]?"
roles:
- { role: proxy, when: "product == 'all' or product == 'proxy'" }
- { role: query, when: "product == 'all' or product == 'query'" }
- { role: rest, when: "product == 'all' or product == 'rest'" }
Alle meine Gruppen in einer einzigen ./inventory/all
Datei gespeichert werden, zB ,:
# -----------------------------------------------------------------------------------
# --------------
# ### DEV ###
# --------------
# -----------------------------------------------------------------------------------
[dev_all:children]
dev_redis
dev_query
dev_rest
dev_proxy
[dev_redis]
.hosts
[dev_query]
.hosts
[dev_rest]
.hosts
[dev_proxy:children]
dev_proxy-dc1
dev_proxy-dc2
dev_proxy-dc3
[dev_proxy-dc1]
.hosts
[dev_proxy-dc2]
.hosts
[dev_proxy-dc3]
.hosts
# -----------------------------------------------------------------------------------
# --------------
# ### PROD ###
# --------------
# -----------------------------------------------------------------------------------
[prod_all:children]
prod_redis
prod_query
prod_rest
prod_proxy
[prod_redis]
.hosts
[prod_query]
.hosts
[prod_rest]
.hosts
[prod_proxy:children]
prod_proxy-dc1
prod_proxy-dc2
prod_proxy-dc3
[prod_proxy-dc1]
.hosts
[prod_proxy-dc2]
.hosts
[prod_proxy-dc3]
.hosts
ich kann nicht helfen, aber ich fühle mich wie ich bin macht dies jedoch zu komplex. Ich versuche zu vermeiden, dass Personen Tags oder Inventardateien übergeben. Aber jetzt bin ich mir nicht sicher, was der beste Weg ist, um Deploits für Dinge wie redis
Hosts zuzulassen, die nicht wirklich das sind, was wir als "Produkt" betrachten würden, aber immer noch eine eigene Gruppe, da sie auf ihrem eigenen Set gehostet wird Gastgeber. Ich könnte es nur zur aktuellen Liste hinzufügen, [all|proxy|query|rest|redis]
, aber ... es scheint, als sollte es eine Möglichkeit geben, redis
und ein weiteres product
anzugeben, aber zur gleichen Zeit nicht beide erfordern ... Ich weiß nicht wie obwohl.
Ich wollte etwas haben, wo Sie
„
redis
die ichproxy
-dev
, bereitstellen möchten, und lassen Sie aktualisieren, während wir dabei sind“ sagen konnte
- ist das möglich mit meinem aktuellen Setup?