Saltstack入门

1、Salt概述

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

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

2、简单

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

3、并行执行

Salt的核心功能编程

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

  • 使用安全加密的协议安全

  • 使用最小最快的网络载荷服务器

  • 提供简单的编程接口网络

Salt一样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止能够经过主机名,还能够经过系统属性。架构

4、BUILDS ON PROVEN TECHNOLOGY

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

5、PYTHON客户端接口

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

6、快速,灵活,易扩展

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

7、入门部署

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、配置管理

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
相关文章
相关标签/搜索