基於SaltStack完成LVS的配置管理

2021-09-03 10:13:46 字數 3028 閱讀 1405

2013-11-24 by pengyao

原文之前由於工作需求,編寫了saltstack的 lvs遠端執行模組 , lvs service狀態管理模組 及 lvs server狀態管理模組 ,並提交給了saltstack官方,現已合併至官方**中,本文將描述如何基於saltstack完成lvs loadblance(dr)及realserver的配置管理.

note

以下所有操作均在master上進行

salt 'lvs' cmd.run "python -c 'import salt.modules.lvs'"

如果輸出有 importerror 字樣,則表示模組沒有安裝,需要進行如下操作:

test -d /srv/salt/_modules || mkdir /srv/salt/_modules

test -d /srv/salt/_states || mkdir /srv/salt/_states

wget -o /srv/salt/_modules/lvs.py

wget -o /srv/salt/_states/lvs_service.py

wget -o /srv/salt/_states/lvs_server.py

/srv/pillar/lvs/loadblance.sls

lvs-loadblance:

- name: lvstest

vip: 192.168.36.33

vip-nic: eth1

port: 80

protocol: tcp

scheduler: wlc

realservers:

- name: web-01

ip: 192.168.36.11

port: 80

packet_forward_method: dr

weight: 10

- name: web-02

ip: 192.168.36.12

port: 80

packet_forward_method: dr

weight: 30

/srv/pillar/lvs/realserver.sls

lvs-realserver:

- name: lvstest

vip: 192.168.36.33

\/srv/pillar/top.sls

base:

'lvs':

- lvs.loadblance

'web-0*':

- lvs.realserver

/srv/salt/lvs/loadblance.sls

# config lvs

# config lvs vip

}-vip:

network.managed:

- name: }

- enable: true

- type: eth

- proto: none

- ipaddr: }

- netmask: 255.255.255.255

}-service:

lvs_service.present:

- protocol: }

- service_address: `service_address`

- scheduler: }

}-server:

lvs_server.present:

- protocol: }

- service_address: `service_address`

- server_address: `server_address`

- packet_forward_method: }

- weight: }

srv/salt/lvs/realserver.sls

# ignore arp

net.ipv4.conf.all.arp_ignore:

sysctl.present:

- value: 1

net.ipv4.conf.lo.arp_ignore:

sysctl.present:

- value: 1

net.ipv4.conf.all.arp_announce:

sysctl.present:

- value: 2

net.ipv4.conf.lo.arp_announce:

sysctl.present:

- value: 2

# config lvs vip

lvs-vip:

network.managed:

- name: }

- enable: true

- type: eth

- proto: none

- ipaddr: }

- netmask: 255.255.255.255

/srv/salt/top.sls*

base:

'lvs':

- lvs.loadblance

'web-0*':

- lvs.realserver

應用配置

如果之前進行 配置lvs模組 的操作,需要進行同步模組的操作:

salt 'lvs*' saltutil.sync_all

應用lvs配置:

salt '*' state.highstate

檢視lvs當前狀態:

salt 'lvs' lvs.list

通過saltstack lvs模組,可以快速的查詢lvs狀態,執行lvs常用指令及完成lvs的配置管理。如有需要調整realserver規則或新增新的realserver, 只需要修改 /srv/pillar/lvs/loadblance.sls ,然後應用配置即可.

本文中所用到的**已經上傳至github,傳送門:

基於python完成XAXB

import random size 5 maximum 39 b award 0 print 5 39 lottery n step1 user enter s1 請輸入 個號碼 format size temp input s1 a list map int,temp.split step3 c...

LVM的原理與程式設計設定和基於lv的快照卷

lvm logic volume manager 邏輯卷管理 當乙個檔案非常大時,普通磁碟分割槽不夠用時,不能自由的在另乙個磁碟寫入檔案。因此這裡引入邏輯卷,可以自由的增加磁碟分割槽,首先分成lv分為三個層次。下面說這三個層次。最底層是pv physical volume 物理卷 命令pvcreat...

基於 JMeter 完成 Dubbo 介面的測試

開班通知 測試開發實戰高階 第 17 期即將開班,文末 免費試聽!jmeter 預設是不支援 dubbo 介面測試的,但是我們可以通過拓展的外掛程式或 jar 包實現此功能。由於我的 jmeter 是使用 mac 的 homebrew 安裝的,所以我的路徑為 usr local cellar jme...