saltstack自动化2

本文详细介绍了如何使用SaltStack自动化配置Apache和Keepalived,实现负载均衡和高可用性。首先,通过编写Salt状态文件和 Pillar 数据来配置Apache,然后自动化安装和配置Keepalived,确保服务的故障切换。接着,讨论了Salt的Job缓存机制,包括返回结果的存储和跨主机传输。最后,提到了Salt-Syndic的设置,以扩展SaltMaster的管理范围。整个过程强调了自动化运维在提升效率和稳定性方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、另类的更改自动化apache

cd /srv/salt/apache
编写一个文件
vim lib.sls
(% set http_port = 80 %)
然后更改配置文件,在顶层写
vim httpd.conf
{% from 'apache/lib.sls' import port %}
salt server2 state.sls apache
salt server2 pillar.items

在这里插入图片描述

二、自动化keepalived

cd ..
mkdir keepalived
cd keepalived/
vim 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            

在这里插入图片描述

然后在通过
vim keepalived.conf(从2里面来的)

! 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.32.100
    }
}

在这里插入图片描述

salt server2 state.sls keepalived

cd …
cd pillar/

cp pkgs.sls kp.sls

vim kp.sls

{% if grains['fqdn'] == 'server2' %}
state: MASTER
vrid: 32
pri: 100
{% elif grains['fqdn'] == 'server3' %}
state: BACKUP
vrid: 32
pri: 50
{% endif %}

在这里插入图片描述

vim top.sls
base:
  '*':
    - pkgs
    - kp

在这里插入图片描述

然后更改

cd apache/
vim init.sls
      http_port: {{ pillar['port'] }}
      http_host: 172.25.32.100
cd ..
vim top.sls

base:
  'roles:apache':
    - match: grain
    - apache
    - keepalived
  'roles:nginx':
    - match: grain
    - nginx.service
    - keepalived


salt '*' state.sls keepalived

salt '*' state.highstate

就能直接使用keepalived了

可以在真机里面

curl 172.25.32.100

如果能通就算完成

三、job缓存

1、从2中return到1

在2中修改

cd /etc/salt 
vim minio
return: mysql
mysql.host: '172.25.32.1'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

然后在1中下载数据库

yum install -y mariadb-server

systemctl start mariadb.service

mysql_secure_installation #安全数据库

然后建立数据库

test.sql从老师电脑里面拿

mysql -pwestos < test.sql

grant all on salt.* to salt@’%’ identified by ‘salt’;

给权限

然后再回2中
systemctl restart salt-minion
yum install -y MySQL-python

然后回到1中

salt server2 test.ping --return mysaql

salt server2 my_disk.df --return mysql

然后在进入
salt的数据库

select * from salt——returns;

就算完成

2、从2中return的1中传输到3

第二种传输给3

在1中

cd /etc/salt
vim master

master_job_cache: mysql
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

然后在把2中的注销掉

然后在数据库给权限

grant all on salt.* to salt@localhost identified by ‘salt’;

yum install -y MySQL-python
然后重启master
就可以了

salt ‘*’ test.ping

然后可以在数据库里面查看

在这里插入图片描述

四、salt-syndic

yum install -y salt-syndic
cd /etc/salt/
vim master
syndic_master: 172.25.32.4

把4设置为1的syndic_master

然后在4里面

设置

cd /etc/salt/
vim master

order_masters: True

systemctl start salt-master.service
salt-key -L
salt-key -A
salt '*' state.sls keepalived
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值