목차
任何设备均可被salt托管
开发中的新特性
测试环境的准备
尝试运行!
可能的bug
聊聊Proxy Minion
데이터 베이스 MySQL 튜토리얼 Saltstack 新特性测试之proxy minion

Saltstack 新特性测试之proxy minion

Jun 07, 2016 pm 04:37 PM
mini proxy saltstack 새로운 특성 특성

salt 目前主要的应用场景是Linux OS下,另外还有Windows Client(Win下没用过,但是看官方issue,应该……),最近关注到官方的一个小模块提到了Proxy minion,群里也多有提及,便想着看看到底是啥存在。 任何设备均可被salt托管 salt proxy minion的出现,

salt 目前主要的应用场景是Linux OS下,另外还有Windows Client(Win下没用过,但是看官方issue,应该……),最近关注到官方的一个小模块提到了Proxy minion,群里也多有提及,便想着看看到底是啥存在。

任何设备均可被salt托管

salt proxy minion的出现,使得网管设备或者哑设备(比如sms gateway)均可被salt统一管理,而实际的管理模块或通讯接口均由用户自行编写好,具体操作内容请参见salt 官网对应的 Proxy Minion 介绍

开发中的新特性

首先需要注意一点,Proxy minion是2014.1.x版本引进的新特性,并且到目前为止仍处于开发阶段,仅可用作测试用途。

测试环境的准备

本人的PC环境:

  • vbox下ubuntu 14.04 LTS Server
  • Salt master & minion 2014.1.7(配置test.ping通,不多说了)

准备好基础环境之后,需要从github下载salt官方开发人员用于测试Proxy Minion的一个小程序(Rest Server,模拟网管设备的管理接口),名字是 salt-proxy-rest。

这个程序可能依赖两个python库,bottle和requests(其实就是web server需要的组件……),安装一下即可。

使用 python rest.py 运行该程序,可以将此作为一个网管设备的Web管理接口:

alt

尝试运行!

至此,准备工作算是完成。在当前环境下,salt-master和salt-minion稳定运行,并且有一个提供REST接口的网管设备在独立工作,我们需要做的便是将其拉进Salt的阵营。

配置pillar

鄙人的minion id是docker,对应的pillar的top.sls内容配置为:

root@docker:/srv/pillar# cat top.sls
base:
  docker:
    - proxyminion
로그인 후 복사

而proxyminion.sls内容则是对应网管设备的描述:

root@docker:/srv/pillar# cat proxyminion.sls 
proxy:
  rest_sample:
    proxytype: rest_sample
    url: http://127.0.0.1:8080/
    id: proxy_docker
로그인 후 복사

这里需要注意的是,proxytype必须是在salt/proxy下已经预先定义好的,而其他的一些参数则是自己网管设备通信需要的一些数据,不一定相同。

定义好pillar数据之后,需要为之添加对应的proxy conn class和grains数据,这里鄙人使用官方sample,就偷个懒:

root@docker:/srv/pillar# cat /usr/lib/python2.7/dist-packages/salt/proxy/rest_sample.py
# -*- coding: utf-8 -*-
'''
This is a simple proxy-minion designed to connect to and communicate with
the bottle-based web service contained in salt/tests/rest.py.
Note this example needs the 'requests' library.
Requests is not a hard dependency for Salt
'''
……
로그인 후 복사

放心,2014.1.7版本已经默认有这个sample代码。 接下来,直接test.ping试试吧!

root@docker:/srv/pillar# salt '*' test.ping -v
Executing job with jid 20140720110315049478
-------------------------------------------
docker:
    True
rest_sample-localhost:
    True
로그인 후 복사

诶,等一下,为什么多出来个key?为什么还能test.ping通?没错!这个就是ProxyMinion,而salt默认已经配置了test.ping方法兼容proxy minion了,只要写好对应的ping模块,就可以使用常规的test.ping来探测!(本例的ping代码如下)

def ping(self):
    '''
    Is the REST server up?
    '''
    r = requests.get(self.url+'ping')
    try:
        if r.status_code == 200:
            return True
        else:
            return False
    except Exception:
        return False
로그인 후 복사

rest_sample还提供很多function,比如鄙人测试的一个service_status,修改对应的模块代码即可使之兼容proxy minion(代码路径为/usr/lib/python2.7/dist-packages/salt/modules/service.py):

def status(name, sig=None):
    '''
    Return the status for a service, 
    returns the PID or an empty string if the
    service is running or not, pass a signature
    to use to find the service via ps
    CLI Example:
    .. code-block:: bash
    salt '*' service.status  [service signature]
    '''
    #wjx add, denote it to work!!
    #if 'proxyobject' in __opts__:
    #    return __opts['proxyobject'].service_status(sig if sig else name)
    return __salt__['status.pid'](sig if sig else name)
로그인 후 복사

那么这时候再看看当前proxy minion管理的服务状态咋样了:

