Linux自动化运维之SaltStack实践

         1.1、环境

linux-node1(master服务端) 192.168.0.15
linux-node2(minion客户端) 192.168.0.16

1.2、SaltStack三种运行模式介绍

Local 本地
Master/Minion 传统运行方式(server端跟agent端)
Salt SSH SSH

1.3、SaltStack三大功能

  • 远程执行
  • 配置管理
  • 云管理

1.4、SaltStack安装基础环境准备

[root@linux-node1 ~]# cat /etc/redhat-release  ##查看系统版本

CentOS release 6.7 (Final)

[root@linux-node1 ~]# uname -r ##查看系统内核版本

2.6.32-573.el6.x86_64

[root@linux-node1 ~]# getenforce ##查看selinux的状态

Enforcing

[root@linux-node1 ~]# setenforce 0 ##关闭selinux

[root@linux-node1 ~]# getenforce

Permissive

[root@linux-node1 ~]# /etc/init.d/iptables stop

[root@linux-node1 ~]# /etc/init.d/iptables stop

[root@linux-node1 ~]# ifconfig eth0|awk -F ‘[: ]+’ ‘NR==2{print $4}’ ##过滤Ip地址

192.168.0.15

[root@linux-node1 ~]# hostname ##查看主机名

linux-node1.zhurui.com

