1. 主机规划

注意事项

修改了master或者minion的配置文件,那么必须重启对应的服务。

2. 了解YAML

具体地址

https://docs.saltstack.com/en/latest/topics/yaml/index.html    

YAML:三板斧

、缩进:  2个空格,不能使用Tab
、冒号: key: value 注意有空格
、短横线: - list1 注意有空格
- list2

3. 配置管理路径指定

3.1. master指定配置管理基本路径

 [root@salt100 salt]# pwd
/etc/salt
[root@salt100 salt]# vim master
………………
# Example:
# file_roots:
# base:
# - /srv/salt/
# dev:
# - /srv/salt/dev/services
# - /srv/salt/dev/states
# prod:
# - /srv/salt/prod/services
# - /srv/salt/prod/states
#
# 将如下的注释放开即可
# 也可以不变更配置,因为这是个默认配置★★
file_roots:
base:
- /srv/salt
………………
[root@salt100 salt]# systemctl restart salt-master.service # 修改了配置文件,必须重启服务

3.2. 创建对应的目录

[root@salt100 ~]# mkdir -p /srv/salt

4. 测试案例--单个状态管理

4.1. 编写测试案例----安装apache

1、为了方便后期维护指定一个特定目录

 [root@salt100 salt]# pwd
/srv/salt
[root@salt100 salt]# mkdir web
[root@salt100 salt]# cd web/
[root@salt100 web]# pwd
/srv/salt/web

2、编写sls文件

 [root@salt100 web]# pwd
/srv/salt/web
[root@salt100 web]# cat apache.sls # 后缀名 sls,salt执行时会找sls文件
# sls文件允许注释存在,内容可以直接复制使用
# 自定义的一个ID,唯一标识 ★★★★★
apache-install:
# pkg 是一个执行模块 . 引用 installed 使用方法
pkg.installed:
# - names 参数 支持多个列表
- names:
- httpd
- httpd-devel # enable: True 表示:开机自启动
apache-service:
service.running:
- name: httpd
- enable: True

4.2. 在master机器salt100上执行

给salt01、salt02、salt03部署安装httpd

 # 在master机器操作
[root@salt100 ~]# salt 'salt0*' test.ping # 看salt01、salt02、salt03是否可通信
salt01:
True
salt03:
True
salt02:
True
[root@salt100 ~]# salt 'salt0*' state.sls web.apache # 给 salt01、salt02、salt03 部署httpd
# 说明:
# 、master 配置管理基本目录为 /srv/salt
# 、apache.sls 的路径为:/srv/salt/web/apache.sls
# 、state.sls web.apache 说明 state模块,调用 sls方法, 调用的文件是web路径下的apache.sls文件【只是最后的 sls后缀名省略了】

备注:做了哪些事情

1、  将/srv/salt/web/apache.sls文件从master发送给minion;

2、  minion得到文件后,根据master指令执行apache.sls中的内容

master将文件发送到minion的那个位置

 # 在minion端查看
[root@salt01 salt]# pwd
/var/cache/salt
[root@salt01 salt]# ll
total
drwxr-xr-x root root Dec : minion
[root@salt01 salt]# tree
.
└── minion
├── accumulator
├── extmods
├── files
│ └── base
│ └── web
│ └── apache.sls
├── highstate.cache.p
├── proc
└── sls.p directories, files

4.3. 执行结果信息讲解

 # 执行返回结果是无序的
[root@salt100 ~]# salt 'salt0*' state.sls web.apache
salt02: # salt02执行结果信息
----------
ID: apache-install # apache.sls 中自定的ID【名称】
Function: pkg.installed
Name: httpd
Result: True
Comment: The following packages were installed/updated: httpd
Started: ::46.604986
Duration: 30335.469 ms
Changes:
----------
httpd:
----------
new:
2.4.-.el7.centos
old:
httpd-tools:
----------
new:
2.4.-.el7.centos
old:
mailcap:
----------
new:
2.1.-.el7
old:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: The following packages were installed/updated: httpd-devel
Started: ::16.965844
Duration: 6661.51 ms
Changes:
----------
apr-devel:
----------
new:
1.4.-.el7_4.
old:
apr-util-devel:
----------
new:
1.5.-.el7
old:
cyrus-sasl:
----------
new:
2.1.-.el7
old:
cyrus-sasl-devel:
----------
new:
2.1.-.el7
old:
expat-devel:
----------
new:
2.1.-.el7_3
old:
httpd-devel:
----------
new:
2.4.-.el7.centos
old:
libdb-devel:
----------
new:
5.3.-.el7
old:
openldap:
----------
new:
2.4.-.el7
old:
2.4.-.el7
openldap-devel:
----------
new:
2.4.-.el7
old:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service httpd has been enabled, and is running
Started: ::24.619598
Duration: 314.737 ms
Changes:
----------
httpd:
True Summary for salt02
------------
Succeeded: (changed=)
Failed:
------------
Total states run:
Total run time: 37.312 s
salt01: # salt01执行结果信息
………………
salt03: # salt03执行结果信息
----------
………………

5. Salt高级状态管理

生产环境使用,注意事项:

、执行时不能使用 '*' ,所有minion执行
、不能直接执行,要先 test=True;

5.1. 高级状态sls文件的位置和名称

默认file_roots的位置

不用修改配置文件,默认即可。

5.2. 编写top.sls文件

 [root@salt100 salt]# pwd
/srv/salt
[root@salt100 salt]# tree
.
├── top.sls
└── web
└── apache.sls directory, files
[root@salt100 salt]# cat top.sls
base:
# 使用通配符
'salt0*':
- web.apache
# - web.nginx # 可以有多个
# 指定具体minion
'salt03':
- web.apache

5.3. 执行高级状态

 [root@salt100 ~]# salt 'salt01' state.highstate test=True  # 必须先执行这个
………………
# 原因:防止自己手动改了minion机器上组件的配置信息,但是没有同步到salt;
# 结果直接执行后,又改回去了。
[root@salt100 ~]# salt 'salt01' state.highstate # 执行高级状态,通过top.sls 去查找
………………

Saltstack_使用指南03_配置管理的更多相关文章

  1. Saltstack_使用指南12_配置管理-jinja模板

    1. 说明 下文的案例是根据上一篇文章进行的修改.因此请优先读取上一章博文内容<Saltstack_使用指南11_配置管理-状态之间依赖关系> 2. 主机规划 salt 版本 [root@ ...

  2. Saltstack_使用指南11_配置管理-状态之间依赖关系

    1. 说明 下文的案例是根据上一篇文章进行的修改.因此请优先读取上一篇文章内容<Saltstack_10_配置管理-状态模块> 并且目录进行了变化,从 /srv/salt/lamp 变为了 ...

  3. Saltstack_使用指南10_配置管理-状态模块

    1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...

  4. Saltstack_使用指南17_salt-ssh

    1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...

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

    1. 实战项目GitHub地址 该项目已经放在了GitHub上,地址如下: https://github.com/zhanglianghhh/salt-example-lnmp 2. 主机规划 3. ...

  6. Saltstack_实战指南01_系统规划

    1. 实战项目GitHub地址 之前<Saltstack_使用指南>详细讲解了saltstack的使用.那么从这节开始实战讲解,当然不会再像之前那样详细说明了.只是讲一些系统规划之类的信息 ...

  7. Saltstack_使用指南16_syndic

    1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...

  8. Saltstack_使用指南05_数据系统-Pillar

    1. 主机规划 Pillar文档 https://docs.saltstack.com/en/latest/topics/pillar/index.html 注意事项 修改了master或者minio ...

  9. Saltstack_使用指南04_数据系统-Grains

    1. 主机规划 Grains文档 https://docs.saltstack.com/en/latest/topics/grains/index.html 注意事项 修改了master或者minio ...

随机推荐

  1. BBS论坛(二十)

    20.1.cms添加轮播图后台逻辑代码完成 (1)apps/models.py from exts import db from datetime import datetime class Bann ...

  2. Jquery.ajax dataType参数

    dataType 类型:String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML.在 1.4 ...

  3. nginx替换响应内容

    因为想要将非业务域名内嵌到微信小程序中,所以用到了nginx的反向代理功能来替换域名实现盗站(缘起:http://www.cnblogs.com/kenwar/p/8288882.html),但是替换 ...

  4. 使用logdashboard查看可视化日志

    logdashboard 日志面板是我在Github写的一个开源项目,旨在让查看日志变的方便快捷.在线预览 现在功能有日志检索.趋势图.异常堆栈快速查看.日志详情等 logdashboard支持自定义 ...

  5. linux磁盘管理系列二:软RAID的实现

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  6. Java开发知识之Java控制语句

    Java开发知识之Java控制语句 一丶复合语句 不管任何语言都有控制语句 if else if else whie do  while  for .... 首先讲解的是java的复合语句 1.什么是 ...

  7. kubernetes学习01—kubernetes介绍

    本文收录在容器技术学习系列文章总目录 一.简介 1.Kubernetes代码托管在GitHub上:https://github.com/kubernetes/kubernetes/. 2.Kubern ...

  8. React Fiber 数据结构揭秘

    此章节会通过两个 demo 来展示 Stack Reconciler 以及 Fiber Reconciler 的数据结构. 个人博客 首先用代码表示上图节点间的关系.比如 a1 节点下有 b1.b2. ...

  9. 四种途径提高RabbitMQ传输数据的可靠性(二)

    前言 上一篇四种途径提高RabbitMQ传输消息数据的可靠性(一)已经介绍了两种方式提高数据可靠性传输的方法,本篇针对上一篇中提出的问题(1)与问题(2)提出解决常用的方法. 本文其实也就是结合以上四 ...

  10. MD5&&DES加密解密帮助类

    public class _MD5_NETCore加密解密 { /// <summary> /// 加密 /// </summary> /// <param name=& ...