Saltstack_实战指南01_系统规划

1. 实战项目GitHub地址

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

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

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

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

2. 主机规划

说明:

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

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

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

前提保证上述所有机器内网都是同一网段,相互之间可以正常通信。

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

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

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

网关机器iptables操作

 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 [[email protected] ~]# 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 [[email protected] ~]#
13 [[email protected] ~]# 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 [[email protected] ~]# 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 [[email protected] ~]# 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 [[email protected] ~]# systemctl restart salt-master.service  # 重启 master 服务

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

所有机器都操作

 1 [[email protected] salt]# pwd
 2 /etc/salt
 3 [[email protected] 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 [[email protected] ~]# systemctl restart salt-minion.service  # 重启服务

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

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

原文地址:https://www.cnblogs.com/zhanglianghhh/p/10952176.html

时间: 2024-08-07 03:32:02

Saltstack_实战指南01_系统规划的相关文章

Saltstack_实战指南02_各主机Pillar信息指定

1. 实战项目GitHub地址 该项目已经放在了GitHub上,地址如下: https://github.com/zhanglianghhh/salt-example-lnmp 2. 主机规划 3. pillar的整体目录结构 1 [[email protected] pillar]# pwd 2 /srv/pillar 3 [[email protected]master pillar]# ll 4 total 4 5 drwxr-xr-x 2 root root 62 Mar 10 17:2

Saltstack_使用指南01_部署

1. 主机规划 服务器名称 操作系统版本 内网IP 外网IP(模拟) Hostname 部署模块 salt100 CentOS7.5 172.16.1.100 10.0.0.100 salt100 salt-master.salt-minion salt01 CentOS7.5 172.16.1.11 10.0.0.11 salt01 salt-minion salt02 CentOS7.5 172.16.1.12 10.0.0.12 salt02 salt-minion salt03 Cent

Saltstack_使用指南17_salt-ssh

1. 主机规划 salt 版本 1 [[email protected] ~]# salt --version 2 salt 2018.3.3 (Oxygen) 3 [[email protected] ~]# salt-minion --version 4 salt-minion 2018.3.3 (Oxygen) salt ssh文档 https://docs.saltstack.com/en/latest/topics/ssh/index.html 2. salt-ssh实现步骤 2.1.

【MYSQL】Mysql 设备选型与系统规划-实战参考文档-带附件-可下载

更多精彩内容尽在www.leonarding.com <Mysql 设备选型与系统规划> 引言:项目的设备选型是一项细腻而又艰巨的任务.因为它有一次性.不可更改.兼容性.扩展性.功能性.性能性.易用性等参数阀值来参照.例如我们的项目,首先要了解今年的设备采购预算有多少,如何分配的,分配下来每个项目大概有多少,按照预算标准进行分级.其次由于我们是金融企业采购范围是有所限制的,会有一个备选目录,上面列举了品牌.厂家.规格等信息,只能在这些目录中选择,如果设备有超出目录的需要写说明申请. 再次就需要

购买李宁Cocos2d-x套餐,送最新出的《Cocos2d-x游戏实战指南》签名书一本

活动时间:2016-10-18至2016-11-30 通过本套餐,可完全了解Cocos2d-x 3.x的相关技术,以及掌握C++语言,并具有一定的项目实战经验. Cocos2d-x游戏开发套餐:http://edu.51cto.com/pack/view/id-114.html <Cocos2d-x游戏实战指南>封面 本书月底出版,触控科技副总裁Jane.微软开放体验和合作事业部开发技术顾问梅颖广.51CTO学院运营总监曹亚莉.哈尔滨工业大学  王峥  联袂推荐 目录 第1章     初识CO

SQL Server 2012实施与管理实战指南(笔记)——Ch5启动SQL Server服务和数据库

5.启动SQL Server服务和数据库 在数据库和服务启动过程中,经常会出现的问题: 1.SQL Server实例无法正常启动 2.系统数据库无法正常启动 3.网络配置失败 4.用户数据库无法启动 5.集群环境下SQL Server资源无法保持在线 目录 5.启动SQL Server服务和数据库... 1 5.1 SQL Server服务启动步骤... 1 5.1.1 从注册表中读取SQL Server启动信息... 1 5.1.2 检查硬件,配置内存和CPU.. 2 5.1.3 数据库启动.

SQL Server 2012实施与管理实战指南(笔记)——Ch3Alwayson可用组

3.AlwaysOn可用组 Alwayson支持的,是一个可用性组,每个可用性组是包含了多个用户数据库的容器,可用性组内的数据库可以作为一个整体进行故障转移. AlwaysOn关键特性: 一.类似集群的特性 1.多个数据库可以一起迁移 2.提供一个虚拟服务器名,这个虚拟服务器名始终是当前的primary. 3.可以有自动切换,手动切换和强制切换 4.一个primary,最多4个secondary(sql server 2014增加到了8个) 5.Dashborad可以监视alwayson运行状况

Oracle DBA数据库高级工程师职业学习指南与职业规划视频课程(免费)

Oracle DBA数据库高级工程师培训课程是风哥独自研发的精品实战课程,本路线图主要是让大家快速就业.高薪就业.课程主要讲解Oracle公司简介,Oracle数据库简介,为什么要学习Oracle数据库?,学习Oracle就业前景如何?,学习Oracle数据库待遇如何?Oracle数据库适合于哪些人员学习?如何学好Oracle数据库? Oracle DBA数据库高级工程师学习指南: Oracle公司简介 Oracle数据库简介 为什么要学习Oracle数据库? 学习Oracle就业前景如何? 学

试读—Windows PowerShell实战指南(第2版)

看到Windows PowerShell实战指南(第2版),想起了女朋友送我的第一个生日礼物,它是什么呢? 一本书,书的名字是:Windows 2000 脚本编程实用大全: 时间过得真快,转眼十年过去了: 为什么偏偏选 了这么一本书做为生日礼物呢? 这是秘密,自己想去! 回来说正题,为什么看到Windows PowerShell实战指南(第2版)会让我想到Windows 2000 脚本编程实用大全呢? 看看下面的例子: var ws = WScript.CreateObject("WScript