zoukankan      html  css  js  c++  java
  • saltstack布署实践 【配置文件管理-state模块】

    那如果要批量修改被管机器的某个配置文件怎么做?以下给出一个最简单案例。
     
    先在主管机器master上查看/etc/salt/master配置文件
    看到有以下几行配置文件
     
    # file_roots:
    #   base:
    #     - /srv/salt/
    #   dev:
    #     - /srv/salt/dev/services
    #     - /srv/salt/dev/states
    #   prod:
    #     - /srv/salt/prod/services
    #     - /srv/salt/prod/states
     
     
    配置说明:默认以上的文件目录,就是state模块应用目录,你可将其配置项的注释 删掉,额外配置一些其它你喜欢目录树结构,然后重启master的服务,让其配置生效。
     
    这里为了测验,我没有改master配置,在base目录下直接测试
    首先创建文件夹
    mkdir /srv/salt
    接下来在这目录中创建一个state模块可解析的sls文件
    vi /srv/salt/one.sls
     
    #这个/tmp/foo.conf其实是一个ID,但它直接默许你要管理的minion机器上的文件位置
    /tmp/foo.conf:
    #使用state中的file.managed模块来管理,具体配置参考可以通过salt 'minion' sys.state_doc  file.managed这条命令来查阅
      file.managed:
    #定认本端master的源文件key
        - source:
    #这里的key中的VALUE对应的是salt://foo.conf,指的是salt中base目录(/srv/salt/) 下的foo.conf
          - salt://foo.conf
    #将目标minion的文件控制其文件权限
        - user: root
        - user: root
        - mode: 644
    #备份minion的源文件
        - backup: minion
     
    接下来我们创建master要下发的配置文件示例
    # echo 'saltstack Test' > /srv/salt/foo.conf
     
    接下来在master通过state命令把配置批量推下去
    salt -E '10.40.41.154.ubuntu1404.stg|10.40.41.154.ubuntu1404.stg'   state.sls one
    10.40.41.154.ubuntu1404.stg:
    ----------
              ID: /tmp/foo.conf
        Function: file.managed
          Result: True
         Comment: File /tmp/foo.conf is in the correct state
         Started: 11:38:24.910375
        Duration: 31.449 ms
         Changes:   
     
    Summary for 10.40.41.154.ubuntu1404.stg
    ------------
    Succeeded: 1
    Failed:    0
    ------------
    Total states run:     1
    Total run time:  31.449 ms
    10.40.41.155.centos7.stg:
    ----------
              ID: /tmp/foo.conf
        Function: file.managed
          Result: True
         Comment: File /tmp/foo.conf is in the correct state
         Started: 11:38:24.917948
        Duration: 41.525 ms
         Changes:   
     
    Summary for 10.40.41.155.centos7.stg
    ------------
    Succeeded: 1
    Failed:    0
    ------------
    Total states run:     1
    Total run time:  41.525 ms
     
    我们当然可以从minion单台机器上向master获取
     为验证成功性,我们修改一下刚才master上的foo.conf
    echo 'saltstack Test-2' > /srv/salt/foo.conf
    在minion端发生命令
    # salt-call state.sls one
    local:
    ----------
              ID: /tmp/foo.conf
        Function: file.managed
          Result: True
         Comment: File /tmp/foo.conf updated
         Started: 11:40:30.638998
        Duration: 49.449 ms
         Changes:    x
                  ----------
                  diff:
                      ---
                      +++
                      @@ -1 +1 @@
                      -saltstack Test
                      +saltstack Test-2
     
    Summary for local
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1
    Total run time:  49.449 ms
     
     
    比较2台minion配置文件的差异
    [root@localhost salt]# cat /tmp/foo.conf
    saltstack Test-2
     
    root@ubuntu:/srv/salt# cat /tmp/foo.conf
    saltstack Test
     
    这是最简单的配置管理
    我们可通过这条命令实时追踪它state底层执行的过程:salt-run state.event pretty=True 需要一边开这个窗口monitor,另一窗口执行命令
     
  • 相关阅读:
    JAVA-基础-网络通信协议
    JAVA-基础-线程安全
    JAVA-基础-多线程
    IDEA安装破解JFrameDesigner
    windows IIS安装memadmin
    exe应用程序安装为windows服务
    远程管理virtual box的几种方式
    手动修改注册表更改MAC地址
    在火狐插件中使用socket编程与java进行通信
    定制自己的firefox插件并在selenium中使用
  • 原文地址:https://www.cnblogs.com/veniceslove/p/6290820.html
Copyright © 2011-2022 走看看