运维自动化之SaltStack简单入门

  饱食终日而无所事事,是颓也,废也。但看昨日,费九牛二虎之力除一BUG便流连于新番之中,不知东方之既黑,实乃颓颓然而荒废矣。故今日来缀一文以忏昨日之悔。

SaltStack简介

  salt是一个新的基础平台管理工具。只需花费数分钟即可运行起来, 扩展性足以支撑管理上万台服务器,数秒钟即可完成数据传递. 经常被描述为 Func 加强版+Puppet 精简版。这么说你可能不太明白,那么简单地说:Salt就是一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等。

  最为重要的一点,salt是开源的,而且是python实现的一种运维自动化的工具,这意味着我们可以对其进行一些改动,在其基础之上加上我们想要的功能,对其进行二次开发。salt的源码在这里。感兴趣的朋友可以看一下。那么既然如此,SaltStack的安装配置简单么?如果知道salt的宗旨的话,那么你就不会这么问了。正如很多最强大、最有用的工程解决方案都是基于简单原则建立起来的。SaltStack 也竭尽全力做到那样:K.I.S.S.(Keep It Stupidly Simple 简单到愚蠢)。

环境介绍

  系统:CentOS6.5两台

     Windows Server 2008 R2

  这里是把其中一台CentOS系统的机器当做master,把另一台的CentOS电脑以及Windows电脑当做minion,按照英文翻译的理解就是其中一台是用来控制另外两台的。

Salt安装与配置

  Salt之CentOS的安装与配置:

  1. 首先,如果你的系统中EPEL当前不是enabled的话,你需要先通过如下的命令对其进行启动(PS:以下命令需要在两台机器上都执行):
1 rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm

  2. 接下来,由于salt的master和minion包是分开的,所以机器需要安装相应的包,通常情况下,一个master会对应多个minion。

  在master上运行:

1 yum install salt-master

  在minion上运行:

1 yum install salt-minion

  至此,CentOS上的master就安装好了。

  3.接下来,先不要启动,先到minion进行配置,在/etc/salt/minion文件中,找到master那一行,将注释去掉,然后把master的IP或者hostname写在冒号后面。然后找到id,同样去掉注释,将此机器的ip或者hostname写上去。嗯,至此CentOS算是完成了。

  Salt之Windows的安装与配置:

  首先,下载Windows的salt-minion,链接在这里:Salt-Minion-2014.7.0-x86-Setup.exe。

  1.下载完成后,点击安装,然后,一直下一步,直到你遇见一个输入框,第一行是输入你的master的IP,当然hostname也行。第二行是你本机的IP或者hostname。

  2.完成安装后,去C盘的salt文件夹下看看你的conf文件夹下是否有一个pki文件夹以及两个文件,一个是minion,一个是minion_id文件。若没有的话自己建立一个minion文件,没有后缀名,然后将master以及id写进去,步骤同Linux版的配置。

启动服务

  如果完成了以上步骤,恭喜你快要见到胜利的曙光了,现在,启动你的master:

1 service salt-master start

  接下来,启动你的minion,LInux版启动如下:

1 service salt-minion start

  Windows启动方法就是进入C盘的salt文件夹内,然后启动salt-minion.exe,这样,你就启动了你的salt,然后去master执行如下命令:

1 salt-key -L

  如果步骤没问题的话,你会看到这样的界面:

1 [root@controller ~]# salt-key -L
2 Accepted Keys:
3 Unaccepted Keys:
4 172.1.1.72
5 172.1.19.14
6 Rejected Keys:

  然后执行如下命令接受验证请求:

1 [root@controller ~]# salt-key -A
2 The following keys are going to be accepted:
3 Unaccepted Keys:
4 172.1.1.72
5 172.1.19.14
6 Proceed? [n/Y] Y
7 Key for minion 172.16.1.72 accepted.
8 Key for minion 172.16.19.14 accepted.

  接下来可以看一下你现在能控制的minion:

 

进行测试

  接下来进行最简单的测试:在master执行如下指令:

1 [root@controller ~]# salt 172.16.19.14 test.ping
2 172.16.19.14:
3 True

  然后下面就是反馈的结果。是True说明已经可以进行控制了,那么我们控制minion安装一个软件试试。

  在minion检测软件:

1 [root@controller ~]# rpm -qa | grep mysql
2 mysql-server-5.1.73-3.el6_5.x86_64
3 mysql-libs-5.1.73-3.el6_5.x86_64
4 mysql-5.1.73-3.el6_5.x86_64

  可以看到只有三个有关mysql的。然后我们在master上控制minion安装一个软件包:

1 [root@controller ~]# salt 172.16.19.14 pkg.install sources='[{"mysql":"http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm"}]'
2 172.16.19.14:
3 ----------
4 mysql-community-release:
5 ----------
6 new:
7 el6-5
8 old:

  根据反馈信息来看,old是空,说明以前没有这个软件,而new就是我们刚刚安装的软件。接下来,我们到minion看一下是否已经成功安装了软件:

