zoukankan      html  css  js  c++  java
  • 运维自动化之SaltStack简单入门

    运维自动化之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:

    1 [root@controller ~]# salt-key -L
    2 Accepted Keys:
    3 172.16.1.72
    4 172.16.19.14
    5 Unaccepted Keys:
    6 Rejected Keys:
    View Code

    进行测试

      接下来进行最简单的测试:在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:
    View Code

      根据反馈信息来看,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
    View Code

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

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

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

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

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

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

       <。)#)))≦

    评论
  • 相关阅读:
    js实现分享到QQ
    js 复制粘贴
    js弹窗 js弹出DIV,并使整个页面背景变暗
    PHP实现大转盘抽奖算法
    ext 树节点操作
    ExtJS4图片验证码的实现
    随笔分类
    Oracle、MySql、SQLServer 数据分页查询
    Repeater控件使用(含删除,分页功能)
    SQL compute by 的使用
  • 原文地址:https://www.cnblogs.com/voidy/p/4133167.html
Copyright © 2011-2022 走看看