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 ...
随机推荐
- Linux中防火墙命令
#启动 systemctl start firewalld #开机启动 systemctl enable firewalld #停止 systemctl stop firewalld #禁 ...
- Sqlite—数据库备份与恢复
数据库备份 例如:备份 /www/wwwroot 下面的 task.db 数据库 1.进入数据库 [root@localhost ~]# sqlite3 /www/wwwroot/task.db 2. ...
- Ansible-下部
ansible-playbook playbook是由一个或多个模块组成的,使用多个不同的模块,完成一件事情. ansible软件特点 可以实现批量管理可以实现批量部署ad-hoc(批量执行命令)- ...
- Eureka+SpringBoot2.X结合Security注册中心安全验证
当我们直接配置完SpringCloudEureka的时候,任何人直接就可以访问,这样是极不安全的!!外网的情况下是绝对不允许的! 好在有提供了解决方案,下面拿为我们提供的Security解决 Spri ...
- springcloud vue.js 微服务分布式 前后分离 集成代码生成器 shiro权限 activiti工作流
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...
- ProjectServer2010升级到ProjectServer2016,Sharepoint2010升级到Sharepoint2016第一章
之后还原 Project Server 2010 数据库和包含 Project Web App 网站数据的 SharePoint 内容数据库,您可以运行数据和 Project Web App 网站集升 ...
- Tomcat乱码或异常
一.控制台乱码 原因:Tomcat与Windows编码不一致导致 解决办法:首先找到conf/logging.properties文件,然后打开后找到“java.util.logging.Consol ...
- maven多仓库配置 公司仓库和阿里仓库
针对公司内网私服仓库,私服仓库不能访问外网,此时无法在私服仓库代理阿里的maven仓库.我们的maven就需要配置多个仓库: maven目录下的conf/settings.xml配置文件: 一.在pr ...
- JavaScript-----13.内置对象 Math()和Date()
1. 内置对象 js对象分为3种:自定义对象(var obj={}).内置对象.浏览器对象. 前两种对象是js基础内容,属于ECMAScript,第三个浏览器对象是js独有的.讲js API的时候会讲 ...
- (理论知识+HTML+CSS+JavaScript)
今天分享的面试题的答案不确保一定正确,如有错误或有更好的解法,大家可以留言分享你的答案.我在留言区等你更好的答案. 一.理论基础知识部分 1.1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 ...