fabric差异化部署mysql和lnmp

1、代码如下:

vim lnmp.py

 ------------------------------------------>

#!/usr/bin/env python

from fabric.colors import *
from fabric.api import *

env.user = 'root'
env.roledefs = {
    'node1': ['172.16.1.207'],
    'node2': ['172.16.1.208']
}
env.passwords = {
    'root@172.16.1.207:22': 'redhat',
    'root@172.16.1.208:22': 'redhat'
}

@roles('node1')
def webtask():
    print yellow("Install nginx php php-fpm...")
    with settings(warn_only=True):
        run("apt-get install nginx -y")
run("apt-get install mysql-server -y") run("apt-get install php php-fpm php-mysql php-mbstring php-xml php-mcrypt php-gd -y") run("service nginx start") run("service php-fpm start") @roles('node2') def dbtask(): print yellow("Install Mysql...") with settings(warn_only=True): run("apt-get install mysql-server -y") run('service mysql restart') @roles('node1','node2') def publictask(): print yellow("Install epel ntp...") with settings(warn_only=True): run("apt-get install ntp -y") def deploy(): execute(publictask) execute(webtask) execute(dbtask)

2、执行文件

fab -f lnmp.py deploy
原文地址:https://www.cnblogs.com/jefflee168/p/7339584.html