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 ...
随机推荐
- Bash脚本编程之算术运算
简介 Bash所支持的算术运算和C语言是一样的,这里指的是操作符(operator)以及它们的优先级(precedence).结合性(associativity)和值,详见Shell Arithmet ...
- SpringBoot Restful Crud
一个简单的Restful Crud实验 默认首页的访问设置: // 注册 自定义的mvc组件,所有的WebMvcConfigurer组件都会一起起作用 @Bean public WebMvcConfi ...
- centos7配置Memcached
Memcached是一套分布式的高速缓存系统,用于提升网站访问速度,尤其对于一些大型的.需要频繁访问数据库的网站,访问速度提升效果十分显著. 1.安装memcached yum install mem ...
- JCC 指令
JCC跳转指令 JCC指条件跳转指令,CC就是指条件码. JCC指令 中文含义 英文原意 检查符号位 典型C应用 JZ/JE 若为0则跳转:若相等则跳转 jump if zero;jump if eq ...
- 工具类Arrays.asList()方法把数组转换成集合
工具类Arrays.asList()方法把数组转换成集合 不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException() 问 ...
- 三个月前的评测拖延三个月仍旧是拳王No.1吗?YES!
距前作展开隐形的翅膀,WPR003N补完篇仿佛已经隔了几个光年,最近替换了2019发现android sdk需要手冻放入一个tools2文件夹来延续Eclipse style的m$ distribut ...
- springboot使用hibernate validator
前言 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗长 每次要看哪些参 ...
- 配置Postman通过OAuth 2 implicit grant获取Dynamics 365 CE Online实例的Access Token
微软动态CRM专家罗勇 ,回复335或者20190516可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 对于测试Web API, Get 类型,不需要设定特别reque ...
- arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 4.x for js:esri 官网 api,里面详细的介绍 arcgis api 4.x 各个类 ...
- Rsync实现文件的同步
故事背景:我们公司是做新零售的,需要对发布的每台机器进行文件的同步更新,所以我这里做了一个小小的调研 技术调研:linux之间同步文件有两种方式rsync与scp. sync和scp在文件夹均不存在时 ...