Saltstack_实战指南02_各主机Pillar信息指定
1. 实战项目GitHub地址
该项目已经放在了GitHub上,地址如下:
https://github.com/zhanglianghhh/salt-example-lnmp

2. 主机规划

3. pillar的整体目录结构
[root@salt150-master pillar]# pwd
/srv/pillar
[root@salt150-master pillar]# ll
total
drwxr-xr-x root root Mar : base
drwxr-xr-x root root Mar : prod
-rw-r--r-- root root Mar : top.sls
[root@salt150-master pillar]# tree
.
├── base
│ ├── database.sls
│ ├── monitor.sls
│ └── nosql.sls
├── prod
│ ├── high_available.sls
│ ├── program.sls
│ ├── proxy.sls
│ └── web.sls
└── top.sls directories, files
4. Pillar的top.sls 文件信息
[root@salt150-master pillar]# cat top.sls
base:
'*':
# base 目录
- base.database
- base.nosql
- base.monitor
# prod 目录
- prod.web
- prod.program
- prod.proxy
- prod.high_available
5. base基础信息
[root@salt150-master base]# pwd
/srv/pillar/base
[root@salt150-master base]# ll
total
-rw-r--r-- root root Mar : database.sls
-rw-r--r-- root root Mar : monitor.sls
-rw-r--r-- root root Mar : nosql.sls
[root@salt150-master base]# cat database.sls
# 数据库信息
# 包含配置文件信息
# 注意和 zabbix pillar 不同 的写法
{% if grains['host'] == 'salt03-web' %}
database_info:
database: mysql
role: master
server-id:
read_only: "OFF"
{% elif grains['host'] == 'salt04-web' %}
database_info:
database: mysql
role: slave
server-id:
read_only: "ON"
{% elif grains['host'] == 'salt05-web' %}
database_info:
database: mysql
role: slave
server-id:
read_only: "ON"
{% elif grains['host'] == 'salt150-master' %}
database_info:
database: mariadb
read_only: "OFF"
{% endif %} [root@salt150-master base]# cat nosql.sls
# nosql 信息
{% if grains['host'] == 'salt05-web' %}
nosql_info:
nosql: memcached
{% endif %} [root@salt150-master base]# cat monitor.sls
# 其中 salt150-maste 172.16.1.150 机器,不仅是 zabbix 客户端,还是服务端
# 只包含 zabbix 的属性 【服务端 客户端】
monitor_info:
monitor:
{% if grains['host'] == 'salt150-master' %}
zabbix_server: True
{% endif %}
zabbix_agent: True
zabbix_server_hostname: 'salt150-master'
6. prod业务组件信息
[root@salt150-master prod]# pwd
/srv/pillar/prod
[root@salt150-master prod]# ll
total
-rw-r--r-- root root Mar : high_available.sls
-rw-r--r-- root root Mar : program.sls
-rw-r--r-- root root Mar : proxy.sls
-rw-r--r-- root root Mar : web.sls
[root@salt150-master prod]# cat web.sls
# web 服务器
{% if grains['host'] == 'salt03-web' or grains['host'] == 'salt04-web' or grains['host'] == 'salt05-web' %}
web_info:
web: nginx
{% endif %} [root@salt150-master prod]# cat program.sls
# 使用的编程语言
{% if grains['host'] == 'salt03-web' or grains['host'] == 'salt04-web' or grains['host'] == 'salt05-web' %}
program_info:
program: php
{% endif %} [root@salt150-master prod]# cat proxy.sls
# 负载均衡服务器
{% if grains['host'] == 'salt01-haproxy' or grains['host'] == 'salt02-haproxy' %}
proxy_info:
proxy: haproxy
{% endif %} [root@salt150-master prod]# cat high_available.sls
# 高可用keepalived 的 pillar 信息
{% if grains['host'] == 'salt01-haproxy' %}
high_available_info:
high_available: keepalived
high_state: MASTER
high_priority:
{% elif grains['host'] == 'salt02-haproxy' %}
high_available_info:
high_available: keepalived
high_state: BACKUP
high_priority:
{% endif %}
7. pillar信息生效
[root@salt150-master pillar]# salt '*' saltutil.refresh_pillar
salt02-haproxy:
True
salt01-haproxy:
True
salt05-web:
True
salt03-web:
True
salt150-master:
True
salt04-web:
True
8. pillar信息查看
[root@salt150-master pillar]# salt '*' pillar.items
salt05-web:
----------
database_info:
----------
database:
mysql
read_only:
ON
role:
slave
server-id: monitor_info:
----------
monitor:
----------
zabbix_agent:
True
zabbix_server_hostname:
salt150-master
nosql_info:
----------
nosql:
memcached
program_info:
----------
program:
php
web_info:
----------
web:
nginx
salt02-haproxy:
----------
high_available_info:
----------
high_available:
keepalived
high_priority: high_state:
BACKUP
monitor_info:
----------
monitor:
----------
zabbix_agent:
True
zabbix_server_hostname:
salt150-master
proxy_info:
----------
proxy:
haproxy
salt03-web:
----------
database_info:
----------
database:
mysql
read_only:
OFF
role:
master
server-id: monitor_info:
----------
monitor:
----------
zabbix_agent:
True
zabbix_server_hostname:
salt150-master
program_info:
----------
program:
php
web_info:
----------
web:
nginx
salt04-web:
----------
database_info:
----------
database:
mysql
read_only:
ON
role:
slave
server-id: monitor_info:
----------
monitor:
----------
zabbix_agent:
True
zabbix_server_hostname:
salt150-master
program_info:
----------
program:
php
web_info:
----------
web:
nginx
salt01-haproxy:
----------
high_available_info:
----------
high_available:
keepalived
high_priority: high_state:
MASTER
monitor_info:
----------
monitor:
----------
zabbix_agent:
True
zabbix_server_hostname:
salt150-master
proxy_info:
----------
proxy:
haproxy
salt150-master:
----------
database_info:
----------
database:
mariadb
read_only:
OFF
monitor_info:
----------
monitor:
----------
zabbix_agent:
True
zabbix_server:
True
zabbix_server_hostname:
salt150-master
9. 说明
其他的就不单独写文章了,都是之前讲解过的。
该实战项目中有些细节补充,结合之前所学,即可达到整体实战目的。项目实战代码请参见开头的GitHub地址。
如果阅读后有些地方不清楚,可以结合之前的《Saltstack_使用指南_系列》进行参考。

