saltstack实践

SaltStack实践

参考文档

https://www.cnblogs.com/hackerer/p/6617301.html
https://www.cnblogs.com/kevingrace/p/5570290.html
https://mp.weixin.qq.com/s?src=11&timestamp=1570590303&ver=1901&signature=JlUshErUkBs-Syqi2CZ3P-pgeYb6ZQgC1wfhjxgc9ryFf-vleiPGex7AiH8tMfIiict1ve6fP4fz6Gt-c771JPR3fEprCKKd4uqbcMrTQ8cQzjZ8l4G0K1XCs8QwDa7j&new=1
https://github.com/watermelonbig/SaltStack-Chinese-ManualBook/blob/master/chapter02/02-2.SaltStack-Fundamentals-%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md
https://blog.csdn.net/watermelonbig/article/details/84333139
https://docs.saltstack.com/en/latest/contents.html

1.1、环境
 linux-node1(master服务端) 192.168.100.100
 linux-node2(minion客户端) 192.168.0.61, 192.168.0.61,192.168.0.61
1.2、SaltStack三种运行模式介绍
 Local 本地
  Master/Minion 传统运行方式(server端跟agent端)
  Salt SSH SSH
1.3、SaltStack三大功能
 ●远程执行
 ●配置管理
 ●云管理
1.4、SaltStack安装基础环境准备
 cat /etc/redhat-release 
  CentOS Linux release 7.3.1611 (Core)
 hostname
  busi-h5platform
 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo    下载yum源
1.5、安装Salt,服务端
  yum install -y salt-master salt-minion
  systemctl enable salt-master
  systemctl enable salt-minion
  systemctl start salt-master
  systemctl status salt-master
 启动到这里需要修改minion配置文件,才能启动salt-minion服务
 grep '^[a-z]' /etc/salt/minion     修改配置
  master: 192.168.100.100
 cat /etc/hosts
  192.168.100.100 busi-h5platform    添加本机的agent到hosts文件,如果增加其他agent的话需要在此文件继续添加
 systemctl start salt-minion
 systemctl status salt-minion
客户端:
 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 yum install -y salt-minion 
 systemctl enable salt-minion
 grep '^[a-z]' /etc/salt/minion     修改配置
  master: 192.168.100.100
 systemctl start salt-minion
 systemctl status salt-minion
服务端:
 在master上的/etc/hosts中添加如下机器信息
  192.168.100.62 busi-sign
  192.168.100.60 busi-mysql
  192.168.100.63 busi-redis
