SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
1.
Automation, Fabric and
Django...
...or how to make our lives better
2.
About me
eng. Ilian Iliev
● Web Developer for 8 years
● Python/Django fan for 3 years
● Ubuntu user for 2 years
● Part of Cybert Arts Web Team
● iiliev@melontech.com
● http://ilian.i-n-i.org
● https://github.com/IlianIliev/
3.
Repetition
"Repetition leads to boredom, boredom to
horrifying mistakes, horrifying mistakes to
God-I-wish-I-was-still-bored" Will Larson
4.
Automation
● Daily tasks
● Server setup
● System update/maintenance tasks
● New project creation
● Deployment procedures
All of the above on multiple stations all around
the world cloud
5.
Show me the Money
or
What we Gain
Developers QAs Admins
● easy deployment ● new build here and now ● less work
● less mistakes ● automate smoke test ● move server setup in the
● no more begging the process hands of the developers
admins ● no more "make me a
new build" requests
● focus only on specific
problems
6.
Fabric
Fabric is a Python (2.5 or higher) library and
command-line tool for streamlining the use of
SSH for application deployment or systems
administration tasks.
7.
Why Fabric
● It is Python(Python is awesome)
● It is simple
● It is light
● It is quick
● It is useful
8.
Simple Example ...
from fabric.api import run
def host_type():
run('uname -s')
#fab -H localhost, linuxbox host_type
9.
... and Advanced One
from fabric.api import sudo
def add_user(user, make_sudoer = False):
with settings(warn_only=True):
result = sudo('useradd -m %s' % (user))
if not result.failed:
if make_sudoer:
sudo('echo "%s ALL=(ALL) ALL" >> /etc/sudoers' % user)
password = generate_password()
sudo('echo "%s:%s" | chpasswd' % (user, password))
return password
return False