企业运维实战--自动化运维Saltstack(下)之 saltstack配置keepalived、salt-job、salt-syndic、salt-api
接续:企业运维实战–自动化运维Saltstack(上)之saltstack的安装部署、远程执行、grains和pillar详解以及Jinja模板的使用
一、saltstack配置keepalived + apache
附加调用值方式:可添加到lib.sls 设定,
apache目录文件:
cat lib.sls
{
% set http_port=8080 %}
cat init.sls
apache:
pkg.installed:
- pkgs:
- {
{
pillar['package']}}
service.running:
- name: httpd
- enable: true
- reload: true
- watch:
- file: /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://apache/httpd.conf
- template: jinja
- context:
http_port: {
{
pillar['port']}}
# http_host: {
{ grains['ipv4'][-1]}}
cat httpd.conf
#{% from 'apache/lib.sls' import http_port %}
Listen {
{
http_port}}
pillar配置
cd pillar/
cat kp.sls
{
% if grains['fqdn'] == 'server3' %}
state: MASTER
vrid: 4
pri: 100
{
% elif grains['fqdn'] == 'server2' %}
state: BACKUP
vrid: 4
pri: 50
{
% endif %}
将pillar中新写的kp.sls 添加到top中
cat top.sls
base:
'*':
- pkgs
- kp
编写keepalived的saltstack配置,安装服务,修改配置文件,声明文件配置中调用pillar的值,启动keepalived服务
cd salt/keepalived
cat init.sls
kp-install:
pkg.installed:
- name: keepalived
file.managed:
- name: /etc/keepalived/keepalived.conf
- source: salt://keepalived/keepalived.conf
- template: jinja
- context:
STATE: {
{
pillar['state'] }}
VRID: {
{
pillar['vrid'] }}
PRI: {
{
pillar['pri'] }}
service.running:
- name: keepalived
- reload: true
- watch:
- file: kp-install
修改keepalived配置文件,调用生命的变量
cat keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state {
{
STATE }}
interface eth0
virtual_router_id {
{
VRID }}
priority {
{
PRI }}
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.4.100
}
}
将keepalived加到top中,为了不同角色执行不同的自动化部署
cd salt
cat top.sls
base:
'roles:apache':
- match: grain
- apache
- keepalived
'roles:nginx':
- match: grain
- apache
- keepalived
salt '*' saltutil.sync_grains # 同步本机服务到minion服务
salt server? grains.item roles # 查看所有roles
salt '*' state.highstate # 执行highstate调用top.sls
salt ‘*’ state.highstate 执行后结果
查看server2的keepalived配置文件
查看到server3的虚拟ip已经部署成功
访问 172.25.4.100:8080端口,访问成功,keepalived配置成功
二、job缓存salt操作到mysql
Job简介:
master在下发指令任务时,会附带