Jadual Kandungan
任何设备均可被salt托管
开发中的新特性
测试环境的准备
尝试运行!
可能的bug
聊聊Proxy Minion
Rumah pangkalan data tutorial mysql Saltstack 新特性测试之proxy minion

Saltstack 新特性测试之proxy minion

Jun 07, 2016 pm 04:37 PM
mini proxy saltstack Ciri-ciri baru ciri

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
Salin selepas log masuk

而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
Salin selepas log masuk

这里需要注意的是,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
'''
……
Salin selepas log masuk

放心,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
Salin selepas log masuk

诶,等一下,为什么多出来个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
Salin selepas log masuk

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)
Salin selepas log masuk

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

root@docker:/srv/pillar# salt '*' service.status apache
rest_sample-localhost:
    ----------
    comment:
        stopped
    ret:
        True
docker:
    False
Salin selepas log masuk

完全和普通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
Salin selepas log masuk

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>
    
    


Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1268
29
Tutorial C#
1248
24
Strategi penggunaan kontena dan perkhidmatan mikro di bawah Pengurus Proksi Nginx Strategi penggunaan kontena dan perkhidmatan mikro di bawah Pengurus Proksi Nginx Sep 27, 2023 pm 01:06 PM

Strategi penggunaan kontena dan perkhidmatan mikro di bawah NginxProxyManager memerlukan contoh kod khusus: Dengan populariti seni bina perkhidmatan mikro, teknologi kontena telah menjadi bahagian penting dalam pembangunan perisian moden. Dalam seni bina perkhidmatan mikro, NginxProxyManager memainkan peranan yang sangat penting, digunakan untuk mengurus dan memproksi trafik perkhidmatan mikro. Artikel ini akan memperkenalkan cara menggunakan NginxProxyManager untuk menggunakan dan mengurus perkhidmatan mikro kontena, dan menyediakan contoh kod yang berkaitan.

Cara menggunakan Pengurus Proksi Nginx untuk mencapai pengimbangan beban berbilang pelayan Cara menggunakan Pengurus Proksi Nginx untuk mencapai pengimbangan beban berbilang pelayan Sep 27, 2023 pm 09:42 PM

Cara menggunakan NginxProxyManager untuk mencapai pengimbangan beban berbilang pelayan NginxProxyManager ialah alat pengurusan pelayan proksi yang dibangunkan berdasarkan Nginx Ia menyediakan antara muka Web yang mudah dan mudah digunakan yang boleh mengkonfigurasi dan mengurus pelayan proksi Nginx. Dalam aplikasi praktikal, kami selalunya perlu mengedarkan permintaan kepada berbilang pelayan untuk mencapai pengimbangan beban dan meningkatkan prestasi dan ketersediaan sistem. Artikel ini akan memperkenalkan cara menggunakan NginxProx

Tutorial Pengurus Proksi Nginx: Panduan Permulaan Pantas Tutorial Pengurus Proksi Nginx: Panduan Permulaan Pantas Sep 27, 2023 pm 05:39 PM

Tutorial NginxProxyManager: Panduan Mula Pantas, Contoh Kod Khusus Diperlukan Pengenalan: Dengan perkembangan teknologi rangkaian, pelayan proksi telah menjadi sebahagian daripada penggunaan Internet harian kami. NginxProxyManager ialah platform pengurusan pelayan proksi berdasarkan Nginx, yang boleh membantu kami mewujudkan dan mengurus pelayan proksi dengan cepat. Artikel ini akan memperkenalkan anda kepada panduan permulaan pantas NginxProxyManager, serta beberapa contoh kod khusus. satu

8.4 Tablet kecil dilancarkan bermula pada 1099 8.4 Tablet kecil dilancarkan bermula pada 1099 Sep 01, 2024 pm 04:04 PM

Sound |. Xiaobai Meizu sebelum ini telah bekerjasama dengan Polestar untuk mencipta telefon mudah alih Polestar "Polestar Phone". membangunkan perniagaan bekerjasama dengan syarikat kereta untuk mengeluarkan telefon bimbit Menurut berita terkini, nampaknya Meizu juga akan telefon mudah alih OEM untuk Hongqi. Seperti yang anda lihat dalam gambar di atas, Meizu baru-baru ini telah melancarkan model telefon 5G baharu M481R di Internet @Perfectly arranged digital mengumumkan berita itu dan memanggil model itu sebagai telefon Hongqi "Nampaknya ia adalah matryoshka Meizu 21Pro." Sebagai tambahan, pada Persidangan Teknologi FAW China yang kelima pada April tahun ini, China FAW dan Yikatong Technology menandatangani perjanjian kerjasama strategik mengenai kokpit pintar Kedua-dua pihak akan melancarkan kerjasama strategik yang komprehensif dalam bidang kokpit pintar dan bersama-sama mewujudkan yang tinggi berdaya saing

DIY daripada mula berputus asa: kad rangkaian wayarles menjimatkan papan induk lama DIY daripada mula berputus asa: kad rangkaian wayarles menjimatkan papan induk lama Mar 14, 2024 pm 04:40 PM

Banyak papan induk datang dengan modul WiFi terbina dalam, tetapi bagi kebanyakan pemain, 200 yuan tambahan tidak menjimatkan kos Selain itu, sesetengah papan induk lama tidak mempunyai WiFi Jika anda ingin menikmati akses Internet wayarles yang mudah, anda perlu menggunakan satu. Kad rangkaian wayarles sangat mudah digunakan, tetapi anda juga harus ambil perhatian bahawa tidak semua produk sesuai untuk anda. Di bawah ini kami akan memperkenalkan 3 kad rangkaian wayarles yang berbeza. 1. "Portable Peter Pan" - Kad rangkaian wayarles USB Perkara pertama yang perlu ditanggung ialah "wira kecil" di sekeliling kita, kad rangkaian wayarles USB. Peranti ringan dan mini ini seperti kunci ajaib Hanya pasangkannya dan sambungkannya ke port USB komputer anda untuk mengaktifkan perjalanan rangkaian wayarles anda dengan serta-merta. Kad rangkaian wayarles USB digunakan secara meluas untuk harga yang berpatutan dan kemudahan utamanya.

Kuasai konsep utama Spring MVC: Fahami ciri penting ini Kuasai konsep utama Spring MVC: Fahami ciri penting ini Dec 29, 2023 am 09:14 AM

Fahami ciri utama SpringMVC: Untuk menguasai konsep penting ini, contoh kod khusus diperlukan SpringMVC ialah rangka kerja pembangunan aplikasi web berasaskan Java yang membantu pembangun membina struktur yang fleksibel dan berskala melalui corak seni bina Model-View-Controller (MVC). aplikasi web. Memahami dan menguasai ciri utama SpringMVC akan membolehkan kami membangun dan mengurus aplikasi web kami dengan lebih cekap. Artikel ini akan memperkenalkan beberapa konsep penting SpringMVC

Komputer riba ultra-mudah alih Pocket386 dikeluarkan secara senyap-senyap dengan keserasian Win95 dan pemproses yang tidak biasa Komputer riba ultra-mudah alih Pocket386 dikeluarkan secara senyap-senyap dengan keserasian Win95 dan pemproses yang tidak biasa Jun 24, 2024 am 06:46 AM

Spesifikasi utama komputer riba baharu itu berkemungkinan mengingatkan beberapa zaman persekolahan mereka. Ia mempunyai memori 8 MB dan paparan IPS 7-inci yang menyokong mod 640 x 480 (4:3) dan 800 x 480; banyak port retro dan pemproses Ali M6117 yang serasi 386 SX berjalan

Analisis dan Perlindungan Keselamatan Pengurus Proksi Nginx Analisis dan Perlindungan Keselamatan Pengurus Proksi Nginx Sep 28, 2023 pm 01:30 PM

Analisis dan Perlindungan Keselamatan NginxProxyManager Pengenalan: Dalam aplikasi Internet, keselamatan sentiasa menjadi isu penting. Sebagai proksi terbalik yang berkuasa dan perisian pelayan pengimbangan beban, Nginx memainkan peranan penting dalam memastikan keselamatan aplikasi rangkaian. Walau bagaimanapun, dengan pembangunan berterusan teknologi Internet dan peningkatan jumlah serangan rangkaian, cara memastikan keselamatan NginxProxyManager telah menjadi masalah mendesak untuk diselesaikan. Artikel ini akan bermula dari NginxProxyMana

See all articles