• 2018年7月7日笔记


    • 习题1:installApp.py
     1 def nginx():
     2     resultBean = dict()
     3     __salt__['cp.get_file']("salt:_shell/app/nginx.sh /usr/local/src/installnginx.sh")
     4     jid = __salt__['cmd.async']
     5     cmd = "sh /usr/local/src/installnginx.sh"
     6     status, output = commands.getstatusoutput(cmd)
     7     if status == 0:
     8         resultBean['code'] = 0
     9         resultBean['message'] = 'success'
    10         resultBean['data'] = output
    11     else:
    12         resultBean['code'] = -1
    13         resultBean['message'] = 'install nginx error'
    14         resultBean['data'] = output
    15     return resultBean
    16 
    17 def tomcat():
    18     pass
    19 
    20 def keepalived():
    21     pass
    22 
    23 def lvs():
    24     pass
    25 
    26 def jdk():
    27     pass
    28 
    29 def mysql():
    30     pass
    31 
    32 def zookeeper():
    33     pass
    34 
    35 def redis():
    36     pass
    • 习题2:masterApp.py
     1 import codecs
     2 import json
     3 import commands
     4 
     5 
     6 def publicKey(ipaddr):
     7     with codecs.open('/tmp/{0}.txt'.format(ipaddr), 'w') as f:
     8         f.write("{0} ansible_ssh_pass=123456".format(ipaddr))
     9     resultBean = dict()
    10     cmd = "ansible -i /tmp/{0}.txt all -m script -a '/srv/salt/_shell/installpub.sh'".format(ipaddr)
    11     status, output = commands.getstatusoutput(cmd)
    12     if status == 0:
    13         resultBean['code'] = 0
    14         resultBean['message'] = 'success'
    15         resultBean['data'] = output
    16         return json.dumps(resultBean)
    • 习题3:saltapi.py
     1 import json
     2 
     3 import requests
     4 
     5 
     6 class SaltServer(object):
     7     def __init__(self):
     8         self.session = requests.session()
     9         self.token = self.getToken()
    10 
    11 
    12     def getToken(self):
    13         url =  "http://192.168.48.135:8000/login"
    14         headers = {"Accept": "application/json"}
    15         data = {
    16             "username": "saltapi",
    17             "password": "saltapi",
    18             "eauth": "pam"
    19         }
    20         res = self.session.post(url=url, headers=headers, data=data)
    21         text = res.text
    22         result = json.loads(text)
    23         token = result.get("return")[0].get("token")
    24         return token
    25 
    26     def runModules(self, minionid, fun, arg=None):
    27         url = "http://192.168.48.135:8000"
    28         data = {
    29             "client": "local",
    30             "tgt": minionid,
    31             "fun": fun,
    32             "arg": arg
    33         }
    34         resultBean = dict()
    35         try:
    36             res = self.session.post(url=url,  data=data)
    37             text = res.text
    38             data = json.loads(text).get("return")
    39             resultBean['code'] = 0
    40             resultBean['message'] = "success"
    41             resultBean['data'] = data
    42         except Exception as e:
    43             resultBean['code'] = 0
    44             resultBean['message'] = "success"
    45             resultBean['data'] = e
    46         finally:
    47             return resultBean
    48 
    49 
    50     def runRunner(self, fun, **kwargs):
    51         url = "http://192.168.48.135:8000"
    52         data = {
    53             "client": "runner",
    54             "fun": fun,
    55         }
    56         data.update(kwargs)
    57         resultBean = dict()
    58         try:
    59             res = self.session.post(url=url,  data=data)
    60             text = res.text
    61             data = json.loads(text).get("return")
    62             resultBean['code'] = 0
    63             resultBean['message'] = "success"
    64             resultBean['data'] = data
    65         except Exception as e:
    66             resultBean['code'] = 0
    67             resultBean['message'] = "success"
    68             resultBean['data'] = e
    69         finally:
    70             return resultBean
    • 习题4:test.py
     1 from lesson31.util.saltapi import SaltServer
     2 
     3 saltServer = SaltServer()
     4 
     5 # result1 = saltServer.runModules('192.168.48.129', 'cp.get_file', ['salt://_shell/app/nginx.sh', '/usr/local/src/installnginx.sh'])
     6 # print(result1)
     7 # result2 = saltServer.runModules('192.168.48.129', 'installApp.nginx')
     8 # print(result2)
     9 # result2 = saltServer.runRunner('manage.status')
    10 # print(result2)
    11 #
    12 result1 = saltServer.runRunner('masterApp.publicKey', ipaddr='192.168.48.133')
    13 print(result1)
  • 相关阅读:
    Spring的事务 之 9.4 声明式事务 ——跟我学spring3
    我对AOP的理解
    基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
    我对IoC/DI的理解
    Spring对事务管理的支持的发展历程(基础篇)
    Tomcat一个BUG造成CLOSE_WAIT
    用dubbo时遇到的一个序列化的坑
    只写完功能代码仅仅只是开始
    事物隔离级别和乐观锁
    关于ubuntu实机与虚机互相copy
  • 原文地址:https://www.cnblogs.com/karl-python/p/9281422.html
Copyright © 2020-2023  润新知