fabric自动化部署django

使用fabric部署django应用


使用fabric部署django应用

本文是个人网站易读中文网自动化部署的脚本实现,如下代码在ubuntu和debian中测试经过python

因为网站使用的是python技术,鉴于python的强大,在自自动部署上有fabric这个一个强大的工具,阅读本文除了略懂pythonfabric,还须要安装fabtools,安装这个是为了简化一些基本的操做(为不太懂linux的人找的借口而已),里面封装了很是多的命令。下面我一步一步的将我网站的自动部署过程写下来mysql

  • 首先是fabric文件中基本的配置,拿到一个vps之后,会有一个默认的root帐户,你们在部署网站的时候尽可能不要使用root帐户,不太安全,万一误删了文件怎么办!因此首先得建立一个用户,最好具备sudo权限linux

    from fabric.api import *
    from fabtools import require
    #建立用户的代码
    user = xxx
    password = xxx
    def add_user():
        require.users.user(user, password)
        require.users.sudoer(user)

     

    使用下面代码运行函数nginx

    fab -H root@ip:host add_usergit

    这样就建立了一个具备sudo 权限的用户,建立完用户后,这个root帐号和密码之后就不用使用了(除了你还想建立新的用户),直接使用建立好的这个user就能够了,而后在脚本里配置一个role,这样每次远程操做的时候不须要输入帐号了密码了sql

    env.roledefs = {
            "user": "用户名@ip:port",
            }
    env.passwords = {
            "用户名@ip:port":"密码"
            }

     

    配置好后,下面会用到数据库

  • 建立了用户后,安装须要的软件django

    @task
    @roles("user")
    def install_deb():
        require.deb.packages([
            "python-dev",
            "python-lxml",
            "python-imaging",
            "git",
            "libffi-dev",
            "libxml2",
            "python-libxslt1",
            "python-libxml2",
            "libxslt1-dev",
            "libxml2-dev",
            "libmysqlclient-dev",
            "libjpeg-dev",
            "libfreetype6-dev"
        ])

     

    你们看到这个函数用了两个装饰器,一个是task,这个每一个fab函数都须要,另外一个是roles('user'),有了这个之后,安装软件的命令就变成了ubuntu

    fab install_debapi

    这样就不须要输入帐号密码了,减小了操做键盘的时间,因此之后每一个函数都会带上这两个装饰器

  • 配置mysql

    def create_mysql():
        require.mysql.server(password=mysql_root_pw)
        with settings(mysql_user=mysql_root, mysql_password=mysql_root_pw):
            require.mysql.user(mysql_user, mysql_pw)
            require.mysql.database(mysql_db, owner=mysql_user)

     

    里面的那些变量变一下就能够用

先写这么多吧!今天不想写了,后面还有一些就是建立python环境,git code,创建数据库,配置static file,配置gunicorn,supervisor,nginx
而后网站就开始运行了!
最后附上小站 易读中文网 你们要是以为本文对你有一点点做用,转载的时候请保留小站的连接!谢谢了

相关文章
相关标签/搜索