zoukankan      html  css  js  c++  java
  • SaltStack自定义modules模块

    SaltStack可以分为Master和Minion,自定义modules模块可以让你更加便捷的在两者之间进行信息收集和获取。

    首先需要在master机器的file_roots 下建一个_modules文件夹,里面放.py 文件,也就是自定义模块。

    • 1.1:  file_roots 在/etc/salt/master 里可以设置,默认是/srv/salt/,即你需要在这个目录下新建文件夹_modules
      srv
      -- salt
         -- _modules
             -- test.py
      
    • 1.2:  test.py

      def world():
          return 'hello world'
    • 1.3  在master使用salt "*" saltutil.sync_modules对_modules里面的文件同步到minion
    • 1.4  然后使用salt "*" test.hello,输出结果,记得test.py文件里面要加return,不然在master是无法显示接收到的信息。
    • ---------------------------------------------------------------------------------------------------------------------------------------------------------
    • 2.1  windows安装的minion默认路径存放在C:salt
    • 2.2  同步之后的_modules模块存放在C:saltvarcachesaltminionextmodsmodules
    • 2.3  如果在master写好Python文件之后进行推送测试未免太麻烦,可以在salt目录下,按住Shift键打开命令行,输入salt-call.bat   a(文件名).world(文件当中的模块名),进行快速测试PS:每一次测试完记得要将__pycache__文件夹删除,不然他会重新编译之前的文件,无法得到你想要的结果
    • 例子
    • 如果pillar取不到数据,很可能是你没有定义,或者忘了刷新pillar数据   salt  '*'  saltutil.refresh_pillar
    • ---------------------------------------------------------------------------------------------------------------------------------------------------------
    • 3.1  runner模块其实可以用salt-run来快速调用,首先在打开master的配置文件,vim /etc/salt/master,在里面加入如下代码,然后创建相应的文件夹。
    • 3.2  在 /srv/runner/ 文件夹当中可以编写你所需要的Python文件,如新建一个a.py文件
    • 这样一来便可以在任何目录输入这条指令,直接执行,只不过在编写比较复杂的程序时,需要注意导入模块的路径问题,最好使用os.path.abspath来获取文件的绝对路径,而不是使用os.getpwd,因为os.getcwd是会获取当前的工作目录,得到的是salt-run语句执行的目录,并不会到python文件的执行目录,这一点要特别注意 
  • 相关阅读:
    基本数据类型
    运算
    登录程序
    MySQL索引
    内存泄漏排查&CPU负载高排查
    dubbo
    SPI
    缓存,热点key
    Java BigDecimal
    Spring Bean's life
  • 原文地址:https://www.cnblogs.com/a13798508446/p/9507110.html
Copyright © 2011-2022 走看看