Saltstack_实战指南01_系统规划

 

1. 实战项目GitHub地址

以前《Saltstack_使用指南》详细讲解了saltstack的使用。那么从这节开始实战讲解,固然不会再像以前那样详细说明了。只是讲一些系统规划之类的信息。python

                                                                                                                                                                                

具体的项目代码请参见GitHub。linux

该项目已经放在了GitHub上,地址以下:git

https://github.com/zhanglianghhh/salt-example-lnmp

 

2. 主机规划

说明:github

上述的salt03-web、salt04-web、salt05-web、salt150-master没有内网地址。但若是为了方便省事儿,你也能够给这些机器添加外网地址,这样就不须要网关服务器,直接就能够访问公网了。web

 

2.1. 内网机器经过网关服务器访问公网

实现salt03-web、salt04-web、salt05-web、salt150-master经过网关服务器GateWay00,达到访问公网的目的。数据库

前提保证上述全部机器内网都是同一网段,相互之间能够正常通讯。vim

 

参见博文:《VMware 实现 iptables NAT及端口映射服务器

 

网关机器开启linux的转发功能架构

1 [root@gateway01 ~]# tail /etc/sysctl.conf   # 添加以下内容
2 …………
3 net.ipv4.ip_forward = 1
4 [root@gateway01 ~]# sysctl -p   # 生效

 

网关机器iptables操做app

 1 # 将FORWARD链的策略设置为DROP,这样作的目的是作到对内网ip的控制,你容许哪个访问internet就能够增长一个规则,不在规则中的ip将没法访问internet。
 2 iptables -P FORWARD DROP
 3 # 这条规则规定容许任何地址到任何地址的确认包和关联包经过。必定要加这一条,不然你只容许lan IP访问没有用。
 4 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
 5 # 这条规则作了一个SNAT,也就是源地址转换,未来自172.16.1.0/24的地址转换为10.0.0.15 6 iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to 10.0.0.15
 7 # 容许该网段访问
 8 iptables -A FORWARD -s 172.16.1.0/24 -j ACCEPT
 9 # 保存iptables规则
10 iptables-save > /etc/sysconfig/iptables

 

最终iptables信息

 1 [root@GateWay00 ~]# iptables -nL  
 2 Chain INPUT (policy ACCEPT)
 3 target     prot opt source               destination         
 4 
 5 Chain FORWARD (policy DROP)
 6 target     prot opt source               destination         
 7 ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
 8 ACCEPT     all  --  172.16.1.0/24        0.0.0.0/0           
 9 
10 Chain OUTPUT (policy ACCEPT)
11 target     prot opt source               destination         
12 [root@GateWay00 ~]# 
13 [root@GateWay00 ~]# iptables -t nat -nL  
14 Chain PREROUTING (policy ACCEPT)
15 target     prot opt source               destination         
16 
17 Chain INPUT (policy ACCEPT)
18 target     prot opt source               destination         
19 
20 Chain OUTPUT (policy ACCEPT)
21 target     prot opt source               destination         
22 
23 Chain POSTROUTING (policy ACCEPT)
24 target     prot opt source               destination         
25 SNAT       all  --  172.16.1.0/24        0.0.0.0/0            to:10.0.0.15

 

3. 系统架构

 

3.1. 重要说明

生产实践环境中:数据库监控单独一套,作到告警去重。

缘由:其余告警多是由于数据库有问题形成的。

 

多数状况数据库是单独部署,能够不用 salt 进行部署 【若是量大,那么能够在第一次进行初始化部署】

本次实战为了完整性,对数据库采起了 salt 方式部署。

 

3.2. 涉及机器hosts文件修改

salt150-master、salt01-haproxy、salt02-haproxy、salt03-web、salt04-web、salt05-web 机器的hosts文件都追加以下信息。

这样主机名相互之间能够解析。

 1 [root@salt100 ~]# cat /etc/hosts
 2 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 3 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 4 
 5 172.16.1.111    salt01-haproxy
 6 172.16.1.112    salt02-haproxy
 7 172.16.1.113    salt03-web
 8 172.16.1.114    salt04-web
 9 172.16.1.115    salt05-web
10 172.16.1.150    salt150-master

说明:生产优先采用hostname通讯,这样后期维护、迁移方便。

 

4. 全部主机建立yun用户

后期全部的软件都安装在 /app/ 目录下。

1 # 使用一个专门的用户,避免直接使用root用户
2 # 添加用户、指定家目录、用户id并指定用户密码
3 # sudo提权
4 # 让其它普通用户能够进入该目录查看信息
5 useradd -u 1050 -d /app yun && echo '123456' | /usr/bin/passwd --stdin yun
6 echo "yun  ALL=(ALL)       NOPASSWD: ALL" >>  /etc/sudoers
7 chmod 755 /app/

 

5. 在本地Windows 机器的hosts 文件追加信息

做用:模拟经过 DNS 解析访问网站。

 1 # 文件路径:C:\Windows\System32\drivers\etc\hosts
 2 # 追加信息以下
 3 # SaltStack 实战  其中salt00-keepalived为VIP
 4 10.0.0.110      salt00-keepalived
 5 172.16.1.111    salt01-haproxy
 6 172.16.1.112    salt02-haproxy
 7 172.16.1.113    salt03-web
 8 172.16.1.114    salt04-web
 9 172.16.1.115    salt05-web
10 172.16.1.150    salt150-master

 

6. salt 部署注意事项

具体部署步骤请参见:《Saltstack_使用指南01_部署

 

6.1. master 端配置文件修改并重启

 1 [root@salt150-master ~]# vim /etc/salt/master 
 2 ………………
 3 # Allow minions to push files to the master. This is disabled by default, for
 4 # security purposes.
 5 #file_recv: False
 6 # 容许minion向master推送文件,默认不容许
 7 file_recv: True
 8 ………………
 9 #file_roots:
10 #  base:
11 #    - /srv/salt
12 # 添加以下配置
13 file_roots:
14   base:
15     - /srv/salt/base
16   prod:
17     - /srv/salt/prod
18   busi:
19     - /srv/salt/busi
20 [root@salt150-master ~]# systemctl restart salt-master.service  # 重启 master 服务

 

6.2. minion端配置文件修改并重启

全部机器都操做

 1 [root@salt150-master salt]# pwd
 2 /etc/salt
 3 [root@salt150-master salt]# vim /etc/salt/minion 
 4 ………………
 5 # 能够是IP或者hostname
 6 # 若是是hostname那么必须可以解析【最佳实践配置为 主机名】
 7 master: salt150-master
 8 ………………
 9 # Explicitly declare the id for this minion to use, if left commented the id
10 # will be the hostname as returned by the python call: socket.getfqdn()
11 # Since salt uses detached ids it is possible to run multiple minions on the
12 # same machine but with different ids, this can be useful for salt compute
13 # clusters.
14 # 若是id不配置,那么默认为hostname
15 # 若是下次要更改该配置,那么要把 /etc/salt/minion_id 也给删除掉,并重启客户端【会生成一个新的minion_id】
16 #id:
17 [root@salt150-master ~]# systemctl restart salt-minion.service  # 重启服务

 

6.3. salt 安装完毕后记得加入开机自启动

1 # 服务端开机自启动
2 systemctl enable salt-master.service    
3 # minion端开机自启动
4 systemctl enable salt-minion.service    

 

相关文章
相关标签/搜索