设为首页 收藏本站
查看: 1666|回复: 0

[经验分享] openstack 云主机关机,自动running

[复制链接]

尚未签到

发表于 2018-5-30 13:26:32 | 显示全部楼层 |阅读模式
  问题描述:
  解决云主机临时关机,自动running 云主机,减少登机器操作,采用的模块是openstack 组件相关模块,需要在控制节点上开发

"""
@Item   :  cheetah v1.0
@Author :  william
@Group  :  System YunWei
@Date   :  2017-03-15
@E-mail :  swq.499809608@hotmail.com
@Funtion:
"""
import os,sys,time,socket,json,threading,traceback,shutil,requests
reload(sys)  
sys.setdefaultencoding('utf8')  
import datetime
from keystoneclient.auth.identity import v2
from keystoneclient.v2_0 import client as kclient
from novaclient import client as nclient
from cinderclient import client as cindercli
from keystoneclient import session
from oslo_log import log as logging


def LOG(level,info):
    fp = open('/var/log/nova/shutdonw.log','a')
    fp.write("%s %s %s \n"%(time.ctime(),level,info))
    fp.close()
class Openstack(object):
    def __init__(self):
        version = "v1.0"
    def get_node_instances(self):
        ops_dict = dict()
        auths = v2.Password(
              auth_url = 'http://127.0.0.1:35357/v2.0/',
              username = 'admin',
              password = 'adminxxxx',
              tenant_name = 'admin',
          )
        # session connect
        try:
            sess = session.Session(auth=auths)
            nova_client = nclient.Client('2',session=sess)
        except:
            LOG("Error",'OpenStack %s auth conn faild '%(k))
        # time sleep 3 ,get nova-manager service list result  
        instances =  nova_client.servers.list(search_opts={'all_tenants': 1})
        for ins in instances:
            if ins.status == 'SHUTOFF':
                time.sleep(3)
                ins.start()
                LOG("INFO","%s,%s,%s"%(ins.id,ins.name,ins.addresses))

if __name__ == "__main__":
    sc = Openstack()
    sc.get_node_instances()
"""
    try:
        pid = os.fork()
        if pid > 0 :
            sys.exit(0)
        os.setsid()
        os.chdir('/')
        sys.stdin = open("/dev/null","r+")
        sys.stdout = os.dup(sys.stdin.fileno())
        sys.stderr = os.dup(sys.stdin.fileno())
        print 'yes'
        while True:
            LOG("INFO","Shutting start")
            time.sleep(6)
            sc = Openstack()
            sc.get_node_instances()
    except IOError,e:
        print e
        LOG("Error",traceback.format_exc())
"""  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-483157-1-1.html 上篇帖子: openstack 云主机关机:ournal: End of file while reading data: Input/output error 下篇帖子: OpenStack企业私有云
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表