基本介紹:Haproxy是一個開源的高性能的反向代理,支持四層和七層的負載均衡,以及多種負載均衡,健康檢查等 (下面以centos6.8為例)
第一步:創建目錄
[admin@master pkg]$ sudo mkdir /srv/salt/prod/haproxy ---(存放sls)
[admin@master pkg]$ sudo mkdir /srv/salt/prod/haproxy/files--(存放haproxy源碼包)
第二步:
下載源碼包:(haproxy-1.8.3為例)
[admin@master files]$ sudo wget http://soft.51yuki.cn/haproxy-1.8.3.tar.gz
第三步:編寫狀態
1、在編寫狀態之前,一般找一臺機器先手工安裝軟件,然后把安裝命令記錄下來
[admin@proxy02 ~]$ cd /usr/local/src
[admin@proxy02 src]$ sudo tar xf haproxy-1.8.3.tar.gz
[admin@proxy02 ~]$ cd /usr/local/src/haproxy-1.8.3
[admin@proxy02 haproxy-1.8.3]$ sudo make TARGET=linux26 PREFIX=/usr/local/haproxy && make install prefix=/usr/local/haproxy
編寫默認的啟動腳本
[admin@proxy02 examples]$ sudo vim haproxy.init
BIN=/usr/local/haproxy/sbin/$BASENAME
然后把軟件和啟動腳本拷貝到相關目錄,如下圖
[admin@master haproxy]$ tree
.
├── files
│?? ├── haproxy-1.8.3.tar.gz
│?? └── haproxy.init
└── install_haproxy.sls
[admin@master prod]$ tree
.
├── haproxy
│?? ├── files
│?? │?? ├── haproxy-1.8.3.tar.gz
│?? │?? └── haproxy.init
│?? └── install_haproxy.sls
└── pkg
└── pkg-init.sls
2、編寫haproxy的安裝腳本
~~~
include:
- pkg.pkg-init (通過include命令把pkg目錄下的pkg-init引入過來)
haproxy-install: (ID:安裝haproxy)
file.managed: (文件管理模塊,把haproxy文件拷貝過去)
- name: /usr/local/src/haproxy-1.8.3.tar.gz
- source: salt://haproxy/files/haproxy-1.8.3.tar.gz
- user: root
- group: root
- mode: 755
cmd.run: (開始安裝haproxy)
- name: cd /usr/local/src && sudo tar xf haproxy-1.8.3.tar.gz && cd haproxy-1.8.3 && sudo make TARGET=linux26 PREFIX=/usr/local/haproxy && sudo make install prefix=/usr/local/haproxy
- unless: test -d /usr/local/haproxy (unless通過test命令來測試,如果/usr/local/haproxy目錄存在,則就不執行上面的cmd命令來安裝haproxy)
- require: (require: 表示依賴,當pkg-init下的pkg模塊,haproxy-install下的file模塊,這兩個執行成功后,在執行安裝haproxy,否則就不執行)
- pkg: pkg-init
- file: haproxy-install
haproxy-config-dir: (創建一個存放haproxy配置文件的目錄)
file.directory:
- name: /etc/haproxy
- user: root
- group: root
- mode: 755
haproxy-init: (配置haproxy啟動服務)
file.managed: (通過file模塊,管理haproxy腳本)
- name: /etc/init.d/haproxy
- source: salt://haproxy/files/haproxy.init
- user: root
- group: 755
- require:
- cmd: haproxy-install
cmd.run:
- name: chkconfig --add haproxy
- unless: chkconfig --list|grep haproxy
- require:
- file: haproxy-service
net.ipv4.ip_nonlocal_bind:
sysctl.present:
- value: 1
~~~
3、先手工安裝一遍
先測試一遍,添加test="true",看看sls文件有沒有寫錯
[admin@master haproxy]$ sudo salt 'proxy01*' state.sls haproxy.install_ha env=prod test="true"
Summary
-------------
Succeeded: 17 (changed=6) ----表示沒有錯誤
Failed: 0
-------------
Total states run: 17
安裝就運行
sudo salt 'proxy01*' state.sls haproxy.install_ha env=prod (執行安裝)
- 第一章:saltstack的基本介紹
- 第二章:saltstack的安裝部署
- 第一節:在centos7系統上安裝saltstack工具
- 第二節:在windows server 2008上安裝salt-minion
- 第三章: saltstack的配置管理
- 第一節:salt-master配置
- 第二節:salt-minion配置
- 第三節:了解YAML
- 第四節:salt-master配置文件詳解
- 第五節:了解Jinja2
- 第六節:配置普通用戶可以運行saltstack的模塊
- 第四章:遠程執行
- 第一節:遠程執行基礎介紹
- 第二節:目標定位
- 一、全局及正則表達式匹配
- 二、列表匹配
- 三、Grains
- 四: Pillar
- 五:subnet and ip
- 六:組合匹配
- 七: node group
- 第三節:常用模塊
- 一、查看幫助
- 二、Network模塊
- 三、Service模塊
- 四:State模塊
- 五、Cron模塊
- 六、File模塊
- 七、iptables模塊
- 八、pkg包管理
- 第四節:Salt其他命令
- 一、salt-cp(拷貝文件)
- 二、salt-ssh
- 三、salt-key
- 第五節:saltstack返回程序
- 第一節:返回保持到數據庫(mysql)
- 第五章:配置管理
- 第一節:簡單入門
- 第二節:狀態間關系
- 第六章:數據系統
- 第一節:grains
- 第二節:pillar
- 第七章:saltstack配置管理
- 第一節:系統初始化操作
- 第二節:功能模塊
- 一、haproxy模塊
- 二、keepalived模塊
- 三、nginx模塊
- 四: pcre模塊
- 五: zlib模塊
- 六:user模塊
- 七:php模塊
- 第三節:業務模塊
- 第一節:haproxy代理
- 第二節:keepalived業務
- 第八章:自動化管理工具saltstack
- 第一節:文件管理
- 第二節:軟件管理
- 第三節:服務管理
- 第四節:sysctl模塊管理