SaltStack配置管理

SaltStack配置管理

配置管理
修改master配置文件并重启
file_roots:
  base:
    - /srv/salt/base
  dev:
    - /srv/salt/dev
  test:
    - /srv/salt/test
  prod:
    - /srv/salt/prod
[root@swt ~]# systemctl restart salt-master.service
[root@swt ~]# mkdir -p /srv/salt/{base,dev,test,prod}
[root@swt ~]# tree /srv/
/srv/
└── salt
    ├── base
    ├── dev
    ├── prod
    └── test
编写apache的YAML文件
* salt有两种模块,一种远程执行模块(cmd),一种是状态管理模块(pkg)
[root@swt base]# mkdir web
[root@swt base]# cd web/
[root@swt ~]# cat nfs.sls 
nfs_install:               //id 唯一标识符
  pkg.installed:
    - name: nfs-utils

nfs_servicer:
  service.running:
    - name: nfs-utils
    - enable: True

执行
[root@swt ~]# salt 'lizihan123' state.sls web.nfs  //默认base环境下
lizihan123:
----------
          ID: nfs_install
    Function: pkg.installed
        Name: nfs-utils
      Result: True
     Comment: The following packages were installed/updated: nfs-utils
     Started: 16:42:31.051099
    Duration: 17579.944 ms
     Changes:   
              ----------
              nfs-utils:
                  ----------
                  new:
                      1:1.3.0-0.61.el7
                  old:
----------
          ID: nfs_servicer
    Function: service.running
        Name: nfs-utils
      Result: True
     Comment: Service nfs-utils is already enabled, and is running
     Started: 16:42:50.181451
    Duration: 233.893 ms
     Changes:   
              ----------
              nfs-utils:
                  True

Summary for lizihan123
------------
Succeeded: 2 (changed=2)
Failed:    0
------------
Total states run:     2
Total run time:  17.814 s
如果想不同的主机应用不同的配置,则需要使用到salt高级状态模块
# 当使用salt命令执行高级状态,会将topfile当作入口文件,进行调用
# 将高级状态应用到所有主机
编写topfile文件,必须在base目录下
[root@swt ~]# cd /srv/salt/base/
[root@swt base]# cat top.sls 
base:
  'lizihan123':
    - web.nfs
  'swt':
    - web.vsftp
[root@swt ~]# salt '*' state.highstate //让所有minion工作,但是工作内容在topfile里,topfile没有指定minion工作则不工作
lizihan123:
----------
          ID: nfs_install
    Function: pkg.installed
        Name: nfs-utils
      Result: True
     Comment: The following packages were installed/updated: nfs-utils
     Started: 16:47:37.761194
    Duration: 12846.796 ms
     Changes:   
              ----------
              nfs-utils:
                  ----------
                  new:
                      1:1.3.0-0.61.el7
                  old:
----------
          ID: nfs_servicer
    Function: service.running
        Name: nfs-utils
      Result: True
     Comment: Service nfs-utils is already enabled, and is running
     Started: 16:47:52.728963
    Duration: 128.549 ms
     Changes:   
              ----------
              nfs-utils:
                  True

Summary for lizihan123
------------
Succeeded: 2 (changed=2)
Failed:    0
------------
Total states run:     2
Total run time:  12.975 s
swt:
----------
          ID: vsftpd_install
    Function: pkg.installed
        Name: vsftpd
      Result: True
     Comment: The following packages were installed/updated: vsftpd
     Started: 16:47:38.171488
    Duration: 14386.016 ms
     Changes:   
              ----------
              vsftpd:
                  ----------
                  new:
                      3.0.2-25.el7
                  old:
----------
          ID: vsftpd_servicer
    Function: service.running
        Name: vsftpd
      Result: True
     Comment: Service vsftpd has been enabled, and is running
     Started: 16:47:54.520855
    Duration: 292.769 ms
     Changes:   
              ----------
              vsftpd:
                  True

Summary for swt
------------
Succeeded: 2 (changed=2)
Failed:    0
------------
Total states run:     2
Total run time:  14.679 s
[root@swt ~]# salt '*' state.highstate test=True //检测能不能启动
Grains

Grains:salt的一个组件,salt-minions启动时收集的信息。(资产管理)

//获取信息
[root@swt ~]# salt '*' grains.items   //获取minions信息
[root@swt ~]# salt '*' grains.get saltversion  //获取salt的版本
lizihan123:
    2019.2.0
swt:
    2019.2.0
[root@swt ~]# salt '*' grains.get ip4_interfaces:eth0  //查询所有minion的eth0的ip地址
lizihan123:
    - 172.17.26.52
swt:
    - 172.16.23.247
//目标匹配
[root@swt ~]# salt -G 'os:CentOS' cmd.run 'uptime'  //让所有centos的系统下执行命令
lizihan123:
     17:12:24 up 34 days,  7:52,  1 user,  load average: 0.03, 0.06, 0.05
swt:
     17:12:24 up 58 days,  2:16,  2 users,  load average: 0.02, 0.05, 0.05
     
//在topfile文件里写入grains匹配规则
[root@swt ~]# cat /srv/salt/base/top.sls 
base:
  'os:CentOS':
    - match: grain   //定义匹配方法
    - web.vsftp
[root@swt ~]# salt '*' state.highstate test=True
lizihan123:
----------
          ID: vsftpd_install
    Function: pkg.installed
        Name: vsftpd
      Result: None
     Comment: The following packages would be installed/updated: vsftpd
     Started: 17:20:20.590014
    Duration: 963.08 ms
     Changes:   
----------
          ID: vsftpd_servicer
    Function: service.running
        Name: vsftpd
      Result: None
     Comment: Service vsftpd not present; if created in this state run, it would have been started
     Started: 17:20:21.554117
    Duration: 20.578 ms
     Changes:   

Summary for lizihan123
------------
Succeeded: 2 (unchanged=2)
Failed:    0
------------
Total states run:     2
Total run time: 983.658 ms
swt:
----------
          ID: vsftpd_install
    Function: pkg.installed
        Name: vsftpd
      Result: None
     Comment: The following packages would be installed/updated: vsftpd
     Started: 17:20:20.904796
    Duration: 2027.936 ms
     Changes:   
----------
          ID: vsftpd_servicer
    Function: service.running
        Name: vsftpd
      Result: None
     Comment: Service vsftpd not present; if created in this state run, it would have been started
     Started: 17:20:22.933834
    Duration: 26.139 ms
     Changes:   

Summary for swt
------------
Succeeded: 2 (unchanged=2)
Failed:    0
------------
Total states run:     2
Total run time:   2.054 s

//可以使用配合模板来做判断
            ······
自定义grains
第一种修改/etc/salt/minion的配置文件(不建议)
第二种在minion端写grains文件
[root@swt ~]# cat /etc/salt/grains
test-grains: swt
[root@swt ~]# salt '*' grains.get test-grains
lizihan123:
swt:
[root@swt ~]# systemctl restart salt-master.service //需要重启客户端
[root@swt ~]# salt '*' grains.get test-grains
lizihan123:
swt:
    swt
[root@lizihan123 ~]# cat /etc/salt/grains
bbq: qqb
[root@swt ~]# salt '*' saltutil.sync_grains   //执行这条,不需要重启
swt:
lizihan123:
[root@swt ~]# salt '*' grains.get bbq
lizihan123:
    qqb
swt:
[root@swt ~]# cat /srv/salt/base/top.sls   //编写topfile文件
base:
  'bbq:qqb':
    - match: grain
    - web.vsftp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值