一 點睛
業務上線之前最關鍵的一項任務便是環境部署,往往乙個業務涉及多種應用環境,比如web、db、proxy、cache等,本示例通過env.roledefs定義不同主機角色,再使用「@roles('webservers')」修飾符 繫結到對應的任務函式,實現不同角色主機的部署差異。
二 **
#coding=utf-8
#!/usr/bin/env python
from fabric.colors import *
from fabric.api import *
env.user='root'
env.roledefs =
env.passwords =
@roles('webservers') # webtask任務函式引用'webservers'角色修飾符
def webtask(): # 部署nginx php php-fpm等環境
print yellow("install nginx php php-fpm...")
with settings(warn_only=true):
run("yum -y install nginx")
run("yum -y install php-fpm php-mysql php-mbstring php-xml php-mcrypt php-gd")
run("chkconfig --levels 235 php-fpm on")
run("chkconfig --levels 235 nginx on")
@roles('dbservers') # dbtask任務函式引用'dbservers'角色修飾符
def dbtask(): # 部署mysql環境
print yellow("install mysql...")
with settings(warn_only=true):
run("yum -y install mysql mysql-server")
run("chkconfig --levels 235 mysqld on")
@roles ('webservers', 'dbservers') # publictask任務函式同時引用兩個角色修飾符
def publictask(): # 部署公共類環境,如epel、ntp等
print yellow("install epel ntp...")
with settings(warn_only=true):
run("rpm -uvh ")
run("yum -y install ntp")
def deploy():
execute(publictask)
execute(webtask)
execute(dbtask)
三 執行結果
Python之 部署LNMP業務服務環境
上線之前我們要部署相應的環境,往往乙個業務涉及多種環境,比如web db proxy cache等,本例項通過env.roledefs定義不同角色,再使用 roles webservers 修飾符繫結到對應的任務函式,實現不同角色的主機部署差異。具體 如下 coding utf 8 部署lnmp業務...
Fabric 自動部署
部署大多都是一些重複的工作,故在這裡記錄一下學習fabric的過程,借鑑了網上的大神和文件,留作紀念。sudo pip install fabric sudo 取決於os主要參考 官方文件 from fabric.api import local,lcd deftest local with lcd...
部署LNMP環境
lnmp linux nginx mysql php 在rhel7系統中,原始碼安裝nginx,使用rpm包安裝mariadb php php fpm軟體。操作過程中需要安裝的軟體列表如下 nginx mariadb mariadb server mariadb devel php php fpm ...