Python之 部署LNMP業務服務環境

2021-08-14 14:00:57 字數 1521 閱讀 1668

上線之前我們要部署相應的環境,往往乙個業務涉及多種環境,比如web、db、proxy、cache等,本例項通過env.roledefs定義不同角色,再使用@roles("webservers")修飾符繫結到對應的任務函式,實現不同角色的主機部署差異。具體**如下:

# -*- coding:utf-8 -*-

'''部署lnmp業務服務環境

created on 2023年1月12日

@author: liuyazhuang

'''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') #dbatsk任務函式引用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指令碼就可以完成不同業務環境的定製。

Fabric部署LNMP業務服務環境

一 點睛 業務上線之前最關鍵的一項任務便是環境部署,往往乙個業務涉及多種應用環境,比如web db proxy cache等,本示例通過env.roledefs定義不同主機角色,再使用 roles webservers 修飾符 繫結到對應的任務函式,實現不同角色主機的部署差異。二 coding ut...

部署LNMP環境

lnmp linux nginx mysql php 在rhel7系統中,原始碼安裝nginx,使用rpm包安裝mariadb php php fpm軟體。操作過程中需要安裝的軟體列表如下 nginx mariadb mariadb server mariadb devel php php fpm ...

LNMP環境部署

本文已在本人部落格首發 首先開啟瀏覽器輸入 進入一鍵安裝包的首頁 wget驗證md5 md5sum lnmp1.5.tar.gz 解壓後進入資料夾執行install.sh tar zxvf lnmp1.5.tar.gz cd lnmp1.5 install.sh 選擇相應的mysql版本及root密...