1. from fabric.api import *
    2. from fabric.contrib.console import confirm
    3. from fabric.utils import abort
    4. from fabric.colors import *
    5. import time,os,json
    6. """
    7. 单机版安装fdfs:
    8. 1、上传fsdf程序包;
    9. 2、修改配置文件;
    10. 3、启动程序;
    11. """
    12. # 定义一些常量
    13. ## 本地软件目录
    14. env.local_softdir="E:/安装/"
    15. ## 远端家目录
    16. env.remote_dir="/data/"
    17. ##fdfs存储路径
    18. env.storage_dir = "/data/airport/fdfs"
    19. #fdfs安装路径
    20. env.remote_softdir = "/data/fastdfs"
    21. env.roledefs = {
    22. 'fdfs': ["10.135.8.157"],
    23. }
    24. env.user = 'root'
    25. env.password = 'asdf1@34'
    26. @task()
    27. def editServer(ip,file):
    28. config = """
    29. [fdfs]
    30. fdfs-url=%s
    31. fdfs-src=%s
    32. group_name=group1
    33. """ %(ip,file)
    34. return config
    35. @roles('fdfs')
    36. @task()
    37. def fdfs_deploy():
    38. with cd(env.remote_dir):
    39. ip = env.host
    40. print("开始部署")
    41. run("echo 'start deploy fdfs'")
    42. ifExists=run(""" [ -e "./fastdfs" ] && echo "cunzai" || echo 'bucunzai'""")
    43. if ifExists == "bucunzai":
    44. put(env.local_softdir + "fastdfs.tar.gz", env.remote_dir)
    45. #修改配置文件
    46. serverconfig = editServer(env.host,env.storage_dir)
    47. run(""" echo '%s' > /data/server.conf""" % serverconfig)
    48. run("tar -zxvf fastdfs.tar.gz")
    49. else:
    50. print("安装文件已存在,不需要再进行安装,退出安装")
    51. sys.exit(1)
    52. @roles('fdfs')
    53. @task()
    54. def fdfs_start():
    55. with cd(env.remote_softdir):
    56. run("./install.sh",pty=False)
    57. run("./start.sh",pty=False)
    58. @task
    59. def install(default=True):
    60. execute(fdfs_deploy)
    61. execute(fdfs_start)