root@docker:/srv/pillar# salt '*' service.status apache
rest_sample-localhost:
    ----------
    comment:
        stopped
    ret:
        True
docker:
    False
로그인 후 복사

完全和普通minion兼容!!rest_sample本身还配置了grain数据,代码位于/usr/lib/python2.7/dist-packages/salt/grains/rest_sample.py,直接敲命令看看:

root@docker:/srv/pillar# salt 'rest_sample-localhost' grains.items
rest_sample-localhost:
    housecat: Are you kidding?
    kernel: 0.0000001
    location: In this darn virtual machine.  Let me out!
    os: RestExampleOS
    os_family: proxy
로그인 후 복사

Awesome!!这样一来,一个基本的salt proxy minion就算是配置完成,Proxy Minion 的类定义代码位于/usr/lib/python2.7/dist-packages/salt/minion.py,有兴趣可以看看。

可能的bug

鄙人在本机测试时,Minion Docker在尝试fork出一个ProxyMinion过程中间报错,说_running参数没有配置,在添加代码后通过(即位于minion.py代码里)

class ProxyMinion(Minion):
'''
This class instantiates a 'proxy' minion--a minion that does not manipulate
the host it runs on, but instead manipulates a device that cannot run a minion.
'''
def __init__(self, opts, timeout=60, safe=True):  # pylint: disable=W0231
    '''
    Pass in the options dict
    '''
    #wjx add, maybe a bug
    self._running = None
    # Warn if ZMQ 
<h4 id="聊聊Proxy-Minion">聊聊Proxy Minion</h4>
<p>Proxy minion使得salt针对网管设备的配置管理成为可能,不过想要实现一个ProxyType的ProxyMinion的完全管理,可能需要编写很多额外的module去支持它的运行。</p>
<p>在大公司复杂的网络环境下,完全可以针对此编写对应SNMP管理模块或者针对OVS编写对应的管理模块,尔后通过salt统一托管,毕竟Salt有一套完善的配置管理体系啊!</p>
    <p class="copyright">
        原文地址:Saltstack 新特性测试之proxy minion, 感谢原作者分享。
    </p>
    
    


로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Nginx Proxy Manager에서의 컨테이너 및 마이크로서비스 배포 전략 Nginx Proxy Manager에서의 컨테이너 및 마이크로서비스 배포 전략 Sep 27, 2023 pm 01:06 PM

NginxProxyManager에서 컨테이너 및 마이크로서비스의 배포 전략에는 특정 코드 예제가 필요합니다. 요약: 마이크로서비스 아키텍처의 인기로 인해 컨테이너화 기술은 현대 소프트웨어 개발의 중요한 부분이 되었습니다. 마이크로서비스 아키텍처에서 NginxProxyManager는 마이크로서비스의 트래픽을 관리하고 프록시하는 데 사용되는 매우 중요한 역할을 합니다. 이 문서에서는 NginxProxyManager를 사용하여 컨테이너화된 마이크로서비스를 배포 및 관리하는 방법을 소개하고 관련 코드 예제를 제공합니다.

Nginx 프록시 관리자 튜토리얼: 빠른 시작 가이드 Nginx 프록시 관리자 튜토리얼: 빠른 시작 가이드 Sep 27, 2023 pm 05:39 PM

NginxProxyManager 튜토리얼: 빠른 시작 가이드, 필요한 특정 코드 예제 소개: 네트워크 기술의 발전으로 프록시 서버는 일상적인 인터넷 사용의 일부가 되었습니다. NginxProxyManager는 Nginx 기반의 프록시 서버 관리 플랫폼으로, 프록시 서버를 신속하게 구축하고 관리하는 데 도움이 됩니다. 이 기사에서는 NginxProxyManager의 빠른 시작 가이드와 일부 특정 코드 예제를 소개합니다. 하나

Nginx 프록시 관리자를 사용하여 여러 서버의 로드 밸런싱을 달성하는 방법 Nginx 프록시 관리자를 사용하여 여러 서버의 로드 밸런싱을 달성하는 방법 Sep 27, 2023 pm 09:42 PM

NginxProxyManager를 사용하여 여러 서버의 로드 밸런싱을 달성하는 방법 NginxProxyManager는 Nginx를 기반으로 개발된 프록시 서버 관리 도구로 Nginx 프록시 서버를 쉽게 구성하고 관리할 수 있는 간단하고 사용하기 쉬운 웹 인터페이스를 제공합니다. 실제 애플리케이션에서는 로드 밸런싱을 달성하고 시스템 성능과 가용성을 향상시키기 위해 요청을 여러 서버에 분산해야 하는 경우가 많습니다. 이 기사에서는 NginxProx를 사용하는 방법을 소개합니다.

Win95 호환성과 흔하지 않은 프로세서를 탑재한 Pocket386 초소형 노트북 출시 Win95 호환성과 흔하지 않은 프로세서를 탑재한 Pocket386 초소형 노트북 출시 Jun 24, 2024 am 06:46 AM

