• saltstack学习-6:文件系统


    1,修改配置文件

    [root@study02 ~]# vim /etc/salt/master
    # The file server works on environments passed to the master, each environment
    # can have multiple root directories, the subdirectories in the multiple file
    # roots cannot match, otherwise the downloaded files will not be able to be
    # reliably ensured. A base environment is required to house the top file.
    # Example:
    # file_roots:
    #   base:
    #     - /srv/salt/
    #   dev:
    #     - /srv/salt/dev/services
    #     - /srv/salt/dev/states
    #   prod:
    #     - /srv/salt/prod/services
    #     - /srv/salt/prod/states
    #
    file_roots:
      base:
        - /srv/salt

    base:基础版  ---默认使用这个版本

    dev:开发版

    prod:产品版

    2,创建目录

    手工创建,配置文件配置的目录。

    测试1:salt远程执行脚本

    • 创建脚本
    [root@study02 ~]# mkdir /srv/salt
    [root@study02 salt]# mkdir etc/script
    [root@study02 script]# vim test.sh
    [root@study02 script]# cat test.sh 
    #!/bin/sh
    
    while true
    do 
        sleep 1
        echo 1 >> /tmp/1.log
    done
    • 执行脚本
    [root@study02 script]# salt 'study02' cmd.script salt://etc/script/test.sh

    注意:由于这个脚本会一直执行,master在执行这个脚本的时候命令不会退出,需要ctrl+c退出。minion端会生成一个tmp***.sh的脚本,minion实际运行的是这个脚本。所以master退出后不影响minion的运行。

    image

    3,创建sls文件

    创建top.sls

    [root@study02 salt]# cat top.sls 
    base:                                           #与base,prod,dev 对应
      'study02':                                   #同步的minion_id
        - test                                        #调用的sls文件名

    创建test.sls

    [root@study02 salt]# cat test.sls 
    syncfile:                                              #名称,可以自定义。如果不写name的话,这里需写成目标地址
      file.managed:                                         #file模块的managed方法
        - source: salt://etc/file/passwd                    #原文件路径
        - user: root                                        #源文件属主
        - group: root                                       #源文件属组
        - mode: 600                                         #源文件权限
        - name: /tmp/passwd                                 #同步目标地址

    同步测试

    salt 'study02' state.highstate              执行top.sls

    salt 'study02' state.sls test                 根目录

    salt 'study02' state.sls sls.test            相对路径

    salt 'study02' state.sls sls                   默认init.sls

    方式一:

    [root@study02 salt]# salt 'study02' state.highstate
    study02:
    ----------
              ID: syncfile
        Function: file.managed
            Name: /tmp/passwd
          Result: True
         Comment: File /tmp/passwd is in the correct state
         Started: 16:48:10.320748
        Duration: 8.941 ms
         Changes:   
    
    Summary
    ------------
    Succeeded: 1
    Failed:    0
    ------------
    Total states run:     1

    方式二:

    [root@study02 salt]# salt 'study02' state.sls test
    study02:
    ----------
              ID: syncfile
        Function: file.managed
            Name: /tmp/passwd
          Result: True
         Comment: File /tmp/passwd updated
         Started: 16:55:38.798378
        Duration: 14.808 ms
         Changes:   
                  ----------
                  diff:
                      ---  
                      +++  
                      @@ -1,4 +1,5 @@
                       1111111111
                      +22222222222222222
                       root:x:0:0:root:/root:/bin/bash
                       bin:x:1:1:bin:/bin:/sbin/nologin
                       daemon:x:2:2:daemon:/sbin:/sbin/nologin
    
    Summary
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1

    方式三:将所有的sls文件放到一个目录

    [root@study02 salt]# tree 
    .
    ├── etc
    │   ├── file
    │   │   └── passwd
    │   └── script
    │   └── test.sh
    ├── sls
    │   └── test.sls
    ├── test.sls
    └── top.sls

    执行同步命令

    [root@study02 salt]# salt 'study02' state.sls sls.test
    study02:
    ----------
              ID: syncfile
        Function: file.managed
            Name: /tmp/passwd
          Result: True
         Comment: File /tmp/passwd updated
         Started: 16:59:41.890034
        Duration: 14.619 ms
         Changes:   
                  ----------
                  diff:
                      ---  
                      +++  
                      @@ -37,3 +37,4 @@
                       mysql:x:496:493:MySQL server:/var/lib/mysql:/bin/bash
                       zabbix:x:495:492:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
                       exim:x:93:93::/var/spool/exim:/sbin/nologin
                      +333
    
    Summary
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1

    方式4:默认执行init.sls,程序会自动补充文件后缀(.sls)

    [root@study02 salt]# tree
    .
    ├── etc
    │   ├── file
    │   │   └── passwd
    │   └── script
    │   └── test.sh
    ├── sls
    │   ├── init.sls
    │   └── test.sls
    ├── test.sls
    └── top.sls

    init.sls功能查询主机名:

    [root@study02 sls]# cat init.sls 
    hostname:
      cmd.run

    测试结果:

    [root@study02 sls]# salt 'study02' state.sls sls
    study02:
    ----------
              ID: hostname
        Function: cmd.run
          Result: True
         Comment: Command "hostname" run
         Started: 17:10:26.074874
        Duration: 9.38 ms
         Changes:   
                  ----------
                  pid:
                      30307
                  retcode:
                      0
                  stderr:
                  stdout:
                      study02
    
    Summary
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1
  • 相关阅读:
    IIS 解决问题:HTTP 错误 401.1
    Mvc
    如何将word公式粘贴到UMEditor里面
    SpringCloud上传大文件并支持中途取消上传
    SpringBoot上传大文件并支持中途取消上传
    SpringMVC上传大文件并支持中途取消上传
    csharp上传大文件并支持中途取消上传
    c#上传大文件并支持中途取消上传
    .net上传大文件并支持中途取消上传
    c#.net上传大文件并支持中途取消上传
  • 原文地址:https://www.cnblogs.com/snailshadow/p/8214963.html
Copyright © 2020-2023  润新知