16
Tempos Modernos Tempos Modernos Com Fabric Com Fabric

Tempos modernos com fabric

Embed Size (px)

Citation preview

Page 1: Tempos modernos com fabric

Tempos ModernosTempos ModernosCom FabricCom Fabric

Page 2: Tempos modernos com fabric

/----\ -------/ \ / \ / | -----------------/ --------\ ----------------------------------------------

Carlos [email protected]

carlosmaniero

http://linkedin.com/in/carlosmaniero

Page 3: Tempos modernos com fabric

É em Python ♥Multi tarefas

SSH

Why Fabric?

Command Line

Page 4: Tempos modernos com fabric

$ pip install fabric

Instalação

Page 5: Tempos modernos com fabric

Hello World!fabric.py

def hello(name='World'): print("Hello, {}!".format(name))

Page 6: Tempos modernos com fabric

Hello World!$ fab helloHello, World!

Done.

$ fab hello:”Charlie Chaplin”Hello, Charlie Chaplin!

Done.

Page 7: Tempos modernos com fabric

fabric.api

● env● run● sudo● local● get● put● prompt● reboot

Page 8: Tempos modernos com fabric

fabric.api.env

env.hosts = ['pythonildo@localhost:2020']

env.passwords = {'pythonildo@localhost:2020': '12345'

}

def test():print(env.host_string)

Page 9: Tempos modernos com fabric

fabric.api.env

env.passwords = {'pythonildo@localhost:2020': '12345'

}

env.hosts = env.password.keys()

Page 10: Tempos modernos com fabric

from fabric.api import (run, sudo, reboot)

def joke():run('hostname')

sudo('apt-get -y install moo')reboot()

Page 11: Tempos modernos com fabric

$ fab joke

[pythonildo@localhost:2020] Executing task 'joke'[pythonildo@localhost:2020] run: hostname[pythonildo@localhost:2020] out: ubuntu[pythonildo@localhost:2020] out:

[pythonildo@localhost:2020] sudo: apt-get moo[pythonildo@localhost:2020] out: sudo password:[pythonildo@localhost:2020] out: (__) [pythonildo@localhost:2020] out: (oo) [pythonildo@localhost:2020] out: /------\/ [pythonildo@localhost:2020] out: / | || [pythonildo@localhost:2020] out: * /\---/\ [pythonildo@localhost:2020] out: ~~ ~~ [pythonildo@localhost:2020] out: ..."Have you mooed today?"...[pythonildo@localhost:2020] out:

[pythonildo@localhost:2020] out: sudo password:[pythonildo@localhost:2020] out:

Done.Disconnecting from pythonildo@localhost:2020... done.

[pythonildo@localhost:2020] Executing task 'joke'[pythonildo@localhost:2020] run: hostname[pythonildo@localhost:2020] out: ubuntu[pythonildo@localhost:2020] out:

[pythonildo@localhost:2020] sudo: apt-get moo[pythonildo@localhost:2020] out: sudo password:[pythonildo@localhost:2020] out: (__) [pythonildo@localhost:2020] out: (oo) [pythonildo@localhost:2020] out: /------\/ [pythonildo@localhost:2020] out: / | || [pythonildo@localhost:2020] out: * /\---/\ [pythonildo@localhost:2020] out: ~~ ~~ [pythonildo@localhost:2020] out: ..."Have you mooed today?"...[pythonildo@localhost:2020] out:

[pythonildo@localhost:2020] out: sudo password:[pythonildo@localhost:2020] out:

Done.Disconnecting from pythonildo@localhost:2020... done.

Page 12: Tempos modernos com fabric

from fabric.api import (local, prompt)

def git_push():check_noob = prompt( 'Quanto é 1 + 1?',

defaulf=1, validate=int ) if check_noob == 2:

local('git push')

Page 13: Tempos modernos com fabric

from fabric.api import get, put

def set_ngnix_conf():get(

remote_path='/etc/ngnix/conf.d/default', local_path='/bkp/ngnix/default' ) put( remote_path='/etc/ngnix/conf.d/default', local_path='/project/conf/ngnix.conf', use_sudo=True, ) sudo('service ngnix restart')

Page 14: Tempos modernos com fabric

fabric.context_managers

● cd● lcd

Page 15: Tempos modernos com fabric

def update_app():

with lcd('/home/pythonildo/project/'):result = local('./manage.py test')if result.failed:

print('foram encontrados erros na app'

)exit(0)

with cd('/var/www/project/'):run('git pull')

from fabric.api import localfrom fabric.context_managers import cd, lcd

Page 16: Tempos modernos com fabric

/----\ -------/ \ / \ / | -----------------/ --------\ ----------------------------------------------

Carlos [email protected]

carlosmaniero

http://linkedin.com/in/carlosmaniero