Saltstack_实战指南02_各主机Pillar信息指定
时间:2022-07-26
本文章向大家介绍Saltstack_实战指南02_各主机Pillar信息指定,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 实战项目GitHub地址
该项目已经放在了GitHub上,地址如下:
https://github.com/zhanglianghhh/salt-example-lnmp
2. 主机规划
3. pillar的整体目录结构
1 [root@salt150-master pillar]# pwd
2 /srv/pillar
3 [root@salt150-master pillar]# ll
4 total 4
5 drwxr-xr-x 2 root root 62 Mar 10 17:27 base
6 drwxr-xr-x 2 root root 83 Mar 10 17:39 prod
7 -rw-r--r-- 1 root root 183 Mar 10 17:42 top.sls
8 [root@salt150-master pillar]# tree
9 .
10 ├── base
11 │ ├── database.sls
12 │ ├── monitor.sls
13 │ └── nosql.sls
14 ├── prod
15 │ ├── high_available.sls
16 │ ├── program.sls
17 │ ├── proxy.sls
18 │ └── web.sls
19 └── top.sls
20
21 2 directories, 8 files
4. Pillar的top.sls 文件信息
1 [root@salt150-master pillar]# cat top.sls
2 base:
3 '*':
4 # base 目录
5 - base.database
6 - base.nosql
7 - base.monitor
8 # prod 目录
9 - prod.web
10 - prod.program
11 - prod.proxy
12 - prod.high_available
5. base基础信息
1 [root@salt150-master base]# pwd
2 /srv/pillar/base
3 [root@salt150-master base]# ll
4 total 12
5 -rw-r--r-- 1 root root 258 Mar 10 17:27 database.sls
6 -rw-r--r-- 1 root root 272 Mar 10 17:20 monitor.sls
7 -rw-r--r-- 1 root root 99 Mar 10 17:25 nosql.sls
8 [root@salt150-master base]# cat database.sls
9 # 数据库信息
10 # 包含配置文件信息
11 # 注意和 zabbix pillar 不同 的写法
12 {% if grains['host'] == 'salt03-web' %}
13 database_info:
14 database: mysql
15 role: master
16 server-id: 1
17 read_only: "OFF"
18 {% elif grains['host'] == 'salt04-web' %}
19 database_info:
20 database: mysql
21 role: slave
22 server-id: 2
23 read_only: "ON"
24 {% elif grains['host'] == 'salt05-web' %}
25 database_info:
26 database: mysql
27 role: slave
28 server-id: 3
29 read_only: "ON"
30 {% elif grains['host'] == 'salt150-master' %}
31 database_info:
32 database: mariadb
33 read_only: "OFF"
34 {% endif %}
35
36 [root@salt150-master base]# cat nosql.sls
37 # nosql 信息
38 {% if grains['host'] == 'salt05-web' %}
39 nosql_info:
40 nosql: memcached
41 {% endif %}
42
43 [root@salt150-master base]# cat monitor.sls
44 # 其中 salt150-maste 172.16.1.150 机器,不仅是 zabbix 客户端,还是服务端
45 # 只包含 zabbix 的属性 【服务端 客户端】
46 monitor_info:
47 monitor:
48 {% if grains['host'] == 'salt150-master' %}
49 zabbix_server: True
50 {% endif %}
51 zabbix_agent: True
52 zabbix_server_hostname: 'salt150-master'
6. prod业务组件信息
1 [root@salt150-master prod]# pwd
2 /srv/pillar/prod
3 [root@salt150-master prod]# ll
4 total 16
5 -rw-r--r-- 1 root root 326 Mar 10 17:39 high_available.sls
6 -rw-r--r-- 1 root root 174 Mar 10 17:34 program.sls
7 -rw-r--r-- 1 root root 148 Mar 10 17:38 proxy.sls
8 -rw-r--r-- 1 root root 160 Mar 10 17:33 web.sls
9 [root@salt150-master prod]# cat web.sls
10 # web 服务器
11 {% if grains['host'] == 'salt03-web' or grains['host'] == 'salt04-web' or grains['host'] == 'salt05-web' %}
12 web_info:
13 web: nginx
14 {% endif %}
15
16 [root@salt150-master prod]# cat program.sls
17 # 使用的编程语言
18 {% if grains['host'] == 'salt03-web' or grains['host'] == 'salt04-web' or grains['host'] == 'salt05-web' %}
19 program_info:
20 program: php
21 {% endif %}
22
23 [root@salt150-master prod]# cat proxy.sls
24 # 负载均衡服务器
25 {% if grains['host'] == 'salt01-haproxy' or grains['host'] == 'salt02-haproxy' %}
26 proxy_info:
27 proxy: haproxy
28 {% endif %}
29
30 [root@salt150-master prod]# cat high_available.sls
31 # 高可用keepalived 的 pillar 信息
32 {% if grains['host'] == 'salt01-haproxy' %}
33 high_available_info:
34 high_available: keepalived
35 high_state: MASTER
36 high_priority: 100
37 {% elif grains['host'] == 'salt02-haproxy' %}
38 high_available_info:
39 high_available: keepalived
40 high_state: BACKUP
41 high_priority: 50
42 {% endif %}
7. pillar信息生效
1 [root@salt150-master pillar]# salt '*' saltutil.refresh_pillar
2 salt02-haproxy:
3 True
4 salt01-haproxy:
5 True
6 salt05-web:
7 True
8 salt03-web:
9 True
10 salt150-master:
11 True
12 salt04-web:
13 True
8. pillar信息查看
1 [root@salt150-master pillar]# salt '*' pillar.items
2 salt05-web:
3 ----------
4 database_info:
5 ----------
6 database:
7 mysql
8 read_only:
9 ON
10 role:
11 slave
12 server-id:
13 3
14 monitor_info:
15 ----------
16 monitor:
17 ----------
18 zabbix_agent:
19 True
20 zabbix_server_hostname:
21 salt150-master
22 nosql_info:
23 ----------
24 nosql:
25 memcached
26 program_info:
27 ----------
28 program:
29 php
30 web_info:
31 ----------
32 web:
33 nginx
34 salt02-haproxy:
35 ----------
36 high_available_info:
37 ----------
38 high_available:
39 keepalived
40 high_priority:
41 50
42 high_state:
43 BACKUP
44 monitor_info:
45 ----------
46 monitor:
47 ----------
48 zabbix_agent:
49 True
50 zabbix_server_hostname:
51 salt150-master
52 proxy_info:
53 ----------
54 proxy:
55 haproxy
56 salt03-web:
57 ----------
58 database_info:
59 ----------
60 database:
61 mysql
62 read_only:
63 OFF
64 role:
65 master
66 server-id:
67 1
68 monitor_info:
69 ----------
70 monitor:
71 ----------
72 zabbix_agent:
73 True
74 zabbix_server_hostname:
75 salt150-master
76 program_info:
77 ----------
78 program:
79 php
80 web_info:
81 ----------
82 web:
83 nginx
84 salt04-web:
85 ----------
86 database_info:
87 ----------
88 database:
89 mysql
90 read_only:
91 ON
92 role:
93 slave
94 server-id:
95 2
96 monitor_info:
97 ----------
98 monitor:
99 ----------
100 zabbix_agent:
101 True
102 zabbix_server_hostname:
103 salt150-master
104 program_info:
105 ----------
106 program:
107 php
108 web_info:
109 ----------
110 web:
111 nginx
112 salt01-haproxy:
113 ----------
114 high_available_info:
115 ----------
116 high_available:
117 keepalived
118 high_priority:
119 100
120 high_state:
121 MASTER
122 monitor_info:
123 ----------
124 monitor:
125 ----------
126 zabbix_agent:
127 True
128 zabbix_server_hostname:
129 salt150-master
130 proxy_info:
131 ----------
132 proxy:
133 haproxy
134 salt150-master:
135 ----------
136 database_info:
137 ----------
138 database:
139 mariadb
140 read_only:
141 OFF
142 monitor_info:
143 ----------
144 monitor:
145 ----------
146 zabbix_agent:
147 True
148 zabbix_server:
149 True
150 zabbix_server_hostname:
151 salt150-master
9. 说明
1 其他的就不单独写文章了,都是之前讲解过的。
2 该实战项目中有些细节补充,结合之前所学,即可达到整体实战目的。项目实战代码请参见开头的GitHub地址。
3 如果阅读后有些地方不清楚,可以结合之前的《Saltstack_使用指南_系列》进行参考。
- spark零基础学习线路指导
- MySQL数据库(十):用户授权与撤销授权
- Oracle 12c系列(二)|PDB的创建
- Spring Security 入门(四):自定义-Filter
- Go语言中Select语句用法实例
- 从Mysql备份中恢复单个表
- spark编译:构建基于hadoop的spark安装包及遇到问题总结
- Mysql忘记root密码的恢复方法
- 深入剖析Go语言编程中switch语句的使用
- MySQL中DDL、DML、DCL的那些语句
- 如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
- golang实现简单的udp协议服务端与客户端示例
- Oracle 12c系列(三)|存储资源隔离 Flex Diskgroup
- Scala的map实现key和value排序及各种排序比较等知识讨论
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 小程序数据渲染根据返回值计算百分比并且显示
- JS获取当前系统时间戳的方法
- TensorFlow 2建立神经网络分类模型——以iris数据为例
- 突击并发编程JUC系列-阻塞队列 BlockingQueue
- Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
- Python安装TensorFlow 2、tf.keras和深度学习模型的定义
- TensorFlow2 keras深度学习:MLP,CNN,RNN
- Flutter ListView 局部刷新数据、ListView点赞收藏
- R语言公交地铁路线网络图实现数据挖掘实战
- R语言风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计
- R语言机器学习实战之多项式回归
- 5000字!带你零距离接触websocket!
- 使用 GitLab CI 和 Docker 自动部署 Spring Boot 应用
- 玩转StyleGAN2模型:教你生成动漫人物
- R语言时间序列数据指数平滑法分析交互式动态可视化