Jacky Wu bio photo

Jacky Wu

Software Architect in China

Email Twitter Facebook LinkedIn Github Weibo

1. 简介

Salt Minion Proxy 存在的意义

很多设备(例如手机,交换机,路由器)上无法安装Salt Minion,使用Minion Proxy机制就可以管理这些设备,并且在Master看来,每个设备都是一样的Minion,提供一些统一的接口。

参考 Salt Proxy Minion

1.1. 原理架构图

架构图

2. 测试

使用官方的rest_sample测试。代码路径在salt-contrib:https://github.com/saltstack/salt-contrib 源码的proxyminion_rest_example目录下。

  1. 安装bottle,argparse等模块
  2. 启动该 rest 接口服务(proxyminion_rest_examplem目录下):python rest.py --address 192.168.33.20 --port 8888
  3. /etc/salt/proxy里添加master的地址:master: <master ip>
  4. 配置Pillar:top.sls
        
        #  
        base:
          'p8888':
            - p8888    
    
    
  1. 配置pillar:p8888.sls
        
        #      
        proxy:
          proxytype: rest_sample
          url: http://<IP your REST listens on>:port
    
    
  1. 启动proxy进程:salt-proxy --proxyid=p8888 -l debug, salt-proxy脚本在salt github:git@github.com:saltstack/salt.git源码目录的script目录下找到了, yum安装了2015.8版本后居然没有。
  2. 命令输出
  
    
        #
        [root@master pillar]# salt 'p8888' test.ping
        p8888:
            True
            
        [root@master pillar]# salt 'p8888' grains.item server_id
        p8888:
            ----------
            server_id:
                244897941
    
    

3. 开发

核心点是:参考规范,实现相应的接口。

开发手册

  1. Salt Proxy Minion End-To-End Example
  2. Salt Proxy Minion Ssh End-To-End Example

4. 其他参考资料

  1. grains获取的命令手册
  2. proxy-minion