1 [root@controller ~]# rpm -qa | grep mysql
2 mysql-server-5.1.73-3.el6_5.x86_64
3 mysql-libs-5.1.73-3.el6_5.x86_64
4 mysql-5.1.73-3.el6_5.x86_64
5 [root@controller ~]# rpm -qa | grep mysql
6 mysql-server-5.1.73-3.el6_5.x86_64
7 mysql-community-release-el6-5.noarch
8 mysql-libs-5.1.73-3.el6_5.x86_64
9 mysql-5.1.73-3.el6_5.x86_64

  可以清楚的看到,比之前多了一个软件,这说明我们成功安装了软件了。

  以上,就是有关salt的简单的介绍以及安装使用了。

  如果想学习更多的有关Salt的知识,请移步去官网

  话说亲耐的新番又在呼唤我了,追番去了先。

    PS:本博客欢迎转发,但请注明博客地址及作者~

   博客地址:http://www.cnblogs.com/voidy/

   <。)#)))≦

 
分类: Charging Area
标签: 运维

运维自动化之SALTSTACK简单入门的更多相关文章

  1. 运维自动化之puppet3分钟入门

    运维自动化之puppet3分钟入门 几个月前曾因为项目需求而学了点puppet的一些知识,最近因为要给别人讲一下,也就借此博文来做一下回忆,当然了,这个puppet用起来还是很不错的,尤其对我这种懒人 ...

  2. Ansible 运维自动化 ( 配置管理工具 )

    背景 出差背景,要搞项目的自动化部署.因为只直接对接生产分发,机器又非常多,这样以往使用的bat只能作为应急方案了,还是得考虑使用专业化的工具来做这个事情! 当下有许多的运维自动化工具( 配置管理 ) ...

  3. 运维自动化之salt笔记

    1:saltstack的基本介绍 2:salt的安装 1:服务端1:安装2:配置文件3:运行4:注意事项2:客户端1:安装2:配置文件3:运行4:注意事项 3:salt的使用: 1:基础知识1:tar ...

  4. 运维自动化之ansible的安装与使用 转

    运维自动化之ansible的安装与使用 随着服务器数量的增长,我们需要一个批量工具去提高工作效率,之前用的是puppet,ansible的简单,适用让我眼前一亮,决定写一篇ansible从安装到基本配 ...

  5. 运维自动化之系统部署 PXE(二)

    PXE介绍 Preboot Excution Environment 预启动执行环境 Intel公司研发 基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持 ...

  6. Ansible运维自动化

    Ansible运维自动化 一.Ansible-playbook的初步使用 playbook的使用,playbook可以把ansible的模块进行组合 ln -s /usr/local/python/b ...

  7. 运维自动化之Cobbler系统安装详解

    原文链接 参考文档 参考文档SA们现在都知道运维自动化的重要性,尤其是对于在服务器数量按几百台.几千台增加的公司而言,单单是装系统,如果不通过自动化来完成,根本是不可想象的. 运维自动化安装方面,早期 ...

  8. 运维自动化管理服务器 CheungSSH

    CheungSSH 是一款中国人自主研发的Linux运维自动化管理服务器软件,后端使用 Python 语言+Django 的 Web 框架,前端使用 Bootstrap+Javascript+jQue ...

  9. 魅族CMDB运维自动化实践

    一.简介 原创:梁鹏 本文是根据魅族系统架构师梁鹏10月20日在msup携手魅族.Flyme.百度云主办的第十三期魅族技术开放日< 魅族CMDB运维自动化实践>演讲中的分享内容整理而成. ...

随机推荐

  1. 对LevelDB的“升级版”存储引擎RocksDB的调研成果

    Google的leveldb是个非常优秀的存储引擎.但还是有一些不尽人意的地方,比方leveldb不支持多线程合并.对key范围查找的支持还非常easy,未做优化措施,等等.而Facebook的Roc ...

  2. OSChina 的URL类的源代码重写过程

    此代码是 oschina 到手柄形状像 http://www.oschina.net/p/tomcat 这种URL 此类已经废弃,改用 http://www.oschina.net/code/snip ...

  3. hdu1115(重力算法的多边形中心)

    标题的含义: 给定一个n刚n顶点.这是获得n分众协调多边形. http://acm.hdu.edu.cn/showproblem.php? pid=1115 题目分析: /** *出处:http:// ...

  4. ruby 删除文件夹(包括文件夹中的文件夹和文件)

    def deleteDirectory(dirPath) if File.directory?(dirPath) puts "是文件夹"; Dir.foreach(dirPath) ...

  5. EEPlat的元数据驱动的运行引擎

    EEPlat採用了元数据驱动的核心思想,因而EEPlat最重要的就是完好的元模型体系及高效灵活的解析运行引擎.EEPlat的运行引擎通过解析基于元模型的元数据,解释运行形成终于的业务系统. EEPla ...

  6. HDU 3788 和九度OJ 1006测试数据是不一样的

    ZOJ问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  7. APP漏洞导致移动支付隐患重重,未来之路怎样走?

    没有一种支付是100%安全的,互联网及移动支付规模的增长,其交易的安全性须要银行.支付公司.App开发人员.用户等參与各方更加重视.当下手机支付似乎变成了一种时尚,用户们"刷手机" ...

  8. Android与服务器端数据交互(转)

    上一节中我们通过http协议,采用HttpClient向服务器端action请求数据.当然调用服务器端方法获取数据并不止这一种.WebService也可以为我们提供所需数据,那么什么是webServi ...

  9. JVM可支持的最大线程数(转)

    摘自:http://sesame.iteye.com/blog/622670 工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. ...

  10. JavaEE(3) - RMI服务器和客户端

    1. 开发RMI服务器 Net Beans创建java project: (qs) (Server.java) package server; import java.rmi.*; //远程接口必须集 ...