Usar Ansible para download un solo file de un repository privado de github a un host remoto

Escenario de ejemplo: los files de configuration para un determinado service se mantienen bajo control de versión en un repository privado de github. Quiero escribir un libro de estrategias que busque uno de estos files en el nodo remoto y lo coloque en la location deseada.

Puedo pensar en varias soluciones para esto:

  1. haga un checkout en la máquina que ejecuta ansible ( local_action ) y luego use el module de copy
  2. haga un checkout en el nodo remoto (con el module git ), copie los files en la location deseada con el command: cp src dest creates=dest (quizás haga esto con un manejador, solo cuando el repository tenga cambios para extraer)
  3. use el module url o el command: wget https://raw.github.com/repo/.../file creates=file en el libro de jugadas para download solo el file de su interés. ¿El module de command realmente va a verificar si el file que se va a crear es diferente del que ya existe o simplemente verifica que el file exista?
  4. use wget en la máquina que ejecuta ansible ( local_action ) y luego use el module de copy para local_action al nodo remoto

Cuáles son las ventajas / desventajas de estos. ¿Cuál (si alguno) de estos podría considerarse una buena práctica? ¿Cuál es la mejor solución general para esto?

Comenzaré diciendo que elegimos la segunda solución para nuestro entorno de producción y les garantizo una cosa: simplemente funciona. Ahora para la versión más larga:

Solución no. 1:

  • Simple y robusto, solo funcionará
  • No "contamina" los serveres de producción con files irrelevantes (otros files de configuration)
  • No carga serveres de producción con E / S a GitHub (probablemente insignificante)

Solución no. 2:

  • Simple y robusto, solo funcionará
  • Para networkingucir la contaminación, clonamos el repository de configuration a / tmp y lo eliminamos al final del libro de jugadas

Solución no. 3/4:

Supongo que funcionará, pero se siente un poco extraño tener tu configuration en control de fuente y luego no usar las funciones de control de fuente. La ventaja de estas soluciones es que puede "seleccionar" qué files de configuration desea download en lugar de clonar todo el repository. Esto también networkinguce la E / S contra github ya que la clonación se vuelve más pesada con el time.