새 노트북의 주요 사양은 학창 시절을 연상케 할 것 같다. 8MB의 메모리와 640 x 480(4:3) 및 800 x 480 모드를 지원하는 7인치 IPS 디스플레이를 갖추고 있습니다. 많은 레트로 포트와 386 SX 호환 Ali M6117 프로세서 실행

Spring MVC의 주요 개념을 익히십시오: 이러한 중요한 기능을 이해하십시오 Spring MVC의 주요 개념을 익히십시오: 이러한 중요한 기능을 이해하십시오 Dec 29, 2023 am 09:14 AM

SpringMVC의 주요 기능 이해: 이러한 중요한 개념을 익히려면 특정 코드 예제가 필요합니다. SpringMVC는 개발자가 MVC(Model-View-Controller) 아키텍처 패턴을 통해 유연하고 확장 가능한 구조를 구축하는 데 도움이 되는 Java 기반 웹 애플리케이션 개발 프레임워크입니다. 웹 애플리케이션. SpringMVC의 주요 기능을 이해하고 익히면 웹 애플리케이션을 보다 효율적으로 개발하고 관리할 수 있습니다. 이 기사에서는 SpringMVC의 몇 가지 중요한 개념을 소개합니다.

8.4 1099부터 소형 태블릿 출시 8.4 1099부터 소형 태블릿 출시 Sep 01, 2024 pm 04:04 PM

Sound | Xiaobai Meizu는 이전에 Polestar 휴대폰 "Polestar Phone"을 만들기 위해 협력한 적이 있습니다. 얼마 전 Lynk & Co는 Meizu와 협력하여 "Lynk & Co 휴대폰"을 맞춤화할 것이라고 발표했습니다. 최신 뉴스에 따르면 Meizu는 Hongqi의 휴대폰도 OEM으로 생산할 것으로 보입니다. 위 사진에서 볼 수 있듯이 메이주는 최근 인터넷에 새로운 5G 휴대폰 모델 M481R을 출시했습니다. @완벽하게 배열된 디지털은 이 모델을 홍치 휴대폰이라고 불렀습니다. "마트료시카 메이주 21Pro인 것 같습니다." 이에 더해 올해 4월 제5차 중국 FAW 기술 컨퍼런스에서 중국 FAW와 Yikatong Technology는 스마트 조종석에 대한 전략적 협력 계약을 체결했습니다. 두 당사자는 스마트 조종석 분야에서 포괄적인 전략적 협력을 시작하고 공동으로 고도의 기술을 구축할 것입니다. 경쟁력 있는

시작부터 포기까지 DIY: 무선 네트워크 카드로 오래된 마더보드 절약 시작부터 포기까지 DIY: 무선 네트워크 카드로 오래된 마더보드 절약 Mar 14, 2024 pm 04:40 PM

많은 마더보드에는 WiFi 모듈이 내장되어 있지만 많은 플레이어에게는 추가로 200위안을 지불하는 것이 비용 효율적이지 않습니다. 또한 일부 오래된 마더보드에는 WiFi가 없기 때문에 편리한 무선 인터넷 액세스를 사용해야 합니다. 하나. 무선 네트워크 카드. 무선 네트워크 카드는 사용하기 매우 편리하지만 모든 제품이 귀하에게 적합한 것은 아닙니다. 아래에서는 3가지 무선 네트워크 카드를 소개합니다. 1. "휴대용 피터팬" - USB 무선 네트워크 카드 가장 먼저 정면으로 맞서는 것은 바로 우리 주변의 '작은 영웅', 바로 USB 무선 네트워크 카드이다. 이 가볍고 작은 장치는 마법의 열쇠와 같습니다. 플러그를 꽂고 컴퓨터의 USB 포트에 연결하기만 하면 무선 네트워크 여행이 즉시 활성화됩니다. USB 무선 네트워크 카드는 저렴한 가격과 최고의 편의성으로 인해 널리 사용되고 있습니다.

Nginx 프록시 관리자를 사용하여 HTML 페이지를 빠르게 캐시하는 방법 Nginx 프록시 관리자를 사용하여 HTML 페이지를 빠르게 캐시하는 방법 Sep 28, 2023 am 10:58 AM

NginxProxyManager를 사용하여 HTML 페이지를 빠르게 캐싱하는 방법 소개: 최신 네트워크 애플리케이션에서 웹 페이지를 빠르게 로드하는 것은 중요한 요구 사항입니다. 사용자 경험을 향상시키기 위해 NginxProxyManager를 사용하여 HTML 페이지를 빠르게 캐시할 수 있습니다. 이 기사에서는 NginxProxyManager를 사용하여 이 목표를 달성하는 방법을 보여주고 구체적인 코드 예제를 제공합니다. 1부: NginxProxy 설치 및 구성

See all articles