En algunos proyectos que tengo a cargo tengo que realizar tareas repetitivas como deploy, reconstruir docker incluso backup de bases de datos.
Entonces para esto desarrolle un pequeño script que me ayuda a realizar estas tareas de forma más rápida.
Tasks spark
Automatización de tareas repetitivas. deploy, backups. etc.
Paquetes y ambiente 📋 
- Python 3.7
- Pipenv
- Fabric
- Pyyaml
Creación de archivo hosts.yml y agregar configuración 🔧 
hosts:
- host: XX.XX.XX.XX
  name: Landing prod
  user: app
  steps:
  - cd: landing
    steps:
    - run: git reset --hard
    - run: git checkout master
    - run: git pull
    - run: npm i
    - run: npm run build
- host: XX.XX.XX.XX
  name: App Diseño
  user: app
  steps:
  - cd: app-diseno
    folder: true
    steps:
    - run: git pull
    - run: npm i
    - run: npm run prod
  - cd: docker-app-diseno
    steps:
    - run: docker-compose up --build --force-recreate -d
  - run: 'docker exec -i docker-app-diseno_app_1 bash -c
   "cd /var/www/ && php artisan migrate --force"'
Ejecución 🔧 
$ python3 main.py
Consiste en tener un archivo hosts.yml donde tenemos configuradas nuestras instrucciones a ejecutar, ejemplo:
hosts:
- host: XX.XX.XX.XX #ip
  name: Landing prod #simple name
  user: app #user
  steps:
  - cd: landing
    steps:
    - run: git reset --hard
    - run: git checkout master
    - run: git pull
    - run: npm i
    - run: npm run build
Con estas instrucciones lo que yo hago es hacer deploy de un sitio estático.
Al ejecutar el script de la siguiente forma:
python3 main.py
Obtendremos un listado de los hosts, al seleccionar uno nos pedira la contraseña para conectarnos e inmediatamente se ejecutaran los comandos y eso es todo.
 


 
    
Top comments (2)
Jajajajaja genial, primer post que veo por aqui en español....genial.
Yo ya vi varios y quiero apoyar a compartir también