salt manage module

salt 针对管理对象操作

  1. salt module组件

    1
    Module是我们日常使用SaltStack接触最多的一个组件,它是SaltStack通过Push的方式进行管理的入口.比如:我们日常简单的执行命令,查看包安装情况,查看服务运行情况等工作都是通过SaltStack Module来实现的
  2. 查看modules

    1
    2
    3
    [root@salt-master base]# salt 'salt-minion-187' sys.list_modules
    [root@salt-master base]# salt 'salt-minion-187' sys.list_functions sys
    [root@salt-master base]# salt 'salt-minion-187' sys.doc sys
  3. 执行modules

    1
    2
    [root@salt-master base]# salt 'salt-minion-187' test.echo
    [root@salt-master base]# salt 'salt-minion-187' test.echo,cmd.run
  4. 查看file_roots位置

    1
    2
    3
    4
    [root@salt-master ~]# vim /etc/salt/master
    file_roots:
    base:
    - /mnt/data/salt.repo/salt/base
  5. 创建_modules目录

    1
    2
    3
    4
    5
    6
    7
    8
    [root@salt-master ~]# mkdir -p /mnt/data/salt.repo/salt/base/_modules
    def world():
    """
    This is my first function.
    CLI Example:
    salt '*' hello.world
    """
    return 'Hello, world!'
  6. 将模块推送到minion端

    1
    2
    3
    [root@salt-master ~]# salt 'salt-minion-187' saltutil.sync_modules
    salt-minion-187:
    - modules.hello
  7. 查看minion端的模块

    1
    2
    [root@salt-master ~]# salt 'salt-minion-187' sys.list_modules|grep hello
    - hello
  8. 执行minion端的模块

    1
    2
    3
    [root@salt-master ~]# salt 'salt-minion-187' hello.world
    salt-minion-187:
    Hello, world!
  9. 特别说明

    1
    我们可以通过"__salt__","__grains__"和"__pillar__"函数调用所有其他执行模块,就像使用salt命令一样简单