saltstack主机管理项目:计主机管理项目命令分发器(三)

四、主机管理项目命令分发器

开发 命令格式如下:

01、salt.py 只是一个入口,没干什么事情


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:luoahong

import os,sys

if __name__ == "__main__":

    os.environ.setdefault("DJANGO_SETTINGS_MODULE""Stark.settings")

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    #print(BASE_DIR)

    sys.path.append(BASE_DIR)

    from Arya.action_list import actions

    from Arya.backends.utils import ArgvManagement

    obj = ArgvManagement(sys.argv)

02、action_list.py 路由分发器

utils.py 创建了一个类


1

2

3

4

5

6

7

8

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:luoahong

from Arya.plugins import cmd,state

actions = {

    ‘cmd‘: cmd.CMD,

    ‘state‘:state.State

}

03、backends 建了一个目录


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:luoahong

import sys

from Arya import action_list

import django

django.setup()

from Stark import settings

from Arya import models

class ArgvManagement(object):

    ‘‘‘

    接收用户指令并分配到相应模块

    ‘‘‘

    def __init__(self,argvs):

        self.argvs = argvs

        self.argv_parse()

    def help_msg(self):

        print("Available modules:")

        for registered_module in action_list.actions:

            print("  %s" % registered_module)

        exit()

04、plugins 建立一个目录

cmd.py 创建两个类


1

2

3

4

5

6

7

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:luoahong

from Arya.backends.base_module import BaseSaltModule

class CMD(BaseSaltModule):

    print(‘in cmd module ‘)

state.py


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:luoahong

from Arya.backends.base_module import BaseSaltModule

import os

class State(BaseSaltModule):

    def load_state_files(self,state_filename):

        from yaml import load, dump

        try:

            from yaml import CLoader as Loader, CDumper as Dumper

        except ImportError:

            from yaml import Loader, Dumper

        state_file_path = "%s/%s" %(self.settings.SALT_CONFIG_FILES_DIR,state_filename)

        if os.path.isfile(state_file_path):

            with open(state_file_path) as f:

                data = load(f.read(), Loader=Loader)

                return data

        else:

            exit("%s is not a valid yaml config file" % state_filename)

原文地址:https://www.cnblogs.com/luoahong/p/9419535.html

时间: 2024-08-24 21:24:00

saltstack主机管理项目:计主机管理项目命令分发器(三)的相关文章

论信息系统项目的整体管理

摘要: 2008年6月,本人参与了“党校教学教务管理系统”的项目建设,担任项目经理一职. 这是一个集教务工作自动化和信息化为一体的先进电脑网络系统,将为党校教务管理有关部门提提供优质.稳定的信息化服务.该项目作为省委党校拟在全省范围内应用推广的教务管理重点工程,收到了省委以及校领导的高度重视.作为建设方的项目经理,本人在项目的整体管理中,科学运用项目整体管理的理论知识并结合我公司的CMMI3项目管理过程域的具体要求,采用了针对性的措施,注重与项目干系人保持积极有效的沟通,加强了项目计划编制,项目

项目进阶 之 集群环境搭建(三)多管理节点MySQL集群

上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点MySQL集群和多管理节点MySQL集群 上一篇的博客中,我们搭建的MySQL集群架构中,只存在一个管理节点,这样搭建的集群可以用如下所示的结构表示. 仔细分析上图就会发现,上图所示的单管理节点MySQL集群存在当唯一的管理节点由于网络.断电.压力过大等各种原因宕机后,数据节点和SQL节点将会各自为

IT项目各阶段管理

售前支持:项目背景,合同,方案可行性分析的评估,估算成本,制定计划和风险 项目计划阶段:项目需求确认,组建项目团队,制定计划 项目执行:跟踪执行情况,进展情况,遇到的问题,需求变更,沟通管理,验收管理. 收尾阶段:资料整理保存,团队总结,客户满意度调查,项目总结,交接给客服 IT项目相关的组织架构: 项目管理的流程内容有: IT项目管理各阶段主要内容及其相关文件报告: 项目立项文件: 项目启动会议内容: 制定项目计划: 项目执行的主要活动有: 项目进度管理: 项目风险管理: 沟通管理: 制定沟通

项目整体管理与范 围 管理

第六章项目整体管理 1.项目整体管理的7个过程: 1)      项目启动,制定项目章程. 2)      制定初步的项目范围说明书. 3)      制定项目管理计划. 4)      指导和管理项目的执行. 5)      监督和控制项目. 6)      整体变更控制. 7)      项目收尾. 2.项目章程应当包括11项内容(记忆7条以上) 1)      基于项目干系人的需求和期望提出的要求. 2)      项目必需满足的业务要求或产品需求. 3)      项目的目的或项目立项的

浅谈软件项目的需求管理

软件项目区别于其它项目的最显著的特征是其不可见性,它不像硬件购销.建筑工程,都是实实在在可见的东西.而软件项目在系统交付之前很长一段时间,客户是无法感知自己想要的系统究竟是什么样子.因此,需求管理就显得十分重要,据相关统计数据分析,软件项目90%以上失败的原因都在于没有重视需求或者需求管理方面做的不到位导致的. 需求管理作为软件项目管理的一个重要内容,贯穿项目实施的全生命周期.俗话说:万事开头难.需求作为软件开发的第一个环节,其重要性不言而喻.市面上关于需求管理的相关理论和书籍很多,但多数停留在

软件项目与过程管理第七周作业

问题:关于文档修订方面内容的总结及本次项目中所编写的文档的重要性说明. 一.立项说明书 1.立项说明书能详细地说明项目的可交付成果和为提交这些可交付成果而必须开展的工作. 2.立项说明书是项目利害关系者对项目范围的共同理解,说明了项目的主要目标. 3.立项说明书能够使项目团队能够实施更详细的规划,在执行过程中指导项目团队的工作,并构成评价变更请求或增加的工作是否超出项目边界的基准. 4.立项说明书能够明确提出了哪些工作要做,哪些工作不要做,以及要做的水平,这决定了项目管理团队控制整个项目范围的好

php管理nginx虚拟主机shell脚本

使用php作为shell脚本是一件很方便的事情.理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考 代码如下 复制代码 #!/usr/bin/php -q<?php start: fwrite(STDOUT,"===========Vhost Script===========\n");fwrite(STDOUT,"= Choose an operation \n");fwrite(STDOUT,"= 1.

Spring(一):概述,IOC(Bean管理),整合Web项目,整合JUnit单元测试

1 Spring框架的学习路线 Spring第一天:IOC容器(Bean管理),Spring与Web项目整合 Spring第二天:AOP(面向切面编程),Spring的JDBC模板 Spring第三天:Spring的事务管理,SSH整合开发 2 Spring的框架概述 2.1 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and

外包项目的内外部管理

今天下午又开了一次项目例会,对于已经延期了一个多月的模块外包厂商竟然还提需要给他们什么材料再回去研究研究,实在忍无可忍.感叹作为甲方来说,对于外包出去的项目来说如果遇到了九流的厂商,然后再加上没有什么实质效果的管理办法,真是哑巴吃黄连->有苦说不出. 事情还得从一年前说起,一年前公司老板看到分布在全国各地的人力管理工作效率特别低,做个工资.绩效什么的特别慢,想因此要求IT部门为人力部门提供eHR方面的系统,来提高工作效率.在通过前期调研.自制采购分析.招投标下来就选定了其中一家.为了让项目后续的