[root@linux-node1 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo  ##安装salt必须使用到epel源

1.4、安装Salt

服务端:

[root@linux-node1 yum.repos.d]# yum install -y salt-master salt-minion ##salt-master包跟salt-minion包

[root@linux-node1 yum.repos.d]# chkconfig salt-master on  ##加入到开机自动启动

[root@linux-node1 yum.repos.d]# chkconfig salt-minion on  ##加入到开机自动启动

[root@linux-node1 yum.repos.d]# /etc/init.d/salt-master start   ##启动salt-master

Starting salt-master daemon:                                   [  OK  ]

启动到这里需要修改minion配置文件,才能启动salt-minion服务

[root@linux-node1 yum.repos.d]# grep ‘^[a-z]’ /etc/salt/minion

master: 192.168.0.15  ##指定master主机

[root@linux-node1 yum.repos.d]# cat /etc/hosts

192.168.0.15 linux-node1.zhurui.com linux-node1  ##确认主机名是否解析

192.168.0.16 linux-node2.zhurui.com linux-node2

解析结果:

  1. [root@linux-node1 yum.repos.d]# ping linux-node1.zhurui.com
  2. PING linux-node1.zhurui.com (192.168.0.15)56(84) bytes of data.
  3. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=1 ttl=64 time=0.087 ms
  4. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=2 ttl=64 time=0.060 ms
  5. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=3 ttl=64 time=0.053 ms
  6. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=4 ttl=64 time=0.060 ms
  7. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=5 ttl=64 time=0.053 ms
  8. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=6 ttl=64 time=0.052 ms
  9. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=7 ttl=64 time=0.214 ms
  10. 64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=8 ttl=64 time=0.061 ms

[root@linux-node1 yum.repos.d]# /etc/init.d/salt-minion start  ##启动minion客户端

Starting salt-minion daemon:                               [  OK  ]

[root@linux-node1 yum.repos.d]#

客户端:

[root@linux-node2 ~]# yum install -y salt-minion  ##安装salt-minion包,相当于客户端包

[root@linux-node2 ~]# chkconfig salt-minion on  ##加入开机自启动

[root@linux-node2 ~]# grep ‘^[a-z]’ /etc/salt/minion   ##客户端指定master主机

master: 192.168.0.15

[root@linux-node2 ~]# /etc/init.d/salt-minion start  ##接着启动minion

Starting salt-minion daemon:                               [  OK  ]

阅读更多

BPM是与非-什么是BPM,如何识别是否是BPM产品,以及如何选择BPM产品(3)

如何选择BPM产品

真正的BPM需要提供面向业务人员的业务流程的建模语言、建模工具、管理工具和监控工具;需要屏蔽掉业务人员弄不懂的IT语言与实现;需要强大的集成能力可以贯通分散于各个业务部门各个平台上的异构系统以实现企业整体业务流程管理和绩效监控;还需要业务流程当中的活动可以与企业战略挂钩,使得业务流程的运行直接反馈战略执行状态。

因此,一个真正的BPM软件要解决的是以下一些核心问题:

  1. BPM与其他IT产品要么支持业务用户、要么支持IT建设的不同之处在于,它必须横跨业务和IT两个部分,它必须很好的支持业务用户采用业务语言来建设业务流程;同时它又必须能够支持IT人员使用IT语言来整合IT资产以实现业务流程。这要求一个BPM产品必须同时具备业务设计能力与IT设计能力,并且能够将两种模型统一为一个完整的模型;
  2. 与以前纯IT产品不同,企业的运营流程与BPM产品里的资产应该是高度同步的,这些资产映射了真实的业务流程而不是需要翻译的IT资产。当企业的业务变更发生时,这些变更不需要等待从业务翻译为IT资产的周期,而是由业务人员直接将其转化成BPM资产,这些BPM资产则应快速响应业务变更。这要求一个BPM产品要能够管理一个业务流程(BPM资产)从创建到测试、模拟、部署、运行、监控、改进、变更、升级、归档的整个生命周期;
  3. 与单纯的某一类专业IT产品(如生产、财务、客户关系管理等)不同,BPM更注重于跨部门、跨IT系统、跨业务甚至跨组织的综合业务需求。尽管它在解决企业应用架构中较低层次的执行问题方面也是利器,但BPM的更大的价值在于它能够在整个企业应用架构中更高的层次上整合业务,能够与企业战略相结合。这要求一个BPM产品要能够使用粗粒度的服务来快速构建应用程序而不是从头开发。
  4. BPM整合业务的需求使得BPM必须具备更强的扩展能力,能够容纳、扩展、整合各种各样的企业应用,以BPM为核心形成应用生态圈而不是仅仅是孤立的业务问题和流程问题。这要求一个BPM产品必须基于开放的标准和平台,要能够具备跨平台、跨应用的整合能力,可以扩展和被扩展,以满足企业各种各样的业务需求和应用环境。

以上4个核心问题,同时也是对一个BPM产品对企业业务流程管理支持度的评判,企业可以从以上四个方面来评估一个BPM产品是否符合自身的需要。

但同时需要说明的是, 选择BPM产品并不是一味的越大越全就越好。因为BPM的实施是一个循序渐进的过程,它必须与企业当前的BPM成熟度、业务规模、人员素质等相匹配,同时也与BPM产品的本身的复杂度息息相关。显然,一个刚刚接触并开始采用BPM的企业,不可能完全掌握从战略到执行的建模方法,不可能建立完善的从战略目标到活动的指标体系,也无法在短时间内在管理上疏通各个业务职能部门。直接实施一个庞大的BPM计划,引入一个全面但复杂的BPM产品,将会使企业充满挫败感:每走一步都极为艰难,周期长,难见成效。许多邀请咨询公司做了业务流程梳理但却难以落地的企业对此应深有体会。

因此,在比较各BPM产品如何解决上述的核心问题之外,还需要看该BPM产品的复杂度和针对不同背景和需求的客户的支持程度。其关键是两个方面:

其一,一个BPM产品是否能够支持并帮助企业循序渐进的小步快走,步步为营,步步为赢,在短时间内见成效。每建立一个业务流程都体现出应有的价值,帮助企业建立信心,找到适合自己的方法,锻炼业务流程管理能力,从而最终全面采用BPM。这要求一个BPM产品具备快速实施的能力,并且产品的复杂程度能够针对不同客户量身定制。一个实施过程复杂、无法按需求规模定制复杂度的产品,将会给BPM的实施带来许多额外的困难。

其二,一个BPM产品是否能够支持企业长期的、不断深入的、扩展的业务需求。随着企业使用BPM的成熟度提高,其需求也必将从简单走向复杂、从表面走入深层、从一个业务领域扩展到另一个业务领域。这要求一个BPM产品具备完整的产品体系以及各产品模块的灵活配置、扩展甚至即插即用的能力,以保证不断扩展产品功能的同时维持BPM建设进程的稳定并且保护已有资产。不具备灵活的架构,只能通过定制开发来扩展功能的产品,将无法有效支持此需求。

BPM的实施团队的能力也很重要

BPM的实施与传统管理信息化项目不同,与ERP倒是有几分相似:项目实施过程必然要依据对业务的深刻理解并伴随着业务的改造、优化和调整等活动,而不仅仅是简单的实现当前的业务。这要求实施团队不仅仅要懂IT技术,更重要的是懂业务,要能够跟业务人员在业务层面上进入深入的交流。最理想的BPM实施团队要有业务流程梳理的知识与技能,有实施企业业务管理的经验,能够帮助客户量身定制的寻找和定位业务价值、定义业务能力、端到端的建模业务流程并且能够找出流程中的瓶颈并且与客户一起寻找到适合该企业的优化的办法。

再好的BPM产品交到只懂技术,持有技术至上观点或者只会用IT思维去思考业务问题的团队去实施,其结果必然会失败。因为BPM是业务驱动而非IT驱动的,成功的BPM绝不仅仅是几个流程跑起来,解决了当前问题就完事。而是通过BPM的建设,从纵向打通企业自顶向下的价值实现过程(从战略目标或业务价值到业务执行),从横向建立价值实现能力(跨部门、跨业务的业务能力),从环向上建立业务绩效评估(业务活动针对某业务价值的指标监控)体系,最后通过BPM产品的业务流程治理来不断的优化上述的各个管理要点,从而不断的提升企业的价值创造能力。这些实施目标与技术相关不大或说技术只是支持,与BPM实施团队的业务理解能力、行业领域知识和行业管理咨询经验则是息息相关。

因此对有志于实施BPM的企业来说,除了关注BPM产品本身,还需要关注BPM实施团队的业务能力和业务经验,毕竟BPM绝不仅仅是一个IT级别的产品。从这一点来说,大、中型企业的业务往往错综复杂,规模也要大得多。要想成功实施BPM,与具有丰富业务经验和行业管理咨询能力的BPM产商合作是更好的选择。一个实施团队实施了BPM,但又不能够在业务管理咨询方面向客户输出行业的成功经验、提供行业解决方案和量身定制的业务领域模型并因地置宜的提出优化建议,最终很可能成为只是实现了局部的、片断化的、仅仅实现了当前业务的所谓的BPM。这一结果距离真正的BPM成功尚有相当的差距!!可能只是披了流程外壳的传统信息化,或者新瓶装旧酒的又一个OA、工作流系统而已。