Saltstack_实战指南02_各主机Pillar信息指定的更多相关文章
- Saltstack_实战指南01_系统规划
1. 实战项目GitHub地址 之前<Saltstack_使用指南>详细讲解了saltstack的使用.那么从这节开始实战讲解,当然不会再像之前那样详细说明了.只是讲一些系统规划之类的信息 ...
- Saltstack_使用指南02_远程执行-验证
1. 主机规划 2. Master与哪些minion通信 2.1. Master与哪些minion正常通信 [root@salt100 ~]# salt '*' test.ping salt100: ...
- Saltstack_使用指南05_数据系统-Pillar
1. 主机规划 Pillar文档 https://docs.saltstack.com/en/latest/topics/pillar/index.html 注意事项 修改了master或者minio ...
- Saltstack_使用指南17_salt-ssh
1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...
- Saltstack_使用指南12_配置管理-jinja模板
1. 说明 下文的案例是根据上一篇文章进行的修改.因此请优先读取上一章博文内容<Saltstack_使用指南11_配置管理-状态之间依赖关系> 2. 主机规划 salt 版本 [root@ ...
- Saltstack_使用指南16_syndic
1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...
- 《Web安全攻防 渗透测试实战指南》 学习笔记 (四)
Web安全攻防 渗透测试实战指南 学习笔记 (四) Nmap Network Mapper 是一款开放源代码的网 ...
- 大数据存储:MongoDB实战指南——常见问题解答
锁粒度与并发性能怎么样? 数据库的读写并发性能与锁的粒度息息相关,不管是读操作还是写操作开始运行时,都会请求相应的锁资源,如果请求不到,操作就会被阻塞.读操作请求的是读锁,能够与其它读操作共享,但是当 ...
- 放飞App:移动产品经理实战指南
<放飞App:移动产品经理实战指南> 基本信息 原书名:App savvy:rurning ideas into iPhone and iPad Apps customers really ...
随机推荐
- Android Healthd电池服务分析
healthd healthd是安卓4.4之后提出来的,监听来自kernel的电池事件,并向上传递电池数据给framework层的BatteryService.BatteryService计算电池电量 ...
- SpringBoot2 配置多数据源,整合MybatisPlus增强插件
本文源码:GitHub·点这里 || GitEE·点这里 一.项目案例简介 1.多数据简介 实际的项目中,经常会用到不同的数据库以满足项目的实际需求.随着业务的并发量的不断增加,一个项目使用多个数据库 ...
- Windows服务安装批处理命令
Install.bat: @echo off "%~dp0InstallUtil\InstallUtil.exe" "%~dp0DataSyncService.exe&q ...
- Android 弹出Dialog时隐藏状态栏和底部导航栏
上代码 dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); di ...
- Redis内存数据库在Exchange会议室的整体应用架构
注:本文是别人写的,感觉写得很好就转过来,版权归原作者所有哦,谁知道出处可以告诉我,谢谢. 根据以上的会议室应用现状分析,该架构的核心是把历史发生的会议室申请数据定时同步到Redis内存数据库中,对于 ...
- VM虚拟机安装无法将值写入注册表.....请确认你是否有足够的权限访问该注册表项,或者与技术支持人员联系。
解决方法: 关掉360安全卫士等软件再安装
- 七、3Dslicer的坐标系
一.参考博客 https://blog.csdn.net/Huadong_eddy/article/details/84988166
- [C]编译器对char数组声明的一个行为
1概述 如果使用char[]来声明char数组,那么编译器会自动计算后面的字面量字符数,再加上一个空字符,作为它的长度.实际上这个数组最后一位被编译器强行加上了\0: #include <std ...
- R-5 相关分析-卡方分析
本节内容: 1:相关分析 2:卡方分析 一.相关分析 相关系数: 皮尔逊相关系数:一般用来计算两个连续型变量的相关系数. 肯德尔相关系数:一个连续一个分类(最好是定序变量) 斯皮尔曼相关系数:2个变量 ...
- pwn-200
题目连接 https://adworld.xctf.org.cn/media/task/attachments/49bd95c78386423997fa044a9e750015 借鉴 https:// ...