美文网首页
salt常用命令

salt常用命令

作者: 逗比的一生 | 来源:发表于2019-10-08 15:47 被阅读0次

    salt

    该命令执行salt的执行模块,通常在master端运行,常用命令

    salt [option] '<target>' <function> [arguments]
    #例如
    salt 'minion-01' cmd.run 'ip addr'
    

    salt-run

    该命令执行runner(salt自带或者自定义的,),通常在master端执行,比如经常用到的manage

    salt-run [options] [runner.func]
    
    #例如
    salt-run manage.status   ##查看所有minion状态
    salt-run manage.down     ##查看所有没在线minion
    salt-run manage.up       ##查看所有在线minion
    

    salt-key

    密钥管理,通常在master端执行

    salt-key [options]
    salt-key -L              ##查看所有minion-key
    salt-key -a <key-name>   ##接受某个minion-key
    salt-key -d <key-name>   ##删除某个minion-key
    salt-key -A              ##接受所有的minion-key
    salt-key -D              ##删除所有的minion-key
    

    salt-call

    该命令通常在minion上执行,minion自己执行可执行模块,不通过master下发job

    salt-call [options] <function> [arguments]
    salt-call test.ping           ##自己执行test.ping命令
    salt-call cmd.run 'ifconfig'  ##自己执行cmd.run函数
    

    salt-cp

    分发文件到minion上,不支持目录分发.运行在master

    salt-cp [options] '<target>' SOURCE DEST
    #例如
    salt-cp '*' testfile.html /tmp
    salt-cp 'test*' index.html /tmp/a.html
    

    salt-master

    salt-master [options]
    salt-master            ##前台运行master
    salt-master -d         ##后台运行master
    salt-master -l debug   ##前台debug输出
    

    salt-minion

    salt-minion [options]
    salt-minion            ##前台运行
    salt-minion -d         ##后台运行
    salt-minion -l debug   ##前台debug输出
    

    普通用户执行salt

    方法一:ACL(修改master)

    client_acl:
        monitor: #uonghu
         - test*: #权限
        - test.*
        dev:
         - service.*
        sa:
         - .*
    #重启master
         
    #给予目录和文件权限
    chmod +r /etc/salt/master
    chmod +x /var/run/salt
    chmod +x /var/cache/salt
    

    方法二:external_auth(修改master)

    pam:
        fred:
          - test.*
    #重启master
         
    #给予目录和文件权限
    chmod +r /etc/salt/master
    chmod +x /var/run/salt
    chmod +x /var/cache/salt
    

    使用Token不必每次都输入账号密码,使用external_auth每次都是需要密码的,这样多麻烦,这里引入了Token,它会保存一串字符到在当前用户家目录下.salt_token中,在有效时间内使用external_auth是不需要输入密码的,默认时间12hour,可以通过master配置文件修改。
    salt -T -a pam '*' test.ping


    target

    target也就是目标,目的.指定master命令应该对谁执行

    • 正则匹配
    [root@master /]# salt -E  'mini*' test.ping
    minion-02:
        True
    minion-01:
        True
    
    • 列表匹配
    [root@master ~]# salt -L minion-01,minion-02 test.ping
    minion-02:
        True
    minion-01:
        True
    
    • grains匹配
    [root@master ~]# salt -G 'os:CentOs' test.ping
    minion-02:
        True
    minion-01:
        True
    
    • 组匹配
    #开启master 的default_include
    vim /etc/salt/master.d/nodegroup.conf 
    #写到master中也是这个格式
    nodegroups:
     test1: 'L@test1,test2 or test3*'
     test2: 'G@os:CenOS or test2'
    
    salt -N test1 test.ping   #-N指定groupname
    
    在top file中使用nodegroups
    
    'test1':
     - match: nodegroup     ##没s,匹配的是文件
     - webserver
    [root@master ~]# salt -N nodegroups test.ping
    minion-02:
        True
    minion-01:
        True
    #组需要在master中预先定义
    
    • 复合匹配 salt -C 'G@os:MacOS or L@Minion1'
    • Pillar匹配salt -I 'key:value' test.ping
    • CIDR匹配 salt -S '192.168.1.0/24' test.ping

    在top文件中匹配 grains

    'node_type:web':
      - match: grain         #没有s
      - webserver
    

    top文件中使用jinja

    {% set self = grains['node_type'] %}
        - match: grain
    - {{ self }}
    

    一次在n个minion上执行

    -b n
    --batch-size n
    #例:
    salt '*' -b 5 test.ping
    #5个5个的ping
    

    相关文章

      网友评论

          本文标题:salt常用命令

          本文链接:https://www.haomeiwen.com/subject/sejnuctx.html