Herramientas de usuario

Herramientas del sitio


otros:fabric

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
otros:fabric [2013/08/25 17:01]
alfred [Tareas complejas]
otros:fabric [2020/05/09 09:25] (actual)
Línea 106: Línea 106:
 </​code>​ </​code>​
 Ejecutará ''​get_versión''​ únicamente en los hosts: www1, www2, www3, www4, www5, nas1 y nas2. Ejecutará ''​get_versión''​ únicamente en los hosts: www1, www2, www3, www4, www5, nas1 y nas2.
 +
 +==== Gestión de errores ====
 +<code python>
 +def test():
 +    with settings(warn_only=True):​
 +        result = local('​./​manage.py test my_app',​ capture=True)
 +    if result.failed and not confirm("​Tests failed. Continue anyway?"​):​
 +        abort("​Aborting at user request."​)
 +</​code>​
 ===== Ejemplos ===== ===== Ejemplos =====
 ==== Copiar un directorio ==== ==== Copiar un directorio ====
Línea 120: Línea 129:
 </​code>​ </​code>​
  
 +==== Llamadas complejas ====
 +<code python>
 +def install(pkg=None):​
 +   if pkg is not None:
 +      env["​pkg"​] = pkg
 +   elif pkg is None and env.get("​pkg"​) is None:
 +      env["​pkg"​] = prompt("​Which package? ")
 +   ​sudo('​yum install -y %s' % env["​pkg"​])
 +</​code>​
 +<​code>​
 +$ fab --hosts=host1,​host2,​host3 install
 +$ fab --hosts=host1,​host2,​host3 install:​pkg=wormux
 +$ fab --hosts=host1,​host2,​host3 install:​wormux
 +$ fab --skip-bad-hosts -u user -p 12345 -i ~/​.ssh/​id_dsa --warn-only --hosts=host1,​host2,​host3,​host4 --parallel --pool-size=20 install:​pkg=wormux
 +</​code>​
 +==== Script que ejecuta tareas según host ====
 +  * {{:​otros:​fabric:​fabric-executing.zip|script}}
 +===== Tips & tricks =====
  
 +==== Utilizar un fichero con los nombres de hosts ====
 +<code python>
 +def set_hosts():​
 +   ​env.hosts = open('​hosts',​ '​r'​).readlines()
 +</​code>​
 +Con esta tarea pondríamos los hostnames en un fichero llamado host y podríamos lanzar nuestro fabfile así:
 +<​code>​
 +$ fab --skip-bad-hosts -u user -p 12345 -i ~/​.ssh/​id_dsa --warn-only --parallel set_hosts
 +</​code>​
 +
 +==== Ejecutar comandos en un directorio concreto ====
 +Usando ''​with'':​
 +<code python>
 +with cd("​~/​gitrepo"​):​
 +   ​run('​git add --all'​)
 +   ​run('​git commit -m "My super awesome automated commit script for `date`"'​)
 +</​code>​
 +
 +==== Usar los nombres en ssh.config ====
 +<code python>
 +from fabric.api import run, env
 +env.use_ssh_config = True
 +</​code>​
otros/fabric.1377450114.txt.gz · Última modificación: 2020/05/09 09:25 (editor externo)