Saltstack的配置管理salt.states

来自linux中国网wiki
跳到导航 跳到搜索

最简单的sls state


vim /srv/salt/top.sls
#正则匹配
base:
  '*':
    - webserver
    
vim /srv/salt/webserver.sls
lynx:                 # 标签定义
  pkg:                  # state declaration
    - installed         # function declaration
    

第一行被称为(ID declaration) 标签定义,在这里被定义为安装包的名。注意:在不同发行版软件包命名不同,比如 fedora 中叫httpd的包 Debian/Ubuntu中叫apache2
第二行被称为(state declaration)状态定义, 在这里定义使用(pkg state module)
第三行被称为(function declaration)函数定义, 在这里定义使用(pkg state module)调用 installed 函数

    
 salt '*' state.highstate -v test=True
salt '*' state.highstate 
   

2.9  配置管理从这里开始  p27

1.查看支持的所有states 列表

 salt 'gitlabzbx' sys.list_state_modules
gitlabzbx:
    - alias
    - alternatives
    - apt
    - archive
    - artifactory
    - beacon
    - bigip


5. 从一个简单的实例理解states 


 cat /srv/salt/one.sls 
/tmp/foo.conf:
    file.managed:
        - source: salt://foo.conf
        - user: root
        - group: root
        - mode: 644
        - backup: minion


root@myxp:~# echo "salt books" > /srv/salt/foo.conf



这样就把 master上的 /src/salt/foo.conf 分发到 minon的 /tmp/foo.conf 

root@myxps:/srv/salt# salt '*' state.sls one 
zbxAgent:
----------
          ID: /tmp/foo.conf
    Function: file.managed
      Result: True
     Comment: File /tmp/foo.conf updated
     Started: 08:31:01.737749
    Duration: 45.764 ms
     Changes:   
              ----------
              diff:
                  New file
              mode:
                  0644

Summary for zbxAgent
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  45.764 ms
gitlabzbx:
----------
          ID: /tmp/foo.conf


salt系统初始化例子


https://github.com/evan886/saltops



下面介绍 使用top.sls 入口文件同时对多台服务器进行的配置管理 

salt-master --log-level=debug

正式例子

# Example:  注意  各空两格下去   级级下去  我搞了半天 呀  一开始
 file_roots:
   base:
#     - /srv/salt/base
#   dev:
#     - /srv/salt/dev/services
#     - /srv/salt/dev/states
   prod:
     - /srv/salt/prod/
#     - /srv/salt/prod/states


  pillar_roots:
    base:
      - /srv/pillar/base
#
    prod:
      - /srv/pillar/prod
    

 mkdir  -p /srv/salt/base /srv/salt/prod

 mkdir  -p /srv/pillar/base /srv/pillar/prod

/etc/init.d/salt-master restart


站内资源

Saltstack文件管理

see also

https://docs.saltproject.io/en/latest/ref/states/all/salt.states.file.html

Salt 系统初始化

saltstack 的日常使用(一)