目次
任何设备均可被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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Nginx Proxy Manager でのコンテナとマイクロサービスのデプロイ戦略 Nginx Proxy Manager でのコンテナとマイクロサービスのデプロイ戦略 Sep 27, 2023 pm 01:06 PM

NginxProxyManager でのコンテナーとマイクロサービスのデプロイメント戦略には、特定のコード サンプルが必要です 概要: マイクロサービス アーキテクチャの人気により、コンテナー化テクノロジは最新のソフトウェア開発の重要な部分になっています。マイクロサービス アーキテクチャでは、NginxProxyManager は非常に重要な役割を果たし、マイクロサービスのトラフィックの管理とプロキシに使用されます。この記事では、NginxProxyManager を使用してコンテナ化されたマイクロサービスをデプロイおよび管理する方法を紹介し、関連するコード例を示します。

Nginx Proxy Managerを使用して複数のサーバーの負荷分散を実現する方法 Nginx Proxy Managerを使用して複数のサーバーの負荷分散を実現する方法 Sep 27, 2023 pm 09:42 PM

NginxProxyManager を使用して複数サーバーの負荷分散を実現する方法. NginxProxyManager は、Nginx に基づいて開発されたプロキシ サーバー管理ツールであり、Nginx プロキシ サーバーを簡単に設定および管理できるシンプルで使いやすい Web インターフェイスを提供します。実際のアプリケーションでは、負荷分散を実現し、システムのパフォーマンスと可用性を向上させるために、リクエストを複数のサーバーに分散する必要があることがよくあります。この記事ではNginxProxの使い方を紹介します。

Nginx プロキシ マネージャー チュートリアル: クイック スタート ガイド Nginx プロキシ マネージャー チュートリアル: クイック スタート ガイド Sep 27, 2023 pm 05:39 PM

NginxProxyManager チュートリアル: クイック スタート ガイド、必要な特定のコード例 はじめに: ネットワーク技術の発展に伴い、プロキシ サーバーはインターネットの日常使用の一部になりました。 NginxProxyManager は、Nginx ベースのプロキシ サーバー管理プラットフォームで、プロキシ サーバーを迅速に確立して管理するのに役立ちます。この記事では、NginxProxyManager のクイック スタート ガイドと、いくつかの具体的なコード例を紹介します。 1つ

8.4 小型タブレットは 1099 以降に発売 8.4 小型タブレットは 1099 以降に発売 Sep 01, 2024 pm 04:04 PM

Sound | Xiaobai Meizuは以前、Polestar携帯電話「Polestar Phone」を開発するために協力したと発表しました。少し前に、Lynk&Coも「Lynk&Co携帯電話」をカスタマイズするために協力することを発表しました。自動車会社と協力して携帯電話を製造するビジネスを展開 最新のニュースによると、MeizuもHongqiに携帯電話のOEMを行うようです。上の写真でわかるように、Meizu は最近、新しい 5G 携帯電話モデル M481R をインターネット上で発表し、このモデルを「マトリョーシカ Meizu 21Pro のようです」と呼びました。補足すると、今年4月の第5回中国第一汽車技術会議において、第一汽車と宜嘉通科技はスマートコックピット分野における戦略的協力協定を締結し、両社はスマートコックピット分野における包括的な戦略協力を開始し、共同で高度な戦略的協力を構築する。競争力

DIY の開始から諦めまで: ワイヤレス ネットワーク カードが古いマザーボードを節約します DIY の開始から諦めまで: ワイヤレス ネットワーク カードが古いマザーボードを節約します Mar 14, 2024 pm 04:40 PM

多くのマザーボードには WiFi モジュールが内蔵されていますが、多くのプレーヤーにとって、追加の 200 元はコスト効率がよくありません。また、一部の古いマザーボードには WiFi がありません。便利なワイヤレス インターネット アクセスを楽しみたい場合は、を使用する必要があります。 1. ワイヤレス ネットワーク カード。ワイヤレス ネットワーク カードは非常に便利ですが、すべての製品が自分に適しているわけではないことに注意してください。以下では 3 種類のワイヤレス ネットワーク カードを紹介します。 1. 「ポータブル ピーター パン」 - USB ワイヤレス ネットワーク カード 最初に矢面に立たされるのは、私たちの周りの「小さなヒーロー」である USB ワイヤレス ネットワーク カードです。この軽量で小型のデバイスは魔法の鍵のようなもので、コンピューターの USB ポートに差し込んで接続するだけで、すぐにワイヤレス ネットワークの旅を開始できます。 USB ワイヤレス ネットワーク カードは、手頃な価格と究極の利便性により広く使用されています。

Spring MVC の主要な概念をマスターする: これらの重要な機能を理解する Spring MVC の主要な概念をマスターする: これらの重要な機能を理解する Dec 29, 2023 am 09:14 AM

SpringMVC の主要な機能を理解する: これらの重要な概念を習得するには、特定のコード例が必要です。 SpringMVC は、開発者が Model-View-Controller (MVC) アーキテクチャ パターンを通じて柔軟でスケーラブルな構造を構築するのに役立つ Java ベースの Web アプリケーション開発フレームワークです。ウェブアプリケーション。 SpringMVC の主要な機能を理解して習得すると、Web アプリケーションをより効率的に開発および管理できるようになります。この記事では、SpringMVC の重要な概念をいくつか紹介します。

Win95 互換性と珍しいプロセッサを搭載した Pocket386 ウルトラポータブル ラップトップが静かにリリース Win95 互換性と珍しいプロセッサを搭載した Pocket386 ウルトラポータブル ラップトップが静かにリリース Jun 24, 2024 am 06:46 AM

新しいラップトップの主な仕様を聞くと、学生時代を思い出す人もいるでしょう。 8 MB のメモリと 640 x 480 (4:3) および 800 x 480 モードをサポートする 7 インチ IPS ディスプレイを備えています。多くのレトロなポートと 386 SX 互換の Ali M6117 プロセッサが実行されています

Nginx プロキシ マネージャーのセキュリティ分析と保護 Nginx プロキシ マネージャーのセキュリティ分析と保護 Sep 28, 2023 pm 01:30 PM

NginxProxyManager のセキュリティ分析と保護 はじめに: インターネット アプリケーションでは、セキュリティは常に重要な問題です。 Nginx は、強力なリバース プロキシおよび負荷分散サーバー ソフトウェアとして、ネットワーク アプリケーションのセキュリティを確保する上で重要な役割を果たします。しかし、インターネット技術の継続的な発展とネットワーク攻撃の増加に伴い、NginxProxyManager のセキュリティをどのように確保するかが緊急の課題となっています。この記事はNginxProxyManaから始まります

See all articles