#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. 在新浪云SAE中使用smarty引擎模版

    在新浪云上使用smarty时会发现又这样的错误信息: “SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unab ...

  2. RECONFIGURE语句会清空计划缓存么?

    几个星期前,有个网友问我一个非常有趣的问题:RECONFIGURE语句会清空计划缓存么?通常我对这个问题的答案是简单的是,但慢慢的我找出了真正的答案是“看情况啦”.我们来看下它,为什么“它看情况”. ...

  3. Net设计模式实例之单例模式( Singleton Pattern)

    一.单例模式简介(Brief Introduction) 单例模式(Singleton Pattern),保证一个类只有一个实例,并提供一个访问它的全局访问点.单例模式因为Singleton封装它的唯 ...

  4. Ionic2学习笔记(5):Provider

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5547646.html             Provider是一种为App提供数据源的方式, 举个 ...

  5. QRCode

    这个星期, 领导要我总结项目中用到的一些技术, 然后交付文档. 嘿嘿, 奉命整理. 二维码, 相信很多项目中都会要求生成这个, 然后由手机端去扫描, 或存储一些详情信息, 或存储一条链接, 可以快捷访 ...

  6. autocad2008+C#2008开发中设置自动加载dll

    一.复制编译后的dlll路径,比如我的是D:\zjy\cad开发\学习\宗地图\bin\Debug\zd.dll 二.随便找个地方新建一个记事本,在记事本中写入以下内容: (command " ...

  7. 疯狂Android讲义 - 学习笔记(六)

    第7章 7.1 使用简单图片 7.1.1 使用Drawable对象 7.1.2 Bitmap和BitmapFactory 7.2 绘图 7.2.1 Android绘图基础:Canvas.Paint等 ...

  8. HDU 5475(2015 ICPC上海站网络赛)--- An easy problem(线段树点修改)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5475 Problem Description One day, a useless calculato ...

  9. 1、ASP.NET MVC入门到精通——新语法

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...

  10. java面向对象三大特性之继承

    通过重用已经测试并验证通过的代码,怎样才减少开发工作,所有开发团队都在为一问题而努力.一个久经考验的方法是通过有效地使用Java继承优化应用程序开发. 继承的从某种意义上讲,继承的短暂美就如同宇宙中所 ...