1.6、Salt秘钥认证设置
 1.6.1使用salt-key -a busi*命令之前在目录/etc/salt/pki/master目录结构如下
  在master上查看
  tree /etc/salt/pki/master
   /etc/salt/pki/master
   ├── master.pem
   ├── master.pub
   ├── minions
   ├── minions_autosign
   ├── minions_denied
   ├── minions_pre
   │   ├── busi-h5platform
   │   ├── busi-mysql
   │   └── busi-sign
   └── minions_rejected
  salt-key
   Accepted Keys:
   Denied Keys:
   Unaccepted Keys:
   busi-h5platform
   busi-mysql
   busi-redis
   busi-sign
   Rejected Keys:
 1.6.2使用salt-key -a busi*命令将秘钥通过允许,随后minions_pre下的文件会转移到minions目录下
  salt-key -a busi*   #hosts文件中添加的内容
   The following keys are going to be accepted:
   Unaccepted Keys:
   busi-h5platform
   busi-mysql
   busi-redis
   busi-sign
   Proceed? [n/Y] y
   Key for minion busi-h5platform accepted.
   Key for minion busi-mysql accepted.
   Key for minion busi-redis accepted.
   Key for minion busi-sign accepted.
   
  salt-key -L
   Accepted Keys:        #已经接受的key
   Denied Keys:          #拒绝的key
   Unaccepted Keys:      #未加入的key
   Rejected Keys:        #吊销的key

   #常用参数
   -L  #查看KEY状态
   -A  #允许所有
   -D  #删除所有
   -a  #认证指定的key
   -d  #删除指定的key
   -r  #注销掉指定key(该状态为未被认证)
  客户端修改hostname时如何修改服务端的ID
   (1)停止客户端的salt-minion服务:systemctl stop salt-minion
   (2)master端删除id:salt-key -d ID   注:ID为服务端识别到的ID,可通过tree /etc/salt/pki/master查看此目录下的文件确定
   (3)minion端删除pki  :rm -f /etc/salt/pki/minion/*
   (4)minion端删除minion_id:rm -f /etc/salt/minion_id
   (5)修改主机名:hostnamectl set-hostname new_hostname;在/etc/hosts中修改新的hostname
   (6)启动minion:systemctl start salt-minion
   (7)maste端接受:salt-key -a new_hostname
  1.6.3此时目录机构变化成如下:
   tree /etc/salt/pki/master
    /etc/salt/pki/master
    ├── master.pem
    ├── master.pub
    ├── minions
    │   ├── busi-h5platform
    │   ├── busi-mysql
    │   ├── busi-redis
    │   └── busi-sign
    ├── minions_autosign
    ├── minions_denied
    ├── minions_pre
    └── minions_rejected
  1.6.4并且伴随着客户端/etc/salt/pki/minion/目录下有master公钥生成
   [root@busi-h5platform ~]# tree /etc/salt/pki
    /etc/salt/pki
    ├── master
    │   ├── master.pem
    │   ├── master.pub
    │   ├── minions
    │   │   ├── busi-h5platform
    │   │   ├── busi-mysql
    │   │   ├── busi-redis
    │   │   └── busi-sign
    │   ├── minions_autosign
    │   ├── minions_denied
    │   ├── minions_pre
    │   └── minions_rejected
    └── minion
     ├── minion_master.pub
     ├── minion.pem
     └── minion.pub
1.7、salt远程执行命令详解
 1.7.1 salt '*' test.ping 命令
  salt '*' test.ping  ##salt命令  test.ping的含义是,test是一个模块,ping是模块内的方法
   [root@busi-h5platform ~]# salt '*' test.ping
    busi-h5platform:
     True
    busi-sign:
     True
    busi-mysql:
     True
    busi-redis:
     True
 1.7.2  salt '*' cmd.run 'uptime' 命令
  [root@busi-h5platform ~]# salt '*' cmd.run 'uptime'
   busi-h5platform:
     14:26:03 up 35 days,  3:03,  1 user,  load average: 0.16, 0.05, 0.06
   busi-redis:
     14:26:03 up 35 days,  3:19,  1 user,  load average: 0.04, 0.04, 0.05
   busi-sign:
     14:26:03 up 35 days,  2:59,  1 user,  load average: 0.00, 0.01, 0.05
   busi-mysql:
     14:26:03 up 29 days, 23:11,  1 user,  load average: 0.00, 0.01, 0.05
1.8、saltstack配置管理
 1.8.1编辑配置文件/etc/salt/master,将file_roots注释去掉
  file_roots:
    base:
   - /srv/salt/base/
    dev:
   - /srv/salt/dev/
    prod:
   - /srv/salt/prod/
  
  这三行的注释去掉
 1.8.2接着saltstack远程执行如下命令
   ls /srv/
   mkdir /srv/salt/base -p
   mkdir /srv/salt/dev/
   mkdir /srv/salt/prod/
   mkdir /srv/pillar
   ls /srv/
   systemctl start salt-master
   systemctl status salt-master
   cd /srv/salt/base
  [root@busi-h5platform salt]# cat nginx.sls
   nginx-install:
     pkg.installed:
    - names:
      - nginx
   nginx-service:
     service.running:
    - name: nginx
    - enable: True
    - reload: True
  运行:salt '*' state.sls nginx
  说明:不同环境的配置需要使用saltenv=dev来执行命令:例如:salt '*' state.sls vsftpd saltenv=dev
  •带有ID和每个函数调用的行都以冒号(:)结束。  
  •每个函数调用在ID下面缩进两个空格。
  •参数作为列表传递给每个函数。
  •每行包含函数参数的行都以两个空格缩进开头,然后是连字符,然后是一个额外的空格。
  •如果参数采用单个值,则名称和值位于由冒号和空格分隔的同一行中。
  •如果一个参数需要一个列表,则列表从下一行开始,并缩进两个空格
  
  cat top.sls    查看状态的语句,必须放在base目录下(再master上配置的base的目录),topfile入口文件只能放在base环境
   base:
     'busi-mysql':
    - nginx
   说明:如果还有其他目录下面有服务可以再添加,如dev:;其他同上
  salt 'jiu_test1' state.highstate   查看应用到主机程序的状态
1.9常见配置
 Salt Master端的配置文件/etc/salt/master,常用配置如下:

  interface:  //指定bind 的地址(默认为0.0.0.0)
  publish_port: //指定发布端口(默认为4505)
  ret_port: //指定结果返回端口,  与minion配置文件中的master_port对应(默认为4506)
  user: //指定master进程的运行用户,如果调整, 则需要调整部分目录的权限(默认为root)
  timeout: //指定timeout时间,  如果minion规模庞大或网络状况不好,建议增大该值(默认5s)
  keep_jobs: //minion执行结果返回master, master会缓存到本地的cachedir目录,该参数指定缓存多长时间,可查看之间执行结果会占用磁盘空间(默认为24h)
  job_cache: //master是否缓存执行结果,如果规模庞大(超过5000台),建议使用其他方式来存储jobs,关闭本选项(默认为True)
  file_recv : //是否允许minion传送文件到master 上(默认是Flase)
  file_roots: //指定file server目录,  默认为:
   file_roots:   
      base:   
    - /srv/salt    
  pillar_roots : //指定pillar 目录,  默认为:
   pillar_roots:    
     base:    
    - /srv/pillar    
  log_level: //日志级别
  支持的日志级别有'garbage', 'trace', 'debug', info', 'warning', 'error', ‘critical ’ ( 默认为’warning’)
 Salt Minion端的配置文件/etc/salt/minion,常用配置如下:
  master: //指定master 主机(默认为salt)
  master_port: //指定认证和执行结果发送到master的哪个端口,  与master配置文件中的ret_port对应(默认为4506)
  id: //指定本minion的标识, salt内部使用id作为标识(默认为主机名)
  user: //指定运行minion的用户.由于安装包,启动服务等操作需要特权用户, 推荐使用root( 默认为root)
  cache_jobs : //minion是否缓存执行结果(默认为False)
  backup_mode: //在文件操作(file.managed 或file.recurse) 时,  如果文件发送变更,指定备份目录.当前有效
  providers : //指定模块对应的providers, 如在RHEL系列中, pkg对应的providers 是yumpkg5
  renderer: //指定配置管理系统中的渲染器(默认值为:yaml_jinja )
  file_client : //指定file clinet 默认去哪里(remote 或local) 寻找文件(默认值为remote)
  loglevel: //指定日志级别(默认为warning)
  tcp_keepalive : //minion 是否与master 保持keepalive 检查, zeromq3(默认为True)

2.1、SaltStack之Grains数据系统
 ●Grains
  Grains是saltstack组件中非常重要的组件之一,它用来记录minion的系统信息(操作系统、域名、IP地址、内核信息、操作系统类型、内存信息以及其他更多的系统信息)。
  Grain收集的信息是静态的,在minion第一次启动时采集数据(除非下次重起,否则数据不会变化)。
 首先我们需要查询grains相关命令:
  salt 'busi-h5platform' sys.list_functions grains
   busi-h5platform:
    - grains.append
    - grains.delval
    - grains.filter_by
    - grains.get
    - grains.get_or_set_hash
    - grains.has_value
    - grains.item
    - grains.items
    - grains.ls
    - grains.remove
    - grains.setval
    - grains.setvals
 关于这些命令的用法我们可以查看帮助:
  salt 'busi-h5platform' sys.doc grains.items
 查看所有minion上的grains项:
  salt 'busi-h5platform' grains.ls
 查看minion上某一具体的grains值:
  salt 'busi-h5platform' grains.item shell
 

 2.1.1使用salt命令查看系统版本
  salt 'busi*' grains.ls
 2.1.2系统版本相关信息
  salt 'busi*' grains.items
 2.1.3系统版本相关信息
  salt 'busi*' grains.get fqdn
 2.1.4查看node1所有ip地址:
  salt 'busi*' grains.get ip_interfaces:eth0
 2.1.4使用Grains收集系统信息:
  salt 'busi*' grains.get os
  salt -G os:CentOS cmd.run 'w'   -G:代表使用Grains收集,使用w命令,查看登录信息
 2.1.5设置grains数据,可以增加模块。
  a、命令行方式设置grains数据:
   单个值设置:     
   salt '*' grains.setval name zhangjunchao
   多个值设置:
   salt '*' grains.setvals  "{'name1': 'zhangjunchao', 'name2': 'lufei'}"
   列表结构设置:
   salt '*' grains.setval name "{'name1': 'zhangjunchao', 'name2': 'zhangyike'}"
   查看对应minion的/etc/salt/grains可以发现已经写入的grains数据:
  b、grains_modules方式设置
  mkdir /srv/salt/base/_grains
  cd /srv/salt/base/_grains
   vi mod.py
    import time
    def now():
      grains={}
      grains['now']=time.time()
      return grains
  salt '*' saltutil.sync_all   同步
  salt '*' sys.reload_modules   重新加载模块
  salt 'busi*' grains.item now   测试
  c、minion端设置grains数据
  通过修改配置文件,同样可以设置grains的数据,分别在所有的minion端创建grain.conf文件
   cat /etc/salt/minion.d/grain.conf
    grains:
      name: zhangjunchao
      age:
     - 11
     - 12
     - 13
  重启salt-minion加载配置文件,查看grains:
   systemctl restart salt-minion.service
   
 2.1.6删除自定义的grains数据
  通过grains.setval命令行设置的grains数据,可以通过grains.delval来删除
  salt '*' grains.item name
  
2.2pillar的使用

 1、获取指定minion上pillar的数据
  首先与grains不同的是要获取pillar需要在master的配置文件中打开
  取消552行的注释如下:
  pillar_opts: True
  并重启salt-master
 
 2、pillar数据定制
  配置master的pillar的根目录
  取消529 -532 的注释
 3、创建根目录
  mkdir -pv /srv/pillar
  重启salt-master
  切换到/srv/pillar目录
  创建pillar顶层入口文件(相当于目录)top.sls,注意必须要以sls后缀。
  cat top.sls
   base:   "*":      
      - data   "minion_152":
      - minion152    
  创建 data.sls
   cat data.sls
    project_name: san
    subject:
       - zgws
       - wgdb
  创建 minion152.sls
   cat minion152.sls
    Minion_152: info
    HostName:
       - zgws_game01
    IP:
       - 172.16.3.152
    game:
       - zgws
  向minion同步pillar数据
   #salt "minion_152" saltutil.refresh_pillar
  查看minion_152 pillar数据
   #salt "minion_152" pillar.data
   或
   #salt "minion_152" pillar.items
3、常见模块
 https://www.cnblogs.com/saneri/p/5534015.html
 
4、常用功能
 (1)远程执行服务端脚本
  配置 file 模块文件
  # cd /srv/salt
  # vim shell_test.sls

  shell_test:
    cmd.script:
   - source: salt://test/1.sh  # 服务端的脚本
   - user: root        #客户端的用户
   
 (2)文件拷贝,文档:https://www.cnblogs.com/nulige/articles/8710561.html
  将mimion上的文件拷贝至master上
   vim /etc/salt/master   修改master配置文件
    file_recv: True
   systemctl restart salt-master
   systemctl status salt-master
   
   salt 'jiu_test1' cp.push /root/test1/000.txt
   注:拉取后的文件位置:/var/cache/salt/master/minions/jiu_test1/files/root/test1,即/var/cache/salt/master/minions/对应minion服务器名称/files/拷贝的对应服务器上的文件的目录及文件。
  将master上文件发送至mimion上
   方式一:salt-cp
   salt-cp 'jiu_test1' /root/test/lufei.txt /root/test1/       注:/root/test/lufei.txt为master上的文件,/root/test1/为mimion上的目录
   -E 目标选择;表示以正则表达式匹配minion
    -G 目标选择表示使用minion上的Salt Graings系统的返回值来匹配特定minion
    -L 目标minion别解析成用逗号分隔的列表
   方式二:cp.get_file
   salt 'jiu_test1' cp.get_file salt://test/555.txt /root/test1/555.txt   注:salt://表示的base环境,test/555.txt位于:/srv/salt/base/test/555.txt,/root/test1/555.txt指需拷贝到mimion上的目录,但是必须制定文件名,否则报错。
   方式三:cp.get_file gzip格式
   salt 'jiu_test1' cp.get_file salt://test/888.txt /root/test1/888.txt gzip=5
    gzip后的数字表示压缩比,范围在1-9之间,1表示最小压缩比,9为最大压缩比。换句话说,gzip=1情况下, 消耗的CPU小;gzip=9时,消耗的CPU则更多。
   方式四:cp.get_file makedirs=True
   salt 'jiu_test1' cp.get_file salt://test/888.txt /root/test2/888.txt makedirs=True
    注意,也就是时候,cp.get_file过程中,如果目录不存在,cp.get_file是不会主动创建目录的,如果要做到这点,可以使用makedirs=True 参数
   方式五:file.copy   此方式有时无法很好识别文件。
    salt '*' file.copy /path/to/src /path/to/dst
    salt '*' file.copy /path/to/src_dir /path/to/dst_dir recurse=True
    salt '*' file.copy /path/to/src_dir /path/to/dst_dir recurse=True remove_existing=True
  将master上的目录发送至mimion上
   cp.get_dir
   salt 'jiu_test1' cp.get_dir salt://test /root/test1   注:所copy的目录必须有文件存在。
  将制定minion上的文件传送至另一个制定minion上
   需要些python程序。
 (3)获取服务器时间
  方式一:命令方式
   salt '*' cmd.run 'date "+%F %H:%M:%S.%N"'
  方式二:grains方式的脚本   ,但此种方式每次需要同步,时间上就会有偏差。不能使用此种自定义模块的方式。
  mkdir /srv/salt/base/_grains
  cd /srv/salt/base/_grains
  vi get_server_time.py

   import time
   import datetime
   def get_server_time():
    grains = {}
    server_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')   
    grains['get_server_time'] = server_time
    return grains
  salt '*' saltutil.sync_all   同步
  salt '*' saltutil.sync_modules
  salt '*' sys.reload_modules   重新加载模块
  salt '*' grains.item get_server_time   测试
  方式三:脚本方式
   传送脚本:salt-cp 'jiu_test1' /root/1123.txt /tmp/timeserver.py
    {'jiu_test1': {'/tmp/timeserver.py': True}}
   执行脚本:salt 'jiu_test1' cmd.run "python /tmp/timeserver.py"
  
 (4)获取帮助
  salt \* sys.doc [模块名,如cmd]
 (5)执行脚本方式。
  方式一:可以是其他脚本,命令上会有不同。
   传送脚本:salt-cp 'jiu_test1' /root/1123.txt /tmp/timeserver.py
    {'jiu_test1': {'/tmp/timeserver.py': True}}
   执行脚本:salt 'jiu_test1' cmd.run "python /tmp/timeserver.py"
  方式二:命令方式
  
 (6)常用方式:salt  "eid_backup_ds2"  sys.list_functions  cmd         salt  -S  'eid_backup_ds2'  sys.list_modules
  salt 'eid_backup_ds2' sys.list_modules      查看所有的module
  salt "eid_backup_ds2" sys.list_functions  cmd     查看module的函数
  salt 'eid_backup_ds2' sys.doc  cmd   获取cmd的帮助信息
  cmd常见操作
   salt 'eid_backup_ds2' cmd.which_bin '[pip2, pip, pip-python]'   查看命令的执行路径,写多个命令,一般只出头一个。
   salt 'eid_backup_ds2' cmd.which cat    直接查看单个命令的路径
   salt 'eid_backup_ds2' cmd.shells    列出系统中所有shell的路径
   salt 'eid_backup_ds2' cmd.shell "ls -l | awk '/foo/{print \$2}'"     远程执行shell命令
   salt 'eid_backup_ds2' cmd.script salt://scripts/runme.sh   远程执行shell脚本
   salt 'eid_backup_ds2' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'    远程执行带参数的远程脚本
   salt 'eid_backup_ds2' cmd.run_stdout "ls -l "    标准输出
   salt 'eid_backup_ds2' cmd.run_stderr "ls -l "    标准错误输出
   salt 'eid_backup_ds2' cmd.run_chroot /var/lib/lxc/container_name/rootfs 'sh /tmp/bootstrap.sh'   该病root的根目录到指定的目录,并执行程序。
   salt 'eid_backup_ds2' cmd.run_all "ls -l"   获取详细信息
   salt 'eid_backup_ds2' cmd.run "ls -l"  远程执行命令
  pyenv常见操作
   安装pyenv   需要先安装pip和pip install virtualenv   这两个命令
    yum -y install epel-release
    yum install python-pip -y
    pip install --upgrade pip
    pip install virtualenv
    salt 'eid_backup_ds2' cmd.run 'yum -y install git'
    salt 'eid_backup_ds2' cmd.run 'git clone https://github.com/yyuu/pyenv.git /root/.pyenv'
    salt 'eid_backup_ds2' cmd.run "echo 'export PATH=/root/.pyenv/bin:$PATH' >> /root/.bashrc"
    salt 'eid_backup_ds2' cmd.run "echo 'export PYENV_ROOT=/root/.pyenv' >> /root/.bashrc"
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc    此条需到对方服务器操作
    eval "$(pyenv virtualenv-init -)"  >> ~/.bashrc    此条需到对方服务器操作
    salt 'eid_backup_ds2' cmd.run 'source /root/.bashrc'
    pyenv install --list # 列出可安装版本
    pyenv install <version> # 安装对应版本
    pyenv install -v <version> # 安装对应版本,若发生错误,可以显示详细的错误信息
    pyenv versions # 显示当前使用的python版本
    pyenv which python # 显示当前python安装路径
    pyenv global <version> # 设置默认Python版本
    pyenv local <version> # 当前路径创建一个.python-version, 以后进入这个目录自动切换为该版本
    pyenv shell <version> # 当前shell的session中启用某版本,优先级高于global 及 local
    pyenv virtualenv env # 从默认版本创建虚拟环境
    pyenv virtualenv 3.6.4 env-3.6.4 # 创建3.6.4版本的虚拟环境
    pyenv activate env-3.6.4 # 激活 env-3.6.4 这个虚拟环境
    pyenv deactivate # 停用当前的虚拟环境

    # 自动激活
    # 使用pyenv local 虚拟环境名
    # 会把`虚拟环境名`写入当前目录的.python-version文件中
    # 关闭自动激活 -> pyenv deactivate
    # 启动自动激活 -> pyenv activate env-3.6.4
    pyenv local env-3.6.4
    pyenv uninstall env-3.6.4 # 删除 env-3.6.4 这个虚拟环境
    
    // 查看安装的 python 版本
    # pyenv versions

    // 查看可安装 python 版本
    # pyenv install -l

    // 安装与卸载指定 python 版本
    # pyenv install 2.7.3  
    # pyenv uninstall 2.7.3

    // 不同 python 版本之间切换
    // 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式
    # pyenv global 2.7.3 
    // 设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高
    # pyenv local 2.7.3
    
    问题:
     在  pyenv install 3.6.6 时候,下载安装非常慢

     解决方法:
     先去官网下载对应版本的源码:https://www.python.org/downloads/source/,这里下载 Python-3.6.6.tar.xz 源码包

     然后创建 ~/.pyenv/cache 目录:
     # mkdir ~/.pyenv/cache  -p

     把源码文件放在  ~/.pyenv/cache 目录
     # ls .pyenv/cache/
     Python-3.6.6.tar.xz

     然后 pyenv install 3.6.6
    // 通过 -p 参数指定 pyenv 安装的 python 3.6.6 的 bin 目录
     # virtualenv -p /root/.pyenv/versions/3.6.6/bin/python3.6 py3.6
     
   salt 'eid_backup_ds2' pyenv.default    设置默认的python版本
  cron用法:salt 'eid_backup_ds2' sys.doc cron
   salt 'eid_backup_ds2' cron.list_tab root   列出指定服务器的指定用户的定时任务
   salt 'eid_backup_ds2' cron.ls root   同上
   salt 'eid_backup_ds2' cron.raw_cron root   返回服务器的定时任务,非详细
   salt 'eid_backup_ds2' cron.set_job root '*/3' '*' '*' '*' '*'  'ntpdate 10.100.100.100'    设置定时任务
   salt 'eid_backup_ds2' cron.rm root ntpdate    删除定时任务
  disk用法:
   salt 'eid_backup_ds2' disk.blkid  获取blkid
   salt 'eid_backup_ds2' disk.inodeusage   查看inode信息
   salt 'eid_backup_ds2' disk.percent /    查看挂载目录的使用量
   salt 'eid_backup_ds2' disk.usage   查看所有挂载目录的信息
  hosts用法:
   salt 'eid_backup_ds2' hosts.add_host 10.100.100.98 www.123.com   添加hosts信息
   salt 'eid_backup_ds2' hosts.get_alias 10.100.100.98    获取解析的名字
   salt 'eid_backup_ds2' hosts.set_host 10.100.100.98 www.153.com   修改解析记录,但会修改所有的指定IP的解析记录,若同一IP有多个解析,这会变成一个。
  
  salt 'eid_backup_ds2' sys.doc cloud     salt 'eid_backup_ds2' sys.list_modules
  
  cp的用法:
   salt 'eid_backup_ds2' cp.get_dir salt://path/to/dir/ /minion/dest   向minion拷贝目录,只能拷贝base目录下的目录和文件
   salt 'eid_backup_ds2' cp.get_file salt://path/to/file /minion/dest   向minion拷贝文件
   salt '*' cp.push /etc/fstab
   salt '*' cp.push /etc/system-release keep_symlinks=True
   salt '*' cp.push /usr/lib/mysql
   salt '*' cp.push_dir /etc/modprobe.d/ glob='*.conf'
   salt-cp 'jiu_test1' /root/test/lufei.txt /root/test1/       注:/root/test/lufei.txt为master上的文件,/root/test1/为mimion上的目录
   -E 目标选择;表示以正则表达式匹配minion
    -G 目标选择表示使用minion上的Salt Graings系统的返回值来匹配特定minion
    -L 目标minion别解析成用逗号分隔的列表
  
  
   
  
  
   
   
   
   
   
  

 

 

 

 
 

  


  
  


  
 


  
  
  
  
   
 
  
 

 

 

posted @ 2019-12-04 15:03  逐鹿123  阅读(296)  评论(0)    收藏  举报