1)把在這個目錄,編寫配置文件
[admin@master files]$ pwd
/srv/salt/prod/cluster/files
~~~
[admin@master files]$ sudo vim haproxy_outside_keepalived.conf
global_defs {
notification_email {
test@163.com
}
notification_email_from keepalived@example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
route_id {{ROUTERID}}
}
vrrp_instance haproxy_ha {
state {{STATEID}}
interface eth0
virtual_router_id 36
priority {{PRIORITYID}}
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.2.11.170
}
}
~
~~~
2)編寫sls
~~~
[admin@master cluster]$ cat haproxy-outside-keepalived.sls
include:
- keepalived.install
keepalived-service:
file.managed:
- name: /etc/keepalived/keepalived.conf
- source: salt://cluster/files/haproxy_outside_keepalived.conf
- user: root
- group: root
- mode: 644
- template: jinja
{% if grains['fqdn'] == 'proxy01.test.com' %}
- ROUTERID: haproxy_ha
- STATEID: MASTER
- PRIORITYID: 120
{% elif grains['fqdn'] == 'proxy02.test.com' %}
- ROUTERID: haproxy_ha
- STATEID: BACKUP
- PRIORITYID: 100
{% endif %}
service.running:
- name: keepalived
- enable: True
- watch:
- file: keepalived-service
~~~
3)編寫top.sls文件
~~~
[admin@master base]$ sudo vim top.sls
base:
"*":
- init.env_init
prod:
"proxy01.test.com":
- cluster.haproxy-outside
- cluster.haproxy-outside-keepalived
"proxy02.test.com":
- cluster.haproxy-outside
- cluster.haproxy-outside-keepalived
~~~
4)執行狀態
[admin@master base]$ sudo salt 'proxy*' state.highstate
Summary
-------------
Succeeded: 48 (changed=7)
Failed: 0
-------------
Total states run: 48
5)查看
[admin@proxy01 ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:e7:11:63 brd ff:ff:ff:ff:ff:ff
inet 10.2.11.207/24 brd 10.2.11.255 scope global eth0
inet 10.2.11.170/32 scope global eth0
inet6 fe80::5054:ff:fee7:1163/64 scope link
valid_lft forever preferred_lft forever
然后我們測試把proxy01的keepalived停掉
[admin@proxy01 ~]$ sudo service keepalived stop
Stopping keepalived: [ OK ]
在查看
[admin@proxy02 ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:4f:3a:45 brd ff:ff:ff:ff:ff:ff
inet 10.2.11.206/24 brd 10.2.11.255 scope global eth0
inet 10.2.11.170/32 scope global eth0
inet6 fe80::5054:ff:fe4f:3a45/64 scope link
valid_lft forever preferred_lft forever
- 第一章: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模塊管理