• Saltstack的部署及其详解


      

    https://repo.saltstack.com/

    Saltstack简介:

    salt是一个多平台基础设施管理工具通常只用在linux上,使用那个轻量级的通讯器,ZN用python写成的批量管理工具,完全开源,遵守Apache2协议,与puppet,chef功能,类似有一个强大的执行命令引擎,salt提供 了一个非常快速,灵活 并且容易使用的配置管理系统,称之为“saltstack”

    salt.一种全新基础设施管理方式,部署轻松,在几分钟起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间妙极通讯

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

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

    开发的目的为了远程 执行提供最好的解决方案,并使远程执行变得更好 ,更快,更简单,既要考虑 大规模部署 ,又要考虑小规模系统,提供适应多种场合的应用让人沮丧,但salt非常

    容易设置和维护,salt设计在任一数量的srver下都可以工作salt在几乎不改动配置的情况下就可以工作,也可以调整从而满足特定的需求并照顾执行

        salt的核心功能

     *使用命令 发送到远程系统上是并行,而不是串行

    *使用安全加密协议,

    *使用最少最快的网络载荷

    *提供简单的编辑接口

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

    ---------------------------------------------------------------------------------------------------------------------------

    基本原理:

    saltstack采用C/S模式,server端就是salt的master,clinet端minion,minion与master端之间通过zeroMQ消息列队 通信;

    Minion上线后先于master端联系,把自己的pubkey发送过去

    这是 master端通过salt-key-L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信;

    Master可以发送任何指令让minion执行了,salt有很多可执行的模块,比如说cmd模块,

    [root@localhost ~]# hostname Master.salt.com

    root@Master ~]#  vim /etc/hosts

    [root@Minion ~]# hostname   Minion.salt.com

    [root@Minion ~]# vim /etc/hosts

    关闭防火墙设置

    [root@Master ~]# service iptables stop

     [root@Master ~]# chkconfig iptables off

    root@Minion ~]# service iptables stop

     [root@Minion ~]# chkconfig iptables off

    官方文档epel源

    https://repo.saltstack.com/

    Master端配置

    1.1准备并配置epel源

    [root@Master yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

    [root@Master yum.repos.d]# sudo yum clean expire-cache     #####更新缓存的

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Cleaning repos: DVD epel salt-latest

    3 metadata files removed

    [root@Master yum.repos.d]# rpm -ql salt-master

    /etc/rc.d/init.d/salt-master    #启动脚本

    /etc/salt/master        #master配置文件

    /usr/bin/salt          #master的核心命令

    /usr/bin/salt-cp      #master的文件传输命令

    /usr/bin/salt-key      #salt文件传输命令

    /usr/bin/salt-master   #salt证书管理命令

    /usr/bin/salt-run   #master服务命令

    /usr/bin/salt-unity  

    [root@Master ~]# vim /etc/salt/master


    root@Master ~]# cat /etc/salt/master | grep ^interface

    interface: 192.168.20.138

    启动master

    [root@Master ~]# service salt-master start

    Starting salt-master daemon:                               [确定]

    [root@Master ~]# ps -aux | grep salt

    Minion端配置

    [root@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

    [root@Minion yum.repos.d]# sudo yum clean expire-cache

    [root@Minion yum.repos.d]#  yum -y install salt-minion

    1.2-编辑主配置文件

    [root@Minion ~]# rpm -ql salt-minion

    /etc/rc.d/init.d/salt-minion   #启动脚本

    /etc/salt/minion     #配置文件

    /etc/salt/minion.d

    /etc/salt/pki/minion

    /etc/salt/proxy

    /usr/bin/salt-call   #拉取命令

    /usr/bin/salt-minion    #minion服务命令

    /usr/bin/salt-proxy

    [root@Minion ~]# vim /etc/salt/minion

    [root@Minion ~]# grep "^master" /etc/salt/minion

    Minion端配置

    [root@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

    [root@Minion yum.repos.d]# sudo yum clean expire-cache

    [root@Minion yum.repos.d]#  yum -y install salt-minion

    1.2-编辑主配置文件

    [root@Minion ~]# rpm -ql salt-minion

    /etc/rc.d/init.d/salt-minion   #启动脚本

    /etc/salt/minion     #配置文件

    /etc/salt/minion.d

    /etc/salt/pki/minion

    /etc/salt/proxy

    /usr/bin/salt-call   #拉取命令

    /usr/bin/salt-minion    #minion服务命令

    /usr/bin/salt-proxy

    [root@Minion ~]# vim /etc/salt/minion

    [root@Minion ~]# grep "^master" /etc/salt/minion

    master: 192.168.20.138       #### 表示我们要连接的是saltstack的master是192.168.20.138


    [root@Minion ~]# service salt-minion start

    Starting salt-minion:root:Minion.salt.com daemon: OK

    接下来我们需要测试saltsack

    Master端配置

    Saltstack使用SSL签证 方式进行安全认证

    1.查看 minion列表

    root@Master ~]# salt-key –L   #查看当前证书的签证情况

    2.接受所有key

    salt-key -a 'key-name' ##接受该key

    或者salt-key -A        ##接受所有key

    [root@Master ~]# salt-key -A

    3.简单的测试

    测试1

    [root@Master ~]# salt '*' test.ping

    详细解析:

    ‘*’代表的是target是指在那些minion上操作

    ‘test’是一个执行模块

    ‘ping’是执行模块下的函数

    测试2

    [root@Master ~]# salt '*' cmd.run 'df -h'   #检查目标主机挂载

    测试3.

    所有minion安装ftp服务

    [root@Master ~]# salt '*' pkg.install ftp

    [root@Master ~]# salt '*' pkg.install vsftpd

    参数详解:

    Pkg是一个执行模块

    Install是一个模块下面的参数

    ftp是函数的参数(arg),有的函数需要参数,有的则不需要

     ------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    rsync命令的介绍
    python:解析vlan资源池....
    mavendefaulthttpblocker (http://0.0.0.0/)
    alibabaseata 使用
    debug zookeeper 源码时,报 :Exception in thread "main" java.lang.NoClassDefFoundError: com/codahale/metrics/Reservoir
    Display笔记本外接显示器
    推荐免费的虚拟局域网软件hamachi
    c++内存泄露简单定位方法
    软件质量属性——可修改性
    Activity的生命周期
  • 原文地址:https://www.cnblogs.com/bixiaoyu/p/6964081.html
Copyright © 2020-2023  润新知