运维笔记43 使用saltstack配置完整线上服务(haproxy+keepalived,nginx+php+memcache,mysql主从)

概述:

之前我们所介绍过了很多实用的服务,有负载均衡类的,web服务类的,数据库类的等等,这些服务有的配置容易,有的配置困难,那我们现在设想一下在生成环境中,有上百台,甚至上千台服务器的情况下,难道要我们去挨个去配置每一台服务器吗,这是无法想象的,所以有了saltstack这类自动化运维工具的出现,帮助我们高效快速的部署服务。

线上服务拓扑

这里写图片描述
这次的拓扑基本上已经可以胜任一个相当活跃的服务的后端架构了,但是我们一般没有这么多机器,就算是用虚拟机资源也很有可能不够,为了能在一台机器上完成此架构,我们决定做如下分配。
haprxoy1:
cpu:1
ram:512MB
硬盘:20GB
运行服务:haproxy+keepalived+salt_master
ip:172.25.3.101
haproxy2:
cpu:1
ram:512MB
硬盘:20GB
运行服务:haproxy+keepalived+salt_minion
ip:172.25.3.102
lnmp1:
cpu:1
ram:1024MB
硬盘:20GB
运行服务:nginx+php_fpm+memchached+mysql_master+salt_minion
ip:172.25.3.103
lnmp2:
cpu1:
ram:1024MB
硬盘:20GB
运行服务:nginx+php_fpm+memcached+mysql_slave+salt_minion
ip:172.25.3.104

一.saltstack配置

我们先简要讲解下salt的安装配置与使用,这部分涉及的机器与上面拓扑图中的无关
salt1.mo.com : 172.25.3.100
salt2.mo.com:172.25.3.101
1.配置host文件
/etc/hosts

172.25.3.100 salt1.mo.com
172.25.3.101 salt2.mo.com

修改hostname
salt1:

[root@salt1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=salt1.mo.com

salt2:

[root@salt2 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=salt2.mo.com

2.安装
salt1相当于salt的服务端,我们需要安装salt-master与salt-minion,而salt2相当于salt客户端,在之后的集群部署中,一般salt服务端只有一个,但是客户端可以有很多,服务端与客户端通信,从完成相关配置文件,软件包的配置与部署。
由于我们的机器不能与外网连接,所以我将saltstack需要的rpm包全下载了下来制作成一个yum源在172.25.3.250这台机器上。所以我们需要部署salt的机器上的yum的配置如下。

[salt]
name=saltstack_soft
baseurl=ftp://172.25.3.250/pub/saltstack/saltstack/rhel6
enabled=1
gpgcheck=0

开始安装
salt1:

[root@salt1 ~]# yum install -y salt-master salt-minion

slat2:

[root@salt2 ~]# yum install -y salt-minion

3.配置
salt的配置也十分简单,master不用动,只需修改minion,使其知道自己的msater是谁即可。

vim /etc/salt/minion

master: 172.25.3.100

4.启动服务
salt1:

[root@salt1 ~]# /etc/init.d/salt-master status
salt-master (pid  1022) is running...
[root@salt1 ~]# /etc/init.d/salt-minion status
salt-minion:root:salt1.mo.com is running: 2332

salt2:

[root@salt2 ~]# /etc/init.d/salt-minion status
salt-minion:root:salt2.mo.com is running: 1355

5.配置认证
1).服务端与客户端认证连接

[root@salt1 ~]# salt-key 
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Rejected Keys:

直接输入salt-key查看现在key的情况,只有出现在Accepted Keys中的才是允许的客户端。
现在我们将自己salt1与salt2添加进去。

[root@salt1 master]# salt-key -a salt1.mo.com
The following keys are going to be accepted:
Unaccepted Keys:
salt1.mo.com
Proceed? [n/Y] y           
Key for minion salt1.mo.com accepted.

[root@salt1 master]# salt-key -a salt2.mo.com
The following keys are going to be accepted:
Unaccepted Keys:
salt2.mo.com
Proceed? [n/Y] y
Key for minion salt2.mo.com accepted.

当出现如下报错时:

The key glob 'salt2.mo.com' does not match any unaccepted keys.

可能是你之前接收过该节点,却又删除了,请重启相应节点的salt-minion即可。
现在再查看一遍,key的接收情况

[root@salt1 master]# salt-key 
Accepted Keys:
salt1.mo.com
salt2.mo.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:

说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all。可以使用 salt-key 命令查看到已经签名的客户端。此时我们在客户端的 /etc/salt/pki/minion 目录下面会多出一个minion_master.pub 文件。

2)测试通讯是否正常

[root@salt1 master]# salt '*' test.ping
salt1.mo.com:
    True
salt2.mo.com:
    True

如上显示,证明通讯正常
3)远程执行命令测试

[root@salt1 master]# salt '*' cmd.run 'ip addr show'
salt2.mo.com:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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:f0:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值