Web网站的自动化部署(3)

那为了实现这点:我们需要将多条命令合并起来一起执行;而不加参数这个,我们可以把启动参数都写道前边配置文件中,想办法在执行多条命令时:各条命令自己去自动读取配置就好了!

这里我们可以使用make来实现! make会读取Makefile文件并对应执行。

那我们写一个Makefile文件,而后在里边定义一个自定义命令来对应一组操作,比如:

start_web:
    python gunicorn.py -p
    python gunicorn_daemon.py
    @echo 'server start!'

这样我们只要指定make start_web命令就可以执行2条命令。 我们就可以用这种方式将多条命令组合成一条命令~比如一条启动mysql 一条启动redis。。。

那余下的问题就是该如何让各条命令来自动读取配置信息呢?比如上边 Python gunicorn.py -p 2929  这个2929端口如何自动读取进来呢?

这就牵扯在Makefile中如何定义变量的问题。

我们可以实现一个脚本,其输入不同的参数就会返回不同的配置信息,比如这个脚本名字叫 get_config.py

当执行get_config -port 命令时返回2929

哪下一步我们就可以在Makefile中调用了,样式如下:

start_web:
    python gunicorn.py -p `./get_cofig.py -p`
    python gunicorn_daemon.py
    @echo 'server start!'

这样Makefile就可以自己读取配置信息了。

所以为了实现这一点:我们还要写一个python脚本,用来依据不同命令行参数获取不同配置信息。

这样问题3也解决了。

总结:

为了解决web应用自动部署的问题,我们需要做如下工作:

1.建立个gen_config.py这样的脚本,使用模板技术,依据用户输入的命令行参数来自动生成:复杂结构的配置文件

2.使用Makefile将启动命令精简,为支持这一点:需要实现一个获取配置信息的脚本:依据不同命令行参数来获取配置信息。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4434559568827f22084ec28bed1fd503.html