• Saltstack入门


    一、Salt概述

    • 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行)。

    • 一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据。

    二、简单

    既要考虑大规模部署,又要考虑小规模系统,提供适应多种场合的应用让人沮丧,但Salt非常容易设置和维护,而不用考虑项目的大小。从数量可观的本地网络系统,到跨数据中心的互联网部署,Salt设计为在任意数量的server下都可工作。salt的拓扑使用简单的server/client模式,需求的功能内建在一组daemon中。salt在几乎不改动配置的情况下就可以工作,也可以调整从而满足特定的需求。

    三、并行执行

    Salt的核心功能

    • 使命令发送到远程系统是并行的而不是串行的

    • 使用安全加密的协议

    • 使用最小最快的网络载荷

    • 提供简单的编程接口

    Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。

    四、BUILDS ON PROVEN TECHNOLOGY

    Salt运用大量的技术和技巧。网络层使用卓越的`ZeroMQ`_ 网络类库构建,所以Salt的守护端包含了可行的和透明的AMQ代理。Salt使用公钥和master守护端认证,然后使用更快的AES`_ 负载通信加密; 身份认证和加密对salt是不可或缺的。Salt通过`msgpack`_建立通信,使得速度更快并且网络流量少。

    五、PYTHON客户端接口

    为了允许简单的扩展,Salt执行程序可以写为纯Python模块。数据从Salt执行过程中收集到可以发送回master服务端,或者发送到任何任意程序。Salt可以从一个简单的Python API调用,或者从命令行被调用,所以Salt可以用来执行一次性命令,也可以作为一个更大的应用程序的一个组成部分。

    六、快速,灵活,易扩展

    结果是能够在1台或多台目标机器上快速执行命令的系统。Salt运行快速,安装简单,高度可定制;Salt用相同的远程执行架构满足管理不同数量服务器的需求。Salt基础设施可以集成最好的远程执行工具,增强了Salt的能力及用途,得到功能丰富实用可以适用于任何网络的系统。

    七、入门部署

    7.1)关闭iptables,selinux等

    7.2)安装教程参考:https://docs.saltstack.cn/topics/installation/index.html#installation

    7.3)安装yum源:https://docs.saltstack.cn/topics/installation/rhel.html

    7.3)安装软件,这里是为了效果,所以在master上也安装了minion

    master
    yum install -y salt-master salt-minion
    slave
    yum install -y  salt-minion
    

    7.4)加入开机自动启动

    chkconfig salt-master on
    chkconfig salt-minion on
    

    7.5)启动服务

    /etc/init.d/salt-master start
    minion先不要着急启动,配置文件需要修改,如下操作
    /etc/init.d/salt-minion start
    

    7.6)配置minion

    vim /etc/salt/minion
    master: 192.168.222.145        (16行)
    #id:                                       (默认是空,可以不配主机名,也可以配主机名,也可以配ip,但是一定要注意格式,后面要有个空格,配置的主机名必须要能Ping的通)
    

    7.7)如果上述配置了主机名,那么就要改主机名

    7.8)此时可以开启minion了,然后配置认证,master与minion相互识别是需要认证的,在没有认证之前,关系都是放在minions_pre下面的,认证之后放到minions下面

    [root@master master]# salt-key -a 192.168*     也可以用-A,同意所有
    

    在所有的minion端也存放着master的公钥

    7.9)到此,saltstack已经装完了,测试

    正常。

    八、配置管理

    8.1)[root@master ~]# vim /etc/salt/master

    [root@master ~]# mkdir /srv/salt/
    

    重启一下master

    8.2)创建要执行的操作,类似于yaml

    [root@master salt]# pwd
    /srv/salt
    [root@master salt]# ls
    apache.sls
    
    apache-install:
      pkg.installed:
        - names:
          - httpd
          - httpd-devel
    
    apache-service:
      service.running:
        - name: httpd
        - enable: True
        - reload: True
    
    选定机器,选定操作,类似于ansible的inventer和playbook
    [root@master salt]# salt '*' state.sls apache
    

    8.3)高级状态,,上述只是一个状态,那么如果一个机器对应着好多个状态,那么就需要个类似于map的入口文件,定义一个机器所绑定的状态,一般文件名为top.sls,可以修改名,但不建议,这个文件必须即只能放在basic的环境下。

    [root@master salt]# vim top.sls
    base:
      '*':     //所有主机       
        - apache   //都要执行apache这个状态
    
    从入口文件去读取
    [root@master salt]# salt '*' state.highstate
    

      

  • 相关阅读:
    Angular Universal教学-将现有专案导入Server Side Render
    [.NET] 使用ValidationContext快速进行模型资料的验证
    FINS/TCP_OMRON(1)
    C#中字段、属性、只读、构造函数赋值、反射赋值的相关
    async异步方法
    C# GetHashCode、Equals函数和键值对集合的关系
    JS三个编码函数和net编码System.Web.HttpUtility.UrlEncode比较
    ES6摘抄
    js基础
    js自执行函数、调用递归函数、圆括号运算符、函数声明的提升
  • 原文地址:https://www.cnblogs.com/bill2014/p/8658499.html
Copyright © 2020-2023  润新知