• salt 常用命令整理


    salt 常用命令整理

    ***********模块***********
    查看模块列表module
    salt 'minion' sys.list_modules
    查看指定module的function用法
    salt 'minion' sys.list_functions file
    查看指定模块的详细用法
    salt 'minion' sys.doc cmd
    
    ***********模块使用说明***********
    查看配置管理state模块列表
    salt 'minion' sys.list_state_modules
    查看配置管理sate列表指定模块所有方法列表
    salt 'minion' sys.list_state_functions svn
    查看配置管理state列表指定模块详细用法
    salt 'minion' sys.state_doc file
    查看配置管理state列表指定模块的方法分支
    salt 'minion' sys.state_doc file.managed
    
    ***********pillar变量***********
    查看主机对应的所有pillar变量值
    salt '*' pillar.data
    salt '*' pillar.items
    查看主机对应的多个pillar变量值
    salt '*' pillar.item roles appname
    修改pillar值后需要刷新pillar数据
    salt '*' saltutil.refresh_pillar
    查看pillar模块详细用法,其他类似
    salt 'minion' sys.doc pillar
    查看pillar的相关方法
    salt 'minion' sys.list_functions pillar
    """
    shuke:
        - pillar.data
        - pillar.ext
        - pillar.get
        - pillar.item
        - pillar.items
        - pillar.raw
    """
    
    ***********grains变量***********
    查看模块用法
    salt 'minion' sys.list_functions grains
    查看item项
    salt 'minion' grains.ls
    查看所有iteams
    salt 'minion' grains.items
    获得某个item值
    salt 'minion' grains.get os
    同步_grains目录下的py脚本至minion
    salt 'minion' saltutil.sync_all
    如果py模块有修改,修改后进行重载
    salt 'minion' sys.reload_modules
    
    ***********minions在线状态***********
    查看所有minion状态
    salt-run manage.status
    查看所有minion在线状态
    salt-run manage.up
    查看所有minion不在线状态
    salt-run manage.down
    
    ***********key管理***********
    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相关***********
    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 'S1_0_001_Room' cp.get_dir salt://package /tmp -v  同步目录
    salt 'S1_0_001_Room' cp.get_file salt://package/minions.tar.gz /tmp/minions.tar.gz gzip=5    同步文件
    
    **********其他***********
    salt-run jobs.active            #查看所有minion当前正在运行的jobs
    salt '*' saltutil.running       # 查看正在运行的任务,找到jid
    salt '*' saltutil.kill_job jid  # 根据jid杀掉任务
    salt '*' saltutil.clear_cache   # 清除minion缓存
    
    执行单个命令
    salt 'minion' cmd.run 'ps -ef | grep mongod'
    
    测试单个sls模块
    salt 'minion' state.sls nginx test=True
    
    执行前进行测试
    salt 'minion' state.highstate test=True
    
    在所有minion上执行状态:
    salt 'minion' sate.highstate
    
    获取执行jib任务的md5值
    salt 'minion' hashutil.md5_digest 20170202150211366486
    
    low数据可以使用state.show_lowstate方法查看
    salt 'minion' state.show_lowstate --out yaml
    
    High State数据可以使用state.show_hoghstate方法查看
    salt 'minion' state.show_highstate --out yaml
    
    #查看highstate
    salt 'minion' state.show_highstate
    #查看lowdata
    salt 'minion' state.show_lowstate
    
    #执行所有top.sls
    salt '*' state.apply
    
    #执行指定环境下top.sls
    salt '*' state.apply saltenv=dev
    
    注:
    name:要执行的命令,记住该命令将会在salt-minion的路径和权限下执行
    onlyif:用于检查的命令,仅当``onlyif``选项指向的命令返回true时才执行name定义的命令
    unless:用于检查的命令,仅当``unless``选项指向的命令返回false时才执行name指向的命令
    
    查看wyd用户下进程
    salt -N 'Z1_S2' cmd.run 'su -c "ps -u wyd | grep -v top | grep -v bash | grep -v sshd | grep -v grep | grep -v ps | grep -v CMD " wyd'
    
    state中(钩子函数)
    requisiterequisite:require/watch/onchanges/onfail/use/prereq/require_in(反转)
    
    ========Targeting Minion=======
    #Glob(默认)
    salt '*' test.ping
    salt * test.ping
    
    #PCRE 正则表达式
    salt -E '^[m|M]in.[e|o|u]n$' test.ping = salt -E '^[mM]in.[eou]n$' test.ping
    
    #list
    salt -L web1,web2,db1 test.ping
    
    #Subnet
    salt -S 192.168.1.100 test.ping
    salt -S 192.168.0.0/16 test.ping
    
    #Grain
    salt -G 'os:ubuntu' test.ping
    salt -G 'os_family:Debian' test.ping
    salt -G 'ip_interfaces:eth0:192.168.1.100' test.ping
    salt -G 'ipv6:::1' test.ping
    salt --grain-pcre 'os:red(hat|flag)' test.ping
    
    #Pillar
    salt -I 'my_var:my_val' test.ping
    
    #混合(Compound)
    salt -C 'G@os:Ubuntu,I@role:web,S@192.168.1.100/24' test.ping
    salt -C 'min* or *ion' test.ping
    salt -C 'web* or *qa,G@os:Arch' test.ping
    
    #Nodegroup
    salt -N webdev test.ping
    
    添加计划任务
    salt 'S1_*_Center' cron.set_job root   '0' '5' '*' '*' '*'  '/usr/sbin/logrotate -vf /etc/logrotate.d/acl >/tmp/cutacl_log 2>&1' identifier=cutacl
    
    删除计划任务
    salt -C 'E@S1_(10001|10002|10003)_*' cron.rm_job wyd 'cd /data/wyd/game_server_1.2.0/log;find . -type f -mtime +15 -name "*.log*" -exec rm -rf {} ; 2>&1' identifier='clear log'
    
    相关URL:
    http://blog.csdn.net/death_kada/article/details/48547271
    http://blog.csdn.net/cnweike/article/details/12746399 pillar

    完善中......

  • 相关阅读:
    教你用纯Java实现一个网页版的Xshell(附源码)
    Learn Terraform--Getting Started--Installing Terraform
    Install Terraform on Windows, Linux and Mac OS
    Installing kubectl
    Creating a Cron Job in K8S
    Patch multi versions of windows via Power shell
    Bash to check SSL cert expired
    K8S dashboard 创建只读账户
    K8S Link
    Kubernetes
  • 原文地址:https://www.cnblogs.com/aslongas/p/6964890.html
Copyright © 2020-2023  润新知