saltstack初探

salt-key -y -d linux-node1 #删除linux-node1节点的认证

salt -G 'cpuarch:x86_64' grains.item num_cpus >>1.txt  #把获取到的信息输出至1.txt中

salt "*" state.sls web.apache  #执行apache.sls

apache-install:     # 状态声明ID,每一个 ID 就是一个配置项
  pkg.installed:    # 这里面的模块可以是内置的状态模块,也可以是自定义的状态模块
    - names:
        - httpd
        - httpd-devel

apache-service:
  service.running:
    - name: httpd
    - enable: True
              

salt分发文件,这个今天在线上用到了,很快很爽,记录下:

cp.get_file可以用来在minion端下载master上的文件。
  
  salt '*' cp.get_file salt://vimrc /etc/vimrc 
    这个会通知所有的minion客户端来下载vimrc文件到/etc/vimrc

  salt '*' cp.get_file "salt://{{grains.os}}/vimrc" /etc/vimrc template=jinja  
    也可以用模版,表示只在OS系统名称一样的机器上下载文件
	
  salt '*' cp.get_file salt://vimrc /etc/vimrc gzip=5
    salt在传输大文件时还支持压缩:压缩比率是1-9

  salt '*' cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True
    cp.get_file默认是不会创建目的端的目录的,如果该目录不存在的时候。要改变这种情况可以使用mkaedirs参数

  salt '*' cp.get_dir salt://etc/apache2 /etc
  salt '*' cp.get_dir salt://etc/{{pillar.webserver}} /etc gzip=5 template=jinja
    cp.get_dir和cp.get_file一样,不过get_dir是用来下载整个目录的,也支持模版和压缩

saltstack花样输出结果

以yaml格式输出执行结果:

[root@test ~]# salt --out=yaml '*' cmd.run_all 'echo my salt'
test:
pid: 42817
retcode: 0
stderr: ''
stdout: my salt
confluence:
pid: 6514
retcode: 0
stderr: ''
stdout: my salt

以json格式输出执行结果:

[root@test ~]# salt --out=json '*' cmd.run_all 'echo my salt'    
{
    "test": {
        "pid": 42738, 
        "retcode": 0, 
        "stderr": "", 
        "stdout": "my salt"
    }
}
{
    "confluence": {
        "pid": 6501, 
        "retcode": 0, 
        "stderr": "", 
        "stdout": "my salt"
    }
}

 

posted @ 2017-01-06 09:58  梦轻尘  阅读(197)  评论(0编辑  收藏  举报