Saltstack详细介绍

自动化运维工具Saltstack详细介绍

标签:salt自动化运维salt-master

版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。

Saltstack是一个新的基础设施管理工具。目前处于快速发展阶段,可以看做是pssh+弱化的Puppet的组合。间接的反映出了saltstack的两大功能:远程执行和配置管理。

Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。由Master和Minion构成,通过ZeroMQ进行通信。

Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口;salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制,如果连接断开,master对客户端就无能为力了。当然,客户端若检查到断开后会定期的一直连接master端的。

1.saltstack安装

centos/redhatserver端安装

#导入EPEL YUM源

rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm

#服务器master的安装

yum -yinstallsalt-master

centos/redhat客户端minion安装

#导入EPEL YUM源

rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm

yum -yinstallsalt-minion

ubuntu/debian server端和client端安装

wget -q -O -"http://debian.saltstack.com/debian-salt-team-joehealy.gpg.key"| apt-key add -

echo"deb http://debian.saltstack.com/debianwheezy-saltstack main"/etc/apt/sources.list

echo"debhttp://debian.saltstack.com/debian wheezy-saltstack main"|tee/etc/apt/sources.list

apt-get update

apt-get installsalt-master# On the salt-master

apt-get installsalt-minion# On each salt-minion

apt-getinstallsalt-syndic

2.saltstacks配置文件修改

master端配置文件修改

vi/etc/salt/master

interface: 115.28.2.1#此处是server端监听的地址。

auto_accept: True#此处是自动接受客户端发送过来的key,如果服务器很多的话,需要开启该功能。

启动master

/etc/salt/master-d#后台启动

/etc/salt/master#前台启动,方便调试

minion端配置文件修改:

#vi /etc/salt/minion

master: 115.28.2.1#这里改成你的master服务器地址

id: web01#建议这里修改成主机名,便于master端分辨

#在配置文件末尾加入下面内容,每隔5分钟自动同步master配置,效果等同于在客户端执行salt-call state.highstate或在server端执行 salt '*'state.highstate

schedule:

highstate:

function: state.highstate

minutes: 5

启动minion

/etc/salt/minion-d#后台启动

/etc/salt/minion#前台启动,方便调试

注:minion启动后,自动会生成公钥私钥,并把公钥发送到master端。minion不监听端口,全靠和master保持长连接,可通过netstat-an|grepES来查看是否有连接。

3.salt-key证书管理

master端证书存放路径:/etc/salt/pki/master/minions

salt-key  -L#查询所有接收到的证书

salt-key  -a <证书名>#接收单个证书

salt-key  -A#接受所有证书

salt-key  -d <证书名>#删除单个证书

salt-key  -D#删除所有证书

4.salt实时批量操作

语法:

1

salt [选项]''  [arguments]

常用命令举例:

salt'*'test.ping

#*为匹配所有主机,test.ping为salt一个函数,注:*号是正则,若分了多个组,可以类似于web*,只匹配web服务器

salt'*'cmd.run'df -h'

#查看所有主机的磁盘信息,cmd.run执行单个命令

salt'*'cmd.script salt://hello.sh

salt'*'cmd.script  salt://scripts/runme.sh'arg1 arg2 "arg 3"'

#cmd.script执行一个脚本,即把本地脚本拷贝到远程主机上执行,hello.sh要放在指定的文件存放路径,默认是/srv/salt/

salt'*'state.highstate

#向客户端推送master端配置。

salt'*'cmd.run'df -h '-t 5

#超时控制

5.salt分组管理

在配置文件/etc/salt/master中加入如下内容:

[root@yang salt]# vimaster.d/group.conf

nodegroups:

group1:'L@DG-Server-27,DG-Server-28'

group2:'L@qsmind'

#分组格式可在/etc/salt/master中搜索group看示例

分组执行:

salt -N group1 cmd.run'hostname'

6.salt-ssh远程主机批量自动登陆

salt-ssh批量密码认证登陆,参考峰云大神的博文

http://rfyiamcool.blog.51cto.com/1030776/1305710

7.salt-run检查客户端up状态

注:该处状态检查salt使用的是test.ping,如果服务器禁ping,则该处不准。

salt-run manage.status#查看所有客户端up/down状态

salt-run manage.up#只显示up状态的客户端

salt-run manage.down#只显示down状态的客户端

8.salt-cp批量拷贝文件

在master端执行:

5语法:

salt-cp[options]''SOURCE DEST

示例:

salt-cp'*'/etc/hosts/etc/hosts#把master上的hosts文件分发到所有主机。

9.saltstack定时同步

可以把salt-call state.highstate命令放在minion端的定时任务中,来进行自动请求同步。

也可以把salt '*' state.highstate放在master端的定时任务中,来进行自动推送到所有机器。

也可以在/etc/salt/minion配置文件中加入如下内容,如下是每隔5分钟同步,效果一样。

schedule:

highstate:

function:state.highstate

seconds:300

10.saltstack自动分发目录

指定同步的目录后,以后文件只需放到该目录下就会自动同步到minion端。

[root@yang salt]# cat /srv/salt/top.sls

base:

"DG-Server*":

- ssh_key.key

- zabbix.zabbix

#在top.sls文件中指定哪些主机访问哪些目录

[root@yang salt]# cat /srv/salt/zabbix/zabbix.sls

/usr/local/zabbix/scripts:#指定minion端同步后生成的目录

file.recurse:

-source: salt://zabbix/zabbix_scripts#指定要master端同步的原始目录,以后只要把想要分发的文件放在这个目录中,就会自动同步了。

- dir_mode: 755

- file_mode: 744

#用dir_mode和file_mode来设置文件和目录的权限

11.saltstack自动分发文件

如下配置,当文件出现变更时,匹配DG-Server开头的主机,同步文件到这些minion上,并设置为对应的文件权限。

[root@yang salt]# cat /srv/salt/top.sls

base:

"DG-Server*":

- ssh_key.key

- zabbix.zabbix

[root@yang zabbix]# cat /srv/salt/zabbix/zabbix.sls

/usr/local/zabbix/etc/zabbix_agentd.conf.d/UserParameter.conf:#指定在minion端生成的文件名

file.managed:

-source: salt://zabbix/UserParameter.conf#指定在master同步的原始文件

- backup: minion#当文件发生变化时,都会把原文件备份,备份文件目录:/var/cache/salt/minion/file_backup/

- mode: 744

- user: root

- group: root

12.saltstack进程状态管理

例:如httpd的配置文件进行更改时,自动重新加载配置文件。(该图取于网上,说明见图上)

13.saltstack自定义模块

当有需要使用一些statstack没有的方法时,可以自己增加模块。

参考峰云大神的文章吧。

http://rfyiamcool.blog.51cto.com/1030776/1262537

saltstack常用功能也就批量执行命令或脚本,批量分发文件,自动同步目录与文件,整体来说很简单实用。但salt有一个缺点,zeromq虽性能很高,但稳定性略差,经常出现minion与master连接断开的情况,导致有些服务器会执行命令失败,这个请大家要注意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 学习地址[http://tech.mainwise.cn/?p=438] 更新于 3.25 23:16 salt简...
    J书越来越垃圾了阅读 30,849评论 9 36
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 我们之间到底发生了什么,让我和你的语言越来越少,繁华褪去,一袭秋色。我们关系越来越淡,你我是不是即将分离?风不在挽...
    浅斟低唱一世风尘阅读 322评论 0 3
  • 今天学习了自律,希望每个人都可以做到
    FineYoga娟子阅读 263评论 0 0
  • HTTP Socket HTTP: 1.服务器不会主动给客户端发送数据 2.断开试{短连接}:当我们客户端向服务器...
    骑着蜗牛追F1阅读 589评论 0 6