В настоящее время у меня есть следующий сборник пьес:Как я могу структурировать свою игру, чтобы иметь больше смысла?
- 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'" }
Все мои группы сохраняются в одном файле ./inventory/all
, например ,:
# -----------------------------------------------------------------------------------
# --------------
# ### 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
Я не могу помочь, но чувствую, что я что делает это слишком сложным. Я стараюсь, чтобы люди не пропускали теги или файлы инвентаря. Но теперь я не уверен, что лучший способ разрешить развертывание для таких вещей, как хосты redis
, которые на самом деле не являются тем, что мы будем рассматривать как «продукт», но по-прежнему нуждаемся в его собственной группе, поскольку она размещена на собственном наборе хосты. Я мог бы просто добавить его в текущий список, [all|proxy|query|rest|redis]
, но ... похоже, должен быть способ указать redis
и еще product
, но в то же время не требуя и того ... Я не знаю, как хоть.
Я хотел бы иметь что-то, где вы могли бы сказать
«Я хочу, чтобы развернуть
proxy
вdev
, и давайте обновимredis
в то время как мы на это»
- это возможно с моей текущей настройкой?