Se for uma ação ad hoc, seu ambiente é pequeno e não muito complexo, todos os envolvidos são informados, você quer voltar ao normal em dois minutos e não se importa se a próxima execução ansiosa mudasse isso ( por exemplo, o serviço interrompido é reiniciado, porque a definição do estado do serviço em seu ansioso playbook diz que sim, então vá em frente com B. Esteja ciente de que você muda o estado do sistema divergindo do que sua descrição em ansible diz…
Se você quiser deixar as coisas mais claras, a solução A é um bom ponto de partida. Você pode criar as definições apropriadas para nginx parado, iniciado, etc., mas no geral é como B, só que as tarefas são definidas em alguns arquivos.
Quanto ao C, você pode desenvolver um pouco mais: tornar o estado dependente de uma variável. Desta forma, você pode tornar explícito o estado desejado em sua configuração ansible. Por que uma variável e não alterar o estado na definição de serviço? Em cenários mais complexos (digamos, iniciar / interromper vários serviços juntos), isso ajuda você a manter as coisas claras e simples. Se você tiver vários ambientes (armazenamento temporário, produção, etc.), isso facilita manter as definições inalteradas enquanto altera o estado em apenas um ambiente.
Tornar as coisas explícitas oferece algumas vantagens:
-
está documentado para os outros (e para o seu futuro) ver
-
executar ansible independentemente da sua tarefa não irá interferir (dado que todos têm o estado atual)
-
se você executar ansible automaticamente - acionado a partir do controle de versão -, você poderá usar isso para alterar o estado e também a alteração de volta