配置管理实例-keepalived 的部署与业务应用

一、keepalived 部署

1.编写 sls 方法文件
1.1 keepalived 部署 sls 文件
[root@master ~]# cat /srv/salt/prod/keepalived/install.sls 
include:
  - pkg.pkg-init


keepalived-install:
  file.managed:
    - name: /opt/keepalived-1.2.19.tar.gz
    - source: salt://keepalived/files/keepalived-1.2.19.tar.gz
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /opt && tar zxvf keepalived-1.2.19.tar.gz && cd  keepalived-1.2.19 && ./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install
    - unless: test -d /usr/local/keepalived
    - require:
      - pkg: pkg-init
      - file: keepalived-install

keepalived-init:
  file.managed:
    - name: /etc/init.d/keepalived
    - source: salt://keepalived/files/keepalived.init
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: chkconfig --add keepalived
    - unless: chkconfig --list | grep keepalived
    - require:
      - file: keepalived-init

/etc/sysconfig/keepalived:
  file.managed: 
    - source: salt://keepalived/files/keepalived.sysconfig
    - user: root
    - group: root
    - mode: 644


/etc/keepalived:
  file.directory:
    - user: root
    - group: root
    - mode: 755
2. 配置文件修改
## 修改启动脚本文件keepalived.init中的keepalived安装路径
daemon /usr/local/keepalived/sbin/keepalived
3. 安装文件测试
[root@master ~]# salt '192.168.1.102' state.sls keepalived.install env=prod test=True

二、keepalived 的业务引用

1.业务引用 sls 方法文件
[root@master ~]# cat /srv/salt/prod/cluster/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['id'] == '192.168.1.102' %}
    - ROUTERID: haproxy_ha
    - STATEID: MASTER
    - PRIORITYID: 150
    {% elif grains['id'] == '192.168.1.103' %}
    - ROUTERID: haproxy_ha
    - STATEID: BACKUP
    - PRIORITYID: 100
    {% endif %}
  service.running:
    - name: keepalived
    - enable: True
    - watch:
      - file: keepalived-service
2. keepalived 集群配置文件模板
[root@master ~]# cat /srv/salt/prod/cluster/files/haproxy-outside-keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state [[STATEID]]
    interface eth1
    virtual_router_id 51
    priority [[PRIORITYID]]
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.115
    }
}
3.测试
[root@master ~]# salt '192.168.1.102' state.sls cluster.haproxy-outside-keepalived env=prod test=True

三、top.sls 文件修改

[root@master ~]# cat /srv/salt/base/top.sls 
base:
  '*':
    - init.env_init

prod:
  '192.168.1.102':
    - cluster.haproxy-outside
    - cluster.haproxy-outside-keepalived
  '192.168.1.103':
    - cluster.haproxy-outside
    - cluster.haproxy-outside-keepalived

[root@master ~]# salt '*' state.highstate test=True

results matching ""

    No results matching ""