前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操作腾讯云CVM

Python操作腾讯云CVM

作者头像
py3study
发布2020-01-07 15:04:04
3K0
发布2020-01-07 15:04:04
举报
文章被收录于专栏:python3python3

一、背景

客户有需求在非工作时间将腾讯云CVM停机,工作时间又开起来,停止可以在系统内写定时任务来,但启动需要在腾讯云平台,就需要使用腾讯云的API来进行操作,还好腾讯云SDK for Python ,简单记录下。

二、代码

git 地址 核心代码

  • CVM操作
代码语言:javascript
复制
class CvmOper():
def __init__(self,logger):
    config = configparser.ConfigParser()
    config.read('config.py',encoding='utf-8')
    self.instance_list = config['common']['InstanceIds'].split(',')
    print(self.instance_list)
    cred = credential.Credential(config['common']['SecretId'], config['common']['SecretKey'])
    self.clentoper = cvm_client.CvmClient(cred, config['common']['Region'])

    self.logger = logger
    self.logger.info("------------------------start cvm of API log-------------")
def reboot_instance(self):
    """
    重启cvm
    :return:
    """
    # 设置参数
    request = models.RebootInstancesRequest()
    request.InstanceIds=self.instance_list
    # 发起请求
    response = self.clentoper.RebootInstances(request)
    self.logger.info("public ecs *** reboot successful!")
    self.logger.info(response.to_json_string())
    print(response.to_json_string())
 
  • 配置文件
代码语言:javascript
复制
[common]
# 腾讯云secretid
SecretId = AKIDjPYbTBU4FF4iAQuxxxxxxxxxxxxxxxxxxxxx
# 腾讯云secretkey
SecretKey = e7RaXYVP63rUvBNUQxxxxxxxxxxxxxxxx
# cvm 所在地域
Region = ap-shanghai

# 腾讯云cvm实例id,多个用,隔开
InstanceIds = ins-h8dxxxx
  • 日志记录
代码语言:javascript
复制
class CvmLog:
    def __init__(self,filename):
        self.filename = filename
    def createDir(self):
        _LOGDIR = os.path.join(os.path.dirname(__file__), 'cvmlog')
        print(_LOGDIR)
        _TIME = time.strftime('%Y-%m-%d', time.gmtime()) + '-'
        _LOGNAME = _TIME + self.filename
        print(_LOGNAME)
        LOGFILENAME = os.path.join(_LOGDIR, _LOGNAME)
        print(LOGFILENAME)
        if not os.path.exists(_LOGDIR):
            os.mkdir(_LOGDIR)
        return LOGFILENAME

    def createlogger(self,logfilename):
        logger= logging.getLogger()
        logger.setLevel(logging.INFO)
        handler = logging.FileHandler(logfilename)
        handler.setLevel(logging.INFO)
        formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        handler.setFormatter(formater)
        logger.addHandler(handler)
        return logger

三、测试

  • 单独执行
Python操作腾讯云CVM
Python操作腾讯云CVM
Python操作腾讯云CVM
Python操作腾讯云CVM
  • 配合定时任务部署在服务器上 使用Python2.7 ,建议使用centos7以上不用单独安装python,默认版本即可操作
代码语言:javascript
复制
 git clone https://github.com/redhatxl/my-python-code.git /usr/local/pythoncode

配置好config.py中腾讯云平台的信息后(建议创建单个子用户,为子用户仅授权操作的cvm实例获取其secretid,secretkey),制作定时任务

Python操作腾讯云CVM
Python操作腾讯云CVM
  • 查看日志
Python操作腾讯云CVM
Python操作腾讯云CVM
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
  • 二、代码
  • 三、测试
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档