werr 发表于 2015-1-6 08:10:20

saltstack安装配置

Saltstack 介绍
Saltstack是一个新的基础设施管理工具。 目前处于快速发展阶段,可以看做是强化的Func+弱化的Puppet的组合。间接的反映出了saltstack的两大功能:远程执行和配置管理。Saltstack 使用 Python 开发的,非常简单易用和轻量级的管理工具。由 Master 和 Minion构成,通过 ZeroMQ 进行通信。一、Saltstack基本安装1.安装源1.1 安装epel源cd/usr/local/src/wgethttp://mirrors.sohu.com/fedora-e ... ease-6-8.noarch.rpm
rpm-ivh epel-release-6-8.noarch.rpm

1.2 安装rpmforge这步很重要,在redhat 6和centos 6的epel源上没有python-jinja2。cat/etc/issue
wgethttp://apt.sw.be/redhat/el6/en/x ... 1.el6.rf.x86_64.rpm
rpm-Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
2.安装依赖包Vim /etc/yum.repos.d/epel.repo

Baseurl=http://mirrors.hustunique.com/epel/6/x86_64/

yum install python-jinja2

3.安装saltstack只需要一台安装master即可,其他的全部安装minion.
3.1 安装salt-master
yum -y install salt-master enablerepr=epel-testing

3.2 安装salt-minion
yum -y install salt-minion enablerepr=epel-testing

4.配置saltstack4.1 minion配置master前面有两个空格,这行代码表示我要连接的saltstack的master是10.102.36.67:cat /etc/salt/minion| grep "^master"
需要修改minion的配置文件/etc/salt/minion中的master选项,进行如下操作:master: 10.102.36.67id: 1id :客户端的标识,用服务端连接时,就是用此标识来连接客户端,如:salt '1' cmd.run 'df -h'4.2master配置master监听10.102.36.67,老样子前面也是有两个空格,否则启动的时候会报错.cat /etc/salt/master | grep '^interface'默认情况下,salt master在所有接口(0.0.0.0)上监听4505和4506两个端口. 如果想bind某个具体的IP,需要对/etc/salt/master配置文件中"interface"选项做如下修改:interface: 10.102.36.67修改auto_accept为True,自动接受客户端的KEY,当然也可以这里不设置,手动接受就行,接受方式:salt-key -akeyname (keyname即为客户端刚才设置的id标识)auto_accept: True客户端每隔30s 去服务器同步资源,时间可以随便DIYmintus:hours:这样的格式跟客户端手动执行 salt-call state.highstate命令效果一样;schedule:highstate:    function:state.highstate   seconds:30
5.启动saltstack5.1 启动masterservice salt-master start5.2启动minionservice salt-minion start
6.测试saltstack接下来的命令都在master上执行命令的格式:salt ‘参数’‘对象’命令6.1 查看minion列表salt-key –L6.2接受所有keysalt-key –A在提示中提示y确认即可.接下来便可以向minion发送命令了6.3简单测试salt '*' test.ping
二、Master批量管理配置服务器端写sls模,他的默认路径在 /srv/salt/下,没有就新建目录,然后新建一个top.sls就跟puppet的入口文件 site.pp 类似。

·      Base: 默认的的起点配置项:·      '*':这个引号内的是匹配对象,针对所有受控主机·      rd.sc:就是指资源文件/srv/salt/rd/sc.sls看rd目录下的资源文件利用py模式的sls配置文件(其实就是python脚本,只要返回yaml格式的字典文件就好了),我们可以将以上的操作简化成1步,思路如下:
1,/srv/pillar/top.sls中编写配置:base: '*': - custom2,使用py模式编写/srv/pillar/custom/init.sls,自动读取pillar配置,例如salt id是:10.1.1.1-centos.game.web,那么project为game,然后根据获取的pillar_root组合成路径/srv/pillar/custom/game/10.1.1.1-centos.game.web.yaml,利用yaml模块从文件中读取信息,返回字典
3,在/srv/salt/top.sls文件中匹配所有的minion‘*’:- centos.public_services4,/srv/salt/centos/public_services/init.sls文件使用py模式编写,配置会获取对应的minion的pillar信息,如果包含mysql配置信息且配置正确的话,则返回mysql实例的配置。那现在要怎么使用呢,很简单,例如你的id为10.1.1.1-centos.game.web,首先在/srv/pillar/custom/目录下建个game目录(从salt id获取的项目名),然后在game目录先新建文件10.1.1.1-centos.game.web.yaml,里面写上配置信息:mysql:ports:    - 3306    - 3307    - 3308version:'5_5_25'
最后执行命令:salt 10.1.1.1-centos.game.web state.highstate -v -t 300静静的等待执行完成就好了!
页: [1]
查看完整版本: saltstack安装配置