#Elaine:master;Dylan:minion
#利用salt给minion安装包
[root@elaine states]# vim /etc/salt/master

 default_include: master.d/*.conf

 interface: 0.0.0.0

 '''
state_top: top.sls
'''
file_roots:
base:
- /etc/salt/states
prod:
- /etc/salt/states/prod
'''

[root@elaine states]# vim /etc/salt/states/top.sls

 base:
'dylan':
- init.pkg #使用init目录下pkg文件 pkg.init: #自定义名字
pkg.installed: #执行pkg.installed模块
- names: #要安装的包名
- lrzsz
- mtr
- nmap

[root@elaine init]# salt '*' state.sls init.pkg

dylan:
----------
ID: pkg.init
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: ::07.973412
Duration: 4582.543 ms
Changes: Summary for dylan
------------
Succeeded:
Failed:
------------
Total states run:
Total run time: 4.583 s

#利用salt同步minion端的配置文件
[root@elaine init]# vim /etc/salt/states/init/limit.sls

 /etc/security/limits.conf:      #要同步的目标文件名
file.managed:
- source: salt://init/files/limits.conf
- user: root
- group: root
- mode: 644
#或
limit-config: #id名
file.managed:
- name: /etc/security/limits.conf #要同步的目标文件名
- source: salt://init/files/limits.conf
- user: root
- group: root
- mode: 644

[root@elaine init]# cp /etc/security/limits.conf /etc/salt/states/init/files/

[root@elaine states]# vim /etc/salt/states/top.sls

 base:
'dylan':
- init.pkg
- init.limit

#将输出结果return到mysql
master端安装MySQL-python包,由master端直接写入mysql,不需要加--return mysql

#使用grains定义目标
[root@dylan ~]# vim /etc/salt/grains

test: salt_test

[root@elaine ~]# salt '*' saltutil.sync_grains  #刷新

dylan:

[root@elaine /]# salt '*' grains.item test

dylan:
----------
test:
salt_test

[root@elaine ~]# salt -G 'test:salt_test' test.ping

dylan:
True

#grains在top.sls状态文件里
[root@elaine /]# vim /etc/salt/states/top.sls

 base:
'dylan':
- init.pkg
'os:CentOS':
- match: grain
- init.limit

#使用pillar定义目标
[root@elaine /]# mkdir -p /etc/salt/pillar/init
[root@elaine init]# vim /etc/salt/master

 pillar_roots:
base:
- /etc/salt/pillar

[root@elaine /]# vim /etc/salt/pillar/top.sls

 base:
'*': #定义要添加pillar的目标主机
- init.rsyslog #定义要添加pillar的方法文件/etc/salt/pillar/init

[root@elaine /]# vim /etc/salt/pillar/init/rsyslog.sls

 {% if grains['osfinger'] == 'CentOS Linux-7' %}
syslog: rsyslog
{% elif grains['osfinger'] == 'CentOS-5' %}
syslog: syslog
{% endif %}

[root@elaine init]# systemctl restart salt-master
[root@elaine init]# salt '*' saltutil.refresh_pillar

dylan:
True

[root@elaine init]# salt '*' pillar.item syslog

dylan:
----------
syslog:
rsyslog

[root@elaine init]#
[root@elaine init]# salt -I 'syslog:rsyslog' test.ping

dylan:
True

#安装配置启动zabbix-agent    
[root@elaine init]# grep 'Server='  /etc/salt/states/init/files/zabbix_agentd.conf

# Server=
Server={{Zabbix_Server}}#将配置文件里要修改的参数加上变量为Zabbix_Server,该配置文件变为模板文件

[root@elaine init]# vim /etc/salt/states/init/zabbix_agent.sls

 zabbix_agent:
pkg.installed: #安装zabbix-agent
- name: zabbix-agent.x86_64 file.managed: #配置zabbix-agent
- name: /etc/zabbix/zabbix_agentd.conf
- source: salt://init/files/zabbix_agentd.conf
- user: root
- group: root
- mode: 644
- template: jinja #声明模板格式
- defaults:
Zabbix_Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }}#赋予变量Zabbix_Server新的值(这里利用pillar,直接添加值亦可,如:Zabbix_Server: 192.168.35.129) service.running: #启动zabbix-agent
- name: zabbix-agent
- enable: True
#- reload: True #文件更改后reload服务
- watch: #文件更改后重启服务
- file: zabbix_agent

[root@elaine init]# vim /etc/salt/states/top.sls

 base:
'dylan':
- init.pkg
- init.zabbix_agent #在top.sls添加要执行的方法文件zabbix_agent.sls
'os:CentOS':
- match: grain
- init.limit

#定义pillar      
[root@elaine init]# cat /etc/salt/pillar/init/zabbix_agent.sls

zabbix-agent:
Zabbix_Server: 198.162.35.129

[root@elaine pillar]# cat /etc/salt/pillar/top.sls

base:
'*':
- init.rsyslog
- init.zabbix_agent

#salt.ssh
[root@elaine init]# vim /etc/salt/roster

   squid:
host: 172.16.139.88
user: root
passwd: Ch@n93M3?

[root@elaine init]# salt-ssh -i '*' test.ping

squid:
True

[root@elaine init]# salt-ssh -i '*' cmd.run 'service squid restart'

squid:
停止 squid:................[确定]
正在启动 squid:.[确定]

saltstack简单部署和实践的更多相关文章

  1. 《SaltStack技术入门与实践》—— 实践案例 <中小型Web架构>3 Memcached配置管理

    实践案例 <中小型Web架构>3 Memcached配置管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Memcached介绍 Me ...

  2. 运维自动化之SALTSTACK简单入门

    运维自动化之SaltStack简单入门 饱食终日而无所事事,是颓也,废也.但看昨日,费九牛二虎之力除一BUG便流连于新番之中,不知东方之既黑,实乃颓颓然而荒废矣.故今日来缀一文以忏昨日之悔. Salt ...

  3. Cobbler自动化部署最佳实践

    第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对 ...

  4. Tomcat_记一次tomcatwar包应用简单部署过程

    记一次tomcat war包应用简单部署过程 by:授客 QQ:1033553122 1.  实践环境 Linux apache-tomcat-7.0.73 2.  实践步骤 # 解压tomcat压缩 ...

  5. Ceph分布式存储-原理介绍及简单部署

    1)Ceph简单概述Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.Ceph源码下载:http://ceph.com/download/.随着云计算的发 ...

  6. 自动化运维工具SaltStack详细部署

    ==========================================================================================一.基础介绍==== ...

  7. 自动化运维工具SaltStack详细部署【转】

    ==========================================================================================一.基础介绍==== ...

  8. 《SaltStack技术入门与实践》—— Peer

    Peer 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Peer组件是SaltStack中Minion向Master发布任务的一个组件,使用Peer ...

  9. 《SaltStack技术入门与实践》—— Mine

    Mine 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Mine是SaltStack收集Minion数据存储到Master的一个组件,它的功能与Gr ...

随机推荐

  1. 理解领域模型Domain Model

    定义 业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型.它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象.业务对象模型从业务角色内部的观点定义了业务 ...

  2. Struts2 源码分析——配置管理之PackageProvider接口

    本章简言 上一章讲到关于ContainerProvider的知识.让我们知道struts2是如何注册相关的数据.也知道如何加载相关的配置信息.本章笔者将讲到如何加载配置文件里面的package元素节点 ...

  3. poj1113--凸包(Andrew)

    题目大意: 给出平面上若干个点的坐标,你的任务是建一个环形围墙,把所有的点围在里面,且距所有点的距离不小于l.求围墙的最小长度. 思路: 很容易得出答案就是凸包周长+以l为半径的圆的周长. 这里讲一下 ...

  4. ffmpeg实现dxva2硬件加速

    这几天在做dxva2硬件加速,找不到什么资料,翻译了一下微软的两篇相关文档.这是第二篇,记录用ffmpeg实现dxva2. 第一篇翻译的Direct3D device manager,链接:http: ...

  5. [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效

    症状: 解决办法: 二.解决问题 原因是没有切换盘符步骤一:C:\Users\Administrator>D:步骤二:D:\>

  6. SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>

    此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...

  7. javaweb优化

    http://blog.csdn.net/jiangzhaobao/article/details/8003244

  8. Xdebug文档(四)函数跟踪

    Xdebug能让你把所有函数调用,包括参数和返回值以不同的格式记录到文件中. 这些号称“函数跟踪”功能能帮助你面对一个新应用程序,亦或者在程序运行时你想弄清楚它在做什么.函数跟踪功能可以选择性地显示函 ...

  9. 取出session中的所有属性与值的方法

    如果你想取出session中所有的属性和值,可以通过getAttributeNames()方法来实现,具体代码如下 //获取session HttpSession session = request. ...

  10. String类型的属性和方法

    × 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...