#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. ime-mode:disabled 关闭文本框输入法

    在用户输入数字的表单中,需要禁止用户输入中文.符号等,减少用户输入出错误的可能性,CSS可以实现此功能. ime-mode的语法解释如下: ime-mode : auto | active | ina ...

  2. 如何让你的网站支持https

    如何让你的网站支持https 当今世界的主流网站基本都是使用https对外界提供服务,甚至有某些公司建议完全使用https, 那么https是什么呢?请参考如下的图解,https是在我们通常说的tcp ...

  3. 学习笔记之-------UIScrollView 基本用法 代理使用

    //contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =sel ...

  4. 渡轮问题Ship

    题目描述 Palmia河从东往西流过Palmia国,把整个国家分成南北两半.河的两岸各有N个城市,北岸的每一个城市都与南岸的一个城市互为友好城市,而且任意两个北岸城市的友好城市都不相同.每一对友好城市 ...

  5. bzoj1191--匈牙利算法

    这道题一看就是求二分图最大匹配,不过需要注意的是答案需要前面所有题目都能答对,因为这里WA了无数次...... #include<iostream> #include<cstdio& ...

  6. form表单提交和阻止

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. liunx命令

    关机 (系统的关机.重启以及登出 ) shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minute ...

  8. Linux(三)__文件权限、系统的查找、文本编辑器

    一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...

  9. org.springframework.context.ApplicationContextAware使用理解

    一.这个接口有什么用? 当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean.换句话说,就是这个类可以 ...

  10. Gulp如何编译sass

    Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 1.搭建web服务器 2.文件保存时自动重载浏览器 3.使用预处理器如Sass.LESS 4.优化资源,比如压缩CSS.JavaScr ...