• Saltstack的安装和配置


    1.安装salt
    因为系统自带的yum源不支持saltstack安装包的支持,所以需要安装第三方yum源(epel)
    # yum -y install epel-release

    salt分为主服务器(控制端)和从服务器(被控制端)
    控制端安装:
    yum -y install salt-master
    被控制端安装:
    yum -y install salt-master

    2.saltstack防火墙配置
    在主控服务器上添加TCP 4505,TCP 4506的规则,而在被控制端无需添加防火墙规则,,原理是被控制端直接直接与主控制端的zeromq建立长连接,接收广播的任务信息并执行。具体操作是在主控服务器上添加两条iptables规则:
    # iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
    # iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT

    3. 配置salt的配置文件
    master主控端配置:
    路径:/etc/salt/master

    #指定通信的ip地址
    interface:192.168.5.30
    #开启自动认证
    auto_accept: True
    #指定saltstack文件根目录位置
    file_roots:
    base:
    - /srv/salt/

    minion被控端配置
    路径:/etc/salt/minion

    #指定主控端的ip地址
    master: 192.168.5.30
    user: root
    pidfile: /var/run/salt-minion.pid
    #指令主控端的ip地址
    id: test-1

    分别在主控端和被控端对服务进行启用,看saltstack能否自动发现认证。
    # salt "*" test.ping
    test-1:
    True
    因为是自动认证,所以服务就重启就直接可以看到是通过的。

    4.手动证书认证
    salt-key -L 显示已经或未认证的被控制端id
    # salt-key -L
    Accepted Keys:
    test-1
    Denied Keys:
    Unaccepted Keys:
    Rejected Keys:

    salt-key -D 删除所以认证主机的id证书
    salt-key -d ID 删除单个id证书
    salt-key -A 接受所有id证书请求
    salt-key -a id 接受单个id证书请求

    5.利用saltstack远程执行命令
    命令格式:salt '<目标>' <参数> <方法>
    查看主机的内存使用情况:
    # salt 'test-1' cmd.run "free -m"
    test-1:
    total used free shared buffers cached
    Mem: 980 633 347 3 27 217
    -/+ buffers/cache: 388 592
    Swap: 1983 0 1983

    其中针对<操作目标>,saltstack提供多种方法对被控端主机(id)进行过滤。
    1)-E ,--pcre,通过正则表达式进行匹配
    # salt -E '^test-*' test.ping
    test-1:
    True
    test-2:
    True

    2)-L,list,以主机ID名列表的方式进行过滤
    # salt -L 'test-1,test-2' grains.item osfullname
    test-1:
    ----------
    osfullname:
    CentOS
    test-2:
    ----------
    osfullname:
    CentOS

    3)-G,--grain,根据被控主机grains信息进行匹配过滤
    # salt -G 'osrelease:6.6' cmd.run 'hostname'
    web-1:
    Goun-4
    test-2:
    linux-3
    test-1:
    linux-2

    4)-I,--pillar,根据被控主机的pillar信息进行匹配过滤,格式为“对象名称,对象值”,例如,过滤所有具备‘apache:httpd’pillar值的主机。实:探测具有“nginx:root:/data”信息主机的连通性。


    其中pillar属性配置文件如下,详细解释见02章。
    nginx:
    root:/data

    5)-N,--nodegroup,根据主控端master配置文件中的分组进行过滤。以笔者定义的组为例。
    vim /etc/salt/master
    nodegroups:
    test: 'L@test-1,test-2'
    web: 'L@web-1'

    其中,L@表示后面的主机id格式为列表,即主机id以逗号为分割;G@表示以grain格式描述;S@表示以IP子网或地址格式描述。

    例:
    # salt -N web test.ping
    web-1:
    True

    6)-C,--compound,根据条件运算符not,and,or去匹配不同规则的主机。
    例:探测以test开头并且操作系统为CentOS的主机连通性
    # salt -C 'E@^t.* and G@os:CentOS' cmd.run hostname
    test-2:
    linux-3
    test-1:
    linux-2

    其中,not语句不能作为第一个条件执行,不过可以通过以下方法来规避,示例:探测非test开头
    的主机连通性
    # salt -C '* and not E@t.*' cmd.run hostname
    web-1:
    Goun-4

    7)-S,--ipcidr,根据被控主机的IP地址或IP子网进行匹配
    # salt -S '192.168.5.50' cmd.run hostname
    test-2:
    linux-3
    # salt -S '192.168.5.0/24' cmd.run hostname
    test-2:
    linux-3
    web-1:
    Goun-4
    test-1:
    linux-2

  • 相关阅读:
    2,SFDC 管理员篇
    1,SFDC 管理员篇
    0,SFDC 管理员篇
    Java控制台中输入中文输出乱码的解决办法
    struts1和struts2线程安全问题
    PL/SQL Developer使用技巧、快捷键
    SpringMVC前传--从Struts 1.x-2.x MVC-Spring 3.0 MVC
    H5元素拖拽使用事件数据传输
    js实现拼图小游戏
    js实现简单轮播图效果
  • 原文地址:https://www.cnblogs.com/GXLo/p/7561453.html
Copyright © 2020-